diff --git a/.gitignore b/.gitignore
index 8ec6b246eadd317973f5b88942397ea724c13ea1..cde92cda54330a0a50a29903fbdb22e9ea3352be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+.vscode
+
 # Logs
 logs
 *.log
@@ -29,14 +31,14 @@ bower_components
 # node-waf configuration
 .lock-wscript
 
-# Compiled binary addons (https://nodejs.org/api/addons.html)
+# Compiled binary addons (http://nodejs.org/api/addons.html)
 build/Release
 
 # Dependency directories
 node_modules/
 jspm_packages/
 
-# TypeScript v1 declaration files
+# Typescript v1 declaration files
 typings/
 
 # Optional npm cache directory
@@ -51,15 +53,19 @@ typings/
 # Output of 'npm pack'
 *.tgz
 
+# dotenv environment variables file
+.env
+
 # gatsby files
 .cache/
 public
 
+# Mac files
+.DS_Store
+
+# Yarn
+yarn-error.log
+.pnp/
+.pnp.js
 # Yarn Integrity file
 .yarn-integrity
-
-# dotenv environment variables file
-.env
-
-# next.js build output
-.next
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000000000000000000000000000000000000..94abdb5975073d7d5d2366a2955a34c51aa738b3
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,24 @@
+{
+    "semi": false,
+    "singleQuote": true,
+    "trailingComma": "es5",
+    "tabWidth": 4,
+    "printWidth": 100,
+    "overrides": [
+        {
+            "files": "*.sass",
+            "options": {
+                "printWidth": 999
+            }
+        },
+        {
+          "files": "*.md",
+          "options": {
+              "tabWidth": 2,
+              "printWidth": 80,
+              "proseWrap": "always",
+              "htmlWhitespaceSensitivity": "strict"
+          }
+      }
+    ]
+}
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6776670a32c8286fb44a36d2323fda099a9cdaa8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (C) 2019 Ines Montani
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.md b/README.md
index 0ca446aab9d09eac8625b53e3df8da661976c458..58e1a69a9c69983f784c25c009fa4b96ee14a653 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,314 @@
-# Introduction 
-TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project. 
-
-# Getting Started
-TODO: Guide users through getting your code up and running on their own system. In this section you can talk about:
-1.	Installation process
-2.	Software dependencies
-3.	Latest releases
-4.	API references
-
-# Build and Test
-TODO: Describe and show how to build your code and run the tests. 
-
-# Contribute
-TODO: Explain how other users and developers can contribute to make your code better. 
-
-If you want to learn more about creating good readme files then refer the following [guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/create-a-readme?view=azure-devops). You can also seek inspiration from the below readme files:
-- [ASP.NET Core](https://github.com/aspnet/Home)
-- [Visual Studio Code](https://github.com/Microsoft/vscode)
-- [Chakra Core](https://github.com/Microsoft/ChakraCore)
\ No newline at end of file
+# Online course starter: Python
+
+This is a starter repo based on the
+[course framework](https://github.com/ines/spacy-course) I developed for my
+[spaCy course](https://course.spacy.io). The front-end is powered by
+[Gatsby](http://gatsbyjs.org/) and [Reveal.js](https://revealjs.com) and the
+back-end code execution uses [Binder](https://mybinder.org) πŸ’–
+
+[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/ines/courser-starter-python)
+
+[![](https://user-images.githubusercontent.com/13643239/56341448-68fe9380-61b5-11e9-816f-5c71ae71b94f.png)](https://course-starter-python.netlify.com)
+
+## πŸ“– Documentation
+
+<a href="https://ines.github.io/course-starter-python/"><img width="300" src="https://user-images.githubusercontent.com/13643239/75773176-ab897a00-5d4d-11ea-8593-1fc018885611.png" align="right"></a>
+
+Thanks to [@hfboyce](https://github.com/hfboyce) for contributing a super detailed guide on getting started with this course framework, adding exercises, slides and other content, and customizing the design. It also comes with a Dockerfile that takes care of the dependencies for you.
+
+[➑️ **Read the documentation here**](https://ines.github.io/course-starter-python/) 
+
+
+## βœ… Quickstart
+
+1. [Import](https://github.com/new/import) this repo, install it and make sure
+   the app is running locally.
+2. Customize the [`meta.json`](meta.json) and
+   [`binder/requirements.txt`](binder/requirements.txt).
+3. Build a [Binder](https://mybinder.org) from the `binder` branch of this repo.
+4. Add content (chapters, exercises and slides) and optionally add separate
+   content license.
+5. Customize the UI theme in [`theme.sass`](theme.sass) and update images in
+   [`static`](static) as needed.
+6. Deploy the app, e.g. to [Netlify](https://netlify.com).
+
+### Running the app
+
+To start the local development server, install [Gatsby](https://gatsbyjs.org)
+and then all other dependencies. This should serve up the app on
+`localhost:8000`.
+
+```bash
+npm install -g gatsby-cli  # Install Gatsby globally
+npm install                # Install dependencies
+npm run dev                # Run the development server
+```
+
+## 🎨 Customization
+
+The app separates its source and content – so you usually shouldn't have to dig
+into the JavaScript source to change things. The following points of
+customization are available:
+
+| Location                  | Description                                            |
+| ------------------------- | ------------------------------------------------------ |
+| `meta.json`               | General config settings, title, description etc.       |
+| `theme.sass`              | Color theme.                                           |
+| `binder/requirements.txt` | Python requirements to install.                        |
+| `chapters`                | The chapters, one Markdown file per chapter.           |
+| `slides`                  | The slides, one Markdown file per slide deck.          |
+| `static`                  | Static assets like images, will be copied to the root. |
+
+### `meta.json`
+
+The following meta settings are available. **Note that you have to re-start
+Gatsby to see the changes if you're editing it while the server is running.**
+
+| Setting              | Description                                                                                                                                |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| `courseId`           | Unique ID of the course. Will be used when saving completed exercises to the browser's local storage.                                      |
+| `title`              | The title of the course.                                                                                                                   |
+| `slogan`             | Course slogan, displayed in the page title on the front page.                                                                              |
+| `description`        | Course description. Used for site meta and in footer.                                                                                      |
+| `bio`                | Author bio. Used in the footer.                                                                                                            |
+| `siteUrl`            | URL of the deployed site (without trailing slash).                                                                                         |
+| `twitter`            | Author twitter handle, used in Twitter cards meta.                                                                                         |
+| `fonts`              | [Google Fonts](https://fonts.google.com) to load. Should be the font part of the URL in the embed string, e.g. `Lato:400,400i,700,700i`.   |
+| `testTemplate`       | Template used to validate the answers. `${solution}` will be replaced with the user code and `${test}` with the contents of the test file. |
+| `juniper.repo`       | Repo to build on Binder in `user/repo` format. Usually the same as this repo.                                                              |
+| `juniper.branch`     | Branch to build. Ideally not `master`, so the image is not rebuilt every time you push.                                                    |
+| `juniper.lang`       | Code language for syntax highlighting.                                                                                                     |
+| `juniper.kernelType` | The name of the kernel to use.                                                                                                             |
+| `juniper.debug`      | Logs additional debugging info to the console.                                                                                             |
+| `showProfileImage`   | Whether to show the profile image in the footer. If `true`, a file `static/profile.jpg` needs to be available.                             |
+| `footerLinks`        | List of objects with `"text"` and `"url"` to display as links in the footer.                                                               |
+| `theme`              | Currently only used for the progressive web app, e.g. as the theme color on mobile. For the UI theme, edit `theme.sass`.                   |
+
+### Static assets
+
+All files added to `/static` will become available at the root of the deployed
+site. So `/static/image.jpg` can be referenced in your course as `/image.jpg`.
+The following assets need to be available and can be customized:
+
+| File              | Description                                              |
+| ----------------- | -------------------------------------------------------- |
+| `icon.png`        | Custom [favicon](https://en.wikipedia.org/wiki/Favicon). |
+| `logo.svg`        | The course logo.                                         |
+| `profile.jpg`     | Photo or profile image.                                  |
+| `social.jpg`      | Social image, displayed in Twitter and Facebook cards.   |
+| `icon_check.svg`  | "Check" icon displayed on "Mark as completed" button.    |
+| `icon_slides.svg` | Icon displayed in the corner of a slides exercise.       |
+
+## ✏️ Content
+
+### File formats
+
+#### Chapters
+
+Chapters are placed in [`/chapters`](/chapters) and are Markdown files
+consisting of `<exercise>` components. They'll be turned into pages, e.g.
+`/chapter1`. In their frontmatter block at the top of the file, they need to
+specify `type: chapter`, as well as the following meta:
+
+```yaml
+---
+title: The chapter title
+description: The chapter description
+prev: /chapter1 # exact path to previous chapter or null to not show a link
+next: /chapter3 # exact path to next chapter or null to not show a link
+id: 2 # unique identifier for chapter
+type: chapter # important: this creates a standalone page from the chapter
+---
+
+```
+
+#### Slides
+
+Slides are placed in [`/slides`](/slides) and are markdown files consisting of
+slide content, separated by `---`. They need to specify the following
+frontmatter block at the top of the file:
+
+```yaml
+---
+type: slides
+---
+
+```
+
+The **first and last slide** use a special layout and will display the headline
+in the center of the slide. **Speaker notes** (in this case, the script) can be
+added at the end of a slide, prefixed by `Notes:`. They'll then be shown on the
+right next to the slides. Here's an example slides file:
+
+```markdown
+---
+type: slides
+---
+
+# Processing pipelines
+
+Notes: This is a slide deck about processing pipelines.
+
+---
+
+# Next slide
+
+- Some bullet points here
+- And another bullet point
+
+<img src="/image.jpg" alt="An image located in /static" />
+```
+
+### Custom Elements
+
+When using custom elements, make sure to place a newline between the
+opening/closing tags and the children. Otherwise, Markdown content may not
+render correctly.
+
+#### `<exercise>`
+
+Container of a single exercise.
+
+| Argument     | Type            | Description                                                    |
+| ------------ | --------------- | -------------------------------------------------------------- |
+| `id`         | number / string | Unique exercise ID within chapter.                             |
+| `title`      | string          | Exercise title.                                                |
+| `type`       | string          | Optional type. `"slides"` makes container wider and adds icon. |
+| **children** | -               | The contents of the exercise.                                  |
+
+```markdown
+<exercise id="1" title="Introduction to spaCy">
+
+Content goes here...
+
+</exercise>
+```
+
+#### `<codeblock>`
+
+| Argument     | Type            | Description                                                                                  |
+| ------------ | --------------- | -------------------------------------------------------------------------------------------- |
+| `id`         | number / string | Unique identifier of the code exercise.                                                      |
+| `source`     | string          | Name of the source file (without file extension). Defaults to `exc_${id}` if not set.        |
+| `solution`   | string          | Name of the solution file (without file extension). Defaults to `solution_${id}` if not set. |
+| `test`       | string          | Name of the test file (without file extension). Defaults to `test_${id}` if not set.         |
+| **children** | string          | Optional hints displayed when the user clicks "Show hints".                                  |
+
+```markdown
+<codeblock id="02_03">
+
+This is a hint!
+
+</codeblock>
+```
+
+#### `<slides>`
+
+Container to display slides interactively using Reveal.js and a Markdown file.
+
+| Argument | Type   | Description                                   |
+| -------- | ------ | --------------------------------------------- |
+| `source` | string | Name of slides file (without file extension). |
+
+```markdown
+<slides source="chapter1_01_introduction-to-spacy">
+</slides>
+```
+
+#### `<choice>`
+
+Container for multiple-choice question.
+
+| Argument     | Type            | Description                                                                                  |
+| ------------ | --------------- | -------------------------------------------------------------------------------------------- |
+| `id`         | string / number | Optional unique ID. Can be used if more than one choice question is present in one exercise. |
+| **children** | nodes           | Only `<opt>` components for the options.                                                     |
+
+```markdown
+<choice>
+
+<opt text="Option one">You have selected option one! This is not good.</opt>
+<opt text="Option two" correct="true">Yay! </opt>
+
+</choice>
+```
+
+#### `<opt>`
+
+A multiple-choice option.
+
+| Argument     | Type   | Description                                                                                    |
+| ------------ | ------ | ---------------------------------------------------------------------------------------------- |
+| `text`       | string | The option text to be displayed. Supports inline HTML.                                         |
+| `correct`    | string | `"true"` if the option is the correct answer.                                                  |
+| **children** | string | The text to be displayed if the option is selected (explaining why it's correct or incorrect). |
+
+### Setting up Binder
+
+The [`requirements.txt`](binder/requirements.txt) in the repository defines the
+packages that are installed when building it with Binder. You can specify the
+binder settings like repo, branch and kernel type in the `"juniper"` section of
+the `meta.json`. I'd recommend running the very first build via the interface on
+the [Binder website](https://mybinder.org), as this gives you a detailed build
+log and feedback on whether everything worked as expected. Enter your repository
+URL, click "launch" and wait for it to install the dependencies and build the
+image.
+
+![Binder](https://user-images.githubusercontent.com/13643239/39412757-a518d416-4c21-11e8-9dad-8b4cc14737bc.png)
+
+### Adding tests
+
+To validate the code when the user hits "Submit", we're currently using a
+slightly hacky trick. Since the Python code is sent back to the kernel as a
+string, we can manipulate it and add tests – for example, exercise
+`exc_01_02_01.py` will be validated using `test_01_02_01.py` (if available). The
+user code and test are combined using a string template. At the moment, the
+`testTemplate` in the `meta.json` looks like this:
+
+```
+from wasabi import Printer
+__msg__ = Printer()
+__solution__ = """${solution}"""
+${solution}
+
+${test}
+try:
+    test()
+except AssertionError as e:
+    __msg__.fail(e)
+```
+
+If present, `${solution}` will be replaced with the string value of the
+submitted user code. In this case, we're inserting it twice: once as a string so
+we can check whether the submission includes something, and once as the code, so
+we can actually run it and check the objects it creates. `${test}` is replaced
+by the contents of the test file. It's also making
+[`wasabi`](https://github.com/ines/wasabi)'s printer available as `__msg__`, so
+we can easily print pretty messages in the tests. Finally, the `try`/`accept`
+block checks if the test function raises an `AssertionError` and if so, displays
+the error message. This also hides the full error traceback (which can easily
+leak the correct answers).
+
+A test file could then look like this:
+
+```python
+def test():
+    assert "spacy.load" in __solution__, "Are you calling spacy.load?"
+    assert nlp.meta["lang"] == "en", "Are you loading the correct model?"
+    assert nlp.meta["name"] == "core_web_sm", "Are you loading the correct model?"
+    assert "nlp(text)" in __solution__, "Are you processing the text correctly?"
+    assert "print(doc.text)" in __solution__, "Are you printing the Doc's text?"
+
+    __msg__.good(
+        "Well done! Now that you've practiced loading models, let's look at "
+        "some of their predictions."
+    )
+```
+
+The string answer is available as `__solution__`, and the test also has access
+to the solution code.
+
+---
+
+For more details on how it all works behind the scenes, see
+[the original course repo](https://github.com/ines/spacy-course).
diff --git a/binder/requirements.txt b/binder/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..112cf2449007956231e52f04d5c8b0b0100ed926
--- /dev/null
+++ b/binder/requirements.txt
@@ -0,0 +1 @@
+wasabi>=0.2.1,<1.1.0
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bde093af35650543703740720fe5d4eb91e00892
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,13 @@
+version: '3.7'
+services:
+  gatsby:
+    build: 
+      context: .
+      dockerfile: Dockerfile
+    working_dir: /app
+    command: gatsby develop -H 0.0.0.0
+    ports:
+      - "8000:8000"
+    volumes:
+     - .:/app
+     - /app/node_modules/
diff --git a/dockerfile b/dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..c9333e2b091f41e8e45ca8253b7fd91d6a2ae2d3
--- /dev/null
+++ b/dockerfile
@@ -0,0 +1,12 @@
+# Docker file for running Gatsby without installing node version 10 or Gatsby.
+# Attribution: https://stackoverflow.com/questions/57405792/gatsby-not-rebuilding-whenever-mounted-code-changes
+# Hayley Boyce (kinda not really), February 6th, 2020
+
+FROM node:10
+
+# Add the package.json file and build the node_modules folder
+WORKDIR /app
+COPY ./package*.json ./
+RUN mkdir node_modules
+RUN npm install --g gatsby-cli 
+RUN npm install
\ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2f7efbeab578c8042531ea7908ee8ffd7589fe46
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-minimal
\ No newline at end of file
diff --git a/docs/img/chapter_layout.png b/docs/img/chapter_layout.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cd82329a856d8a188efd1e80ee029b641c344ee
Binary files /dev/null and b/docs/img/chapter_layout.png differ
diff --git a/docs/img/chapters_img.png b/docs/img/chapters_img.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0087dbede0157b206a7fd54d9e9098c0641eeac
Binary files /dev/null and b/docs/img/chapters_img.png differ
diff --git a/docs/img/julia.png b/docs/img/julia.png
new file mode 100644
index 0000000000000000000000000000000000000000..106ce78e1d2f81d61374a583be18185b56d2bc96
Binary files /dev/null and b/docs/img/julia.png differ
diff --git a/docs/img/multi-q-exercise.png b/docs/img/multi-q-exercise.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cf1e95ebf9c8bdacaf4c0d14e96134499966ed4
Binary files /dev/null and b/docs/img/multi-q-exercise.png differ
diff --git a/docs/img/naome.png b/docs/img/naome.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c52784f672561474c8e97c34f34bc681aa1bdfe
Binary files /dev/null and b/docs/img/naome.png differ
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..3552791b25fd4a19eef3e91747fdfdc95702ac8c
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,708 @@
+# From Zero to ICSP (Ines Course Starter - Python)
+
+Table of Contents
+=================
+
+   * [What to Expect](#what-to-expect)
+   * [Creating Your Website Without Installing Dependencies (Using Docker Compose)](#creating-your-website-without-installing-dependencies-using-docker-compose)
+   * [Creating your website by Installing Dependencies](#creating-your-website-by-installing-dependencies)
+      * [Install Node](#install-node)
+      * [Install Gatsby](#install-gatsby)
+      * [Clone or Install the Repository](#clone-or-install-the-repository)
+      * [Running on local Server](#running-on-local-server)
+   * [Repository Structure](#repository-structure)
+   * [Customization](#customization)
+      * [Course Homepage Information](#course-homepage-information)
+      * [theme.sass](#themesass)
+      * [Introduction on Homepage](#introduction-on-homepage)
+   * [Contents](#contents)
+      * [Chapters](#chapters)
+      * [Slides](#slides)
+         * [Embedding Video and Audio](#embedding-video-and-audio)
+      * [Multiple choice questions:](#multiple-choice-questions)
+         * [<g-emoji class="g-emoji" alias="high_brightness" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f506.png">πŸ”†</g-emoji>You can have several questions in one exercise container](#you-can-have-several-questions-in-one-exercise-container)
+      * [Codeblock Exercises:](#codeblock-exercises)
+         * [Let's talk about importing functions!](#lets-talk-about-importing-functions)
+         * [binder/requirements.txt](#binderrequirementstxt)
+      * [static folder](#static-folder)
+
+
+Course Starter python is a starter repo based on the course framework [Ines Montani](https://ines.io/) developed for her [online open-source spaCy course](https://course.spacy.io/). Since creating this framework in April 2019, it has since become a useful tool and platform for data scientists and developers alike to implement their courses in a manner similar to other popular online Data science educational platforms. 
+
+This course gives the developer the versatility of a lecture slide-type informational piece followed by multiple-choice questions and coding exercises equipped with verification of the students' submitted answers.
+
+Ines Montani has created this framework using Gatsby and Reveal.js in the front-end and Binder and Docker in the back-end. This framework was made possible thanks to the useful JavaScript library [`Juniper`](https://github.com/ines/juniper) Ines created which can add interactive, editable and runnable code snippets to websites. 
+
+***Please Note:***    
+This project is under active development and there are possibilities of changes. If you would like to contribute or point out corrections, please create a new issue addressing your concern, suggestions or contribution. 
+[![](https://user-images.githubusercontent.com/13643239/56341448-68fe9380-61b5-11e9-816f-5c71ae71b94f.png)](https://course-starter-python.netlify.com)
+
+πŸ”† **Hot Tips:** This symbol will be used in this guide for helpful tips/recommendations and suggestions when building your course.  
+    
+⚠️ **Warning:** This symbol will give you preventative tips to avoid debugging or issues that I ran into.   
+
+
+## What to Expect 
+
+I hope that this thorough documentation will help you deploy, customize and troubleshoot your starter course. Ines provides some wonderful instructions in her `README.md` file, but I noticed there were a few notes I wanted to add to it for my colleagues and others attempting to make their course so that they can save time on troubleshooting. 
+
+You will be working with different file types including `.md` (and potentially `.rmd`), `.json`, `.py` and `.txt`. 
+You may need to know _some_ Html for additional customization, however by no means in-depth. 
+
+This tutorial will describe the steps to create a complete initial "Starter Course" with zero customization. From here we will then change, edit and add files to complete your desired unique course. 
+
+You can choose either to create your website by [installing the dependencies (Node and Gatsby)](#creating-your-website-by-installing-dependencies) or we have conveniently made a docker compose file available to avoid that. If you don't want to install the dependencies follow the steps [here](#creating-your-website-without-installing-dependencies-using-docker-compose)
+
+## Creating Your Website Without Installing Dependencies (Using Docker Compose) 
+
+1. Clone this repo [starter course repo](https://github.com/UBC-MDS/course-starter-python)
+and locate yourself to the root of the repo where the `Dockerfile` is located.   
+
+2. Run the following command. It should take about 1 or 2 to run.  
+```
+docker-compose up
+```
+You will know when it is done when you see: 
+```
+You can now view course-starter-python in the browser.
+``` 
+
+3. Go to your favourite web browser and type this in the search bar:  
+[http://0.0.0.0:8000/](http://0.0.0.0:8000/)
+
+
+This should be the beginning of a functioning starter-course! 
+
+
+Now that you have a website that is deploying on your local server, we can now begin the steps to customize it to your own taste. 
+
+
+## Creating your website by Installing Dependencies 
+
+### Install Node 
+
+**Mac instructions** 
+
+_Make sure that you have homebrew installed in order to download `Node`_
+
+The most important part of this installation is making sure that you are running some version of 10. 
+
+
+Check if you have `Node` installed already by using the command :
+```
+node --version
+``` 
+
+If that produces an error then you can simply download version 10 with the following command: 
+
+```
+brew install node@10
+```
+
+If it's a version other than 10, you will **need** to downgrade/upgrade to version 10 - or Gatsby will not be able to start a development server or build a page. 
+
+To change to version 10, follow the following commands:
+
+```
+brew search node
+```
+This will give you an output similar to this: 
+
+```
+==> Formulae
+libbitcoin-node   node-build     node@12       nodeenv
+llnode       node-sass      node_exporter    nodenv
+node βœ“       node@10       nodebrew
+```
+
+Next, you will want to install version 10 with the command: 
+
+```
+brew install node@10
+```
+
+if the checkmark is currently on `node` we then unlink node from its current version first using: 
+
+```
+brew unlink node
+```
+
+Everyone will need to link version 10 that was just installed: 
+
+```
+brew link node@10
+```
+
+This will likely need to be forced and thus will require: 
+
+```
+brew link --force --overwrite node@10
+```
+
+You may also be prompted to specify that you need to have node@10 first in your PATH so you should run the command below before attempting force linking node@10 (the command above) again:
+
+```
+ echo 'export PATH="/usr/local/opt/node@10/bin:$PATH"' >> ~/.bash_profile 
+ ```
+
+Next check again what version you are running to confirm that it is a version of 10. 
+there is a possibility that an error will be produced so you can either permanently set your 
+```
+node --version
+``` 
+this should output the following: 
+
+```
+v10.13.0
+```
+
+Now that we have this done, Gatsby's installation and building process should be much easier. 
+
+### Install Gatsby 
+
+This should a single command to complete this and will install Gatsby globally on your computer. 
+
+```
+npm install -g gatsby-cli
+```
+***⚠️ Warning: Do not update your dependencies here.***
+
+### Clone or Install the Repository
+
+There are 2 methods in which this step can be done.
+
+a) Simply clone the [starter course repo](https://github.com/ines/course-starter-python) and initialize it as a [GitHub repository](https://help.github.com/en/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line)
+b) [Import](https://github.com/new/import) and install this repo
+
+Make sure that you ***merge all the changes on the other branches to the master one** if you do not create a pull request for `electron` and `feature/deep-links` branches your course will not successfully deploy.*
+
+Once you have done this you will need to locate yourself to the root of the repo. 
+
+### Running on local Server 
+
+Next, we must  install all relevant dependencies by running the following: 
+```
+npm install 
+```
+
+***⚠️ Warning: You will be prompted to `run "npm audit fix" to fix them`.  
+I do not recommend doing this as it will burn your site down.***  
+
+The output below will still build your course: 
+```
+found 572 vulnerabilities (4 low, 4 moderate, 564 high)
+```
+
+and finally, to build the site on your local:
+
+```
+npm run dev    
+```
+
+Delivering this as an output (copy and paste this address into any browser) : 
+```
+You can now view course-starter-python in the browser.
+
+  http://localhost:8000/
+```
+**Quick link:** [http://localhost:8000/](http://localhost:8000/)
+
+This should be the beginning of a functioning starter-course! 
+
+
+Now that you have a website that is deploying on your local server, we can now begin the steps to customize it to your own taste. 
+
+
+
+## Repository Structure 
+
+See the architecture below. Make sure to add this to your path when calling them in your `md` file. Some of these files will be explained in further detail depending on if customization or additions is required. 
+
+```
+course-starter-python
+β”œβ”€β”€ .gitignore          # Files you change on your local that you do not want to track changes for or commit to the repo. 
+β”œβ”€β”€ .prettierrc         # Adds consistency to coding style. 
+β”œβ”€β”€ LICENSE             # Terms able to use this platform 
+β”œβ”€β”€ README.md           # Documentation and Description 
+β”œβ”€β”€ docker-compose.yml  # This and the dockerfile and needed to create a container used to install Gatsby and node10 
+β”œβ”€β”€ dockerfile          # See above 
+β”œβ”€β”€ gatsby-browser.js    
+β”œβ”€β”€ gatsby-config.js    
+β”œβ”€β”€ gatsby-node.js      
+β”œβ”€β”€ main.js
+β”œβ”€β”€ meta.json           # Add necessary customization such as descriptions bio and branch needed to make binder from 
+β”œβ”€β”€ package-lock.json
+β”œβ”€β”€ package.json
+β”œβ”€β”€ theme.sass          # Can be customizable to change fonts style and size and website colours and font 
+β”‚   β”‚
+β”œβ”€β”€ binder   
+|   └── requirements.txt     # A file containing all the packages needed for the coding exercises
+β”‚   β”‚
+β”œβ”€β”€ chapter             # n = the number of modules/chapters you want. 
+|   β”œβ”€β”€ module0.md
+|   β”œβ”€β”€ module1.md
+|   β”œβ”€β”€ ...
+|   └── moduleN.md
+β”‚   β”‚    
+β”œβ”€β”€ data                # Store exercise datafiles here 
+    └── exercise-data.csv
+β”‚   β”‚
+β”œβ”€β”€ exercises           # This file will contain all the coding exercise scripts. 
+|   β”œβ”€β”€ exercise_01.py
+|   β”œβ”€β”€ solution_01.py
+|   β”œβ”€β”€ test_01.py
+|   β”œβ”€β”€ function.py
+|   └── price_linearanalysis3.png
+β”‚   β”‚
+β”œβ”€β”€ slides              # This is where the slide decks live
+|   β”œβ”€β”€ module0_00.md
+|   β”œβ”€β”€ ...
+|   └── moduleN_nn.md
+β”‚   β”‚
+β”œβ”€β”€ src                 # Don't want to go too much into this 
+|   β”œβ”€β”€ markdown.js
+|   β”œβ”€β”€ context.js
+|   β”œβ”€β”€ components              
+|   |   β”œβ”€β”€ button.js
+|   |   β”œβ”€β”€ choice.js
+|   |   β”œβ”€β”€ code.js
+|   |   β”œβ”€β”€ exercise.js
+|   |   β”œβ”€β”€ hint.js
+|   |   β”œβ”€β”€ juniper.js
+|   |   β”œβ”€β”€ layout.js
+|   |   β”œβ”€β”€ link.js
+|   |   β”œβ”€β”€ seo.js
+|   |   β”œβ”€β”€ slides.js
+|   |   └── typography.js
+|   |   |   
+|   β”œβ”€β”€ pages              
+|   |   └── index.js
+|   |   |
+|   β”œβ”€β”€ styles               
+|   |   β”œβ”€β”€ button.module.sass
+|   |   β”œβ”€β”€ choice.module.sass
+|   |   β”œβ”€β”€ code.module.sass
+|   |   β”œβ”€β”€ exercise.module.sass
+|   |   β”œβ”€β”€ hint.module.sass
+|   |   β”œβ”€β”€ index.module.sass
+|   |   β”œβ”€β”€ index.sass
+|   |   β”œβ”€β”€ layout.module.sass
+|   |   β”œβ”€β”€ link.module.sass
+|   |   β”œβ”€β”€ reveal.css
+|   |   β”œβ”€β”€ slides.module.sass
+|   |   └── typography.module.sass
+|   |   |
+    └── templates              
+        └── chapter.js
+|   |   |
+└── static               # This is where most of your media will live, be it for slides, or anything else. 
+    β”œβ”€β”€ icon.png
+    β”œβ”€β”€ icon_check.svg
+    β”œβ”€β”€ icon_slides.svg
+    β”œβ”€β”€ logo.svg
+    β”œβ”€β”€ profile.jpg
+    └── social.jpg
+
+
+```
+
+## Customization
+
+There is a lot of different areas to make your site unique but below we are going to edit the files systematically. 
+
+
+### Course Homepage Information 
+
+Here is where we will be changing all the homepage information including Course Name, "About This Course", "About Me", Website and Source. All of these factors are edited in the `meta.json` file located at the root of the repo. Ines has provided [a detailed discription](https://github.com/ines/course-starter-python#metajson) of what each component is responsible for. I am simply going to add some points that could be considered helpful when navigating in these documents  
+
+| Setting              | Additional Notes: |
+| -------------------- | ----------------- |
+| `courseId`           | Ines does not have this parameter in her spacy course, however, deleting this will not let the course function properly so not having this setting is not an option unless you want to explore what makes her spacy course repo different than her course-starter repo.|
+| `slogan`             | This will show up once you deploy your site and it will be shown in the image of the link that you send.  |
+|`juniper.repo`        | Make sure you insert your GitHub repository path ex: GitHub-login/repository-name |
+| `juniper.branch`     | We will address this further when building a binder but note that the branch here specified is called binder. That means that we will need to edit the `requirements.txt` file and push it to the binder branch|
+
+For guidance on the other settings refer to [Ines Montani's Documentation](https://github.com/ines/course-starter-python#metajson).
+
+### `theme.sass`
+
+This is where you can change certain design elements of the course including font size, style and colour, overall theme colour, button colour. 
+
+
+### Introduction on Homepage
+
+_It's important to attribute Noam Ross and Julia Silge's courses for this section as they are responsible for the code pasted below._ 
+
+Unlike Ines's [Spacy Course](https://course.spacy.io/), you may want an introduction similar to what [Julia Silge](https://supervised-ml-course.netlify.com/) and [Noam Ross](https://noamross.github.io/gams-in-r-course/) did for their courses. 
+
+They introduced their courses with a summary and course description.
+
+| ![alt-text-1](img/julia.png)  | ![alt-text-2](img/naome.png) |
+|:---:|:---:|
+| Julia Silge's course front page | Noam Ross's course front page| 
+
+This can be done by doing the following:
+
+- Navigate into the `src/pages/` and open `index.js` 
+
+You will be adding a new `<section>` (Html code) under `<Layout isHome>` and between the following two lines shown below :  
+```
+<Layout isHome>
+   <Logo className={classes.logo} aria-label={siteMetadata.title} /> # HERE
+            {chapters.map(({ slug, title, description }) => (
+```
+Here is an example of the code you can add.
+
+```
+<section>
+                <h1 className={classes.subtitle}> INSERT CATCHY TAG LINE HERE </h1>
+                <div className={classes.introduction}>
+                <p>
+                    FILLER WORDS HERE. WHAT IS YOUR COURSE ABOUT? DINOSAURS? NEURAL NETS? HOW TO SURVIVE EVENTS WITH THE INLAWS? WRITE IT HERE! 
+                </p>
+                </div>
+            </section>
+```
+
+Since we are adding new class names will are going to need to edit the document that formats the class name. This can be found in `src/styles/index.module.sass`. 
+
+You will need to paste the new classes as follows below into the document. 
+
+```
+.subtitle
+    font-family: var(--font-display)
+    width: 600px
+    height: auto
+    max-width: 100%
+    margin: 0 auto 1rem
+    display: block
+    text-align: center
+
+.introduction
+    width: var(--width-container)
+    max-width: 100%
+    padding: 1rem
+    margin: 0 auto
+    display: block
+    text-align: left
+```
+
+If you want to play with the measurements this is a welcomed opportunity to customize your course further. 
+
+This can be done by doing the following:
+
+- Navigate into the `src/pages/index.js` 
+
+You will be adding a new `<section>` (Html code) under `<Layout isHome>` and between the following two lines shown below:  
+```
+<Layout isHome>
+   <Logo className={classes.logo} aria-label={siteMetadata.title} /> # HERE
+            {chapters.map(({ slug, title, description }) => (
+```
+Here is an example of the code you can add.
+
+```
+<section>
+                <h1 className={classes.subtitle}> INSERT CATCHY TAG LINE HERE </h1>
+                <div className={classes.introduction}>
+                <p>
+                    FILLER WORDS HERE. WHAT IS YOUR COURSE ABOUT? DINOSAURS? NEURAL NETS? HOW TO SURVIVE EVENTS WITH THE INLAWS? WRITE IT HERE! 
+                </p>
+                </div>
+            </section>
+```
+
+Since we are adding new class names will are going to need to edit the document that formats the class name. This can be found in `src/styles/index.module.sass`. 
+
+You will need to paste the new classes as follows below into the document. 
+
+```
+.subtitle
+    font-family: var(--font-display)
+    width: 600px
+    height: auto
+    max-width: 100%
+    margin: 0 auto 1rem
+    display: block
+    text-align: center
+
+.introduction
+    width: var(--width-container)
+    max-width: 100%
+    padding: 1rem
+    margin: 0 auto
+    display: block
+    text-align: left
+```
+
+If you want to play with the measurements this is a welcomed opportunity to customize your course further. 
+
+
+## Contents
+
+This is where the majority of your course lies.
+
+Ines Montani [discusses in detail each section](https://github.com/UBC-MDS/course-starter-python#%EF%B8%8F-content), however, there are a few little details I want to emphasize that could help as you create this site. 
+
+### Chapters 
+
+These are the files that make up the topics of your course and will be displayed on your course site as below: 
+
+![](img/chapters_img.png)
+<font size="1" color="grey"> Source: Ines Montani from https://course.spacy.io </font>
+
+<br> 
+
+Each `chapter.md` file will need this YAML specification that Ines explains: 
+
+```
+---
+title: The chapter title
+description: The chapter description
+prev: /chapter1 # exact path to previous chapter or null to not show a link
+next: /chapter3 # exact path to next chapter or null to not show a link
+id: 2 # unique identifier for chapter
+type: chapter # important: this creates a standalone page from the chapter
+---
+```
+Here are some additional comments: 
+
+1. Make sure each `id` is unique or you may have some issues with some modules not showing up.
+2. Take care specifying the correct `prev` and `next` otherwise it could damage the flow of your material. 
+3. You don't need to have the website extension of your course labeled as "chapters" if you wish to have your link extensions named something other than "chapter" in the URL, you can change the file names to `module`, `topic`, `lecture` or anything else followed by the number. Do not change the folder name and do not change the `type` in the YAML. 
+
+Each `chapter.md` file will contain the code of what that chapter will look like. Specifically: 
+
+![](img/chapter_layout.png)
+<font size="1" color="grey">Source: Ines Montani from https://course.spacy.io/chapter1</font>
+   
+<br>
+
+Now that we have a chapter.md file with a completed YAML, let's add the course content. 
+
+Each numbered container displayed in the image above corresponds to an `exercise`. Each exercise needs a unique id and specified with a title. 
+
+```
+<exercise id="1" title="Title of the exercise">
+
+something here
+
+</exercise>
+```
+
+These exercises can in the form of different activities as well:  
+1. Slides: Lecture material and content 
+2. Multiple choice questions: An opportunity for students to test themselves on the material they just learned.
+3. Code block exercises: An opportunity for students to test their coding skills
+
+
+### Slides 
+
+To makes your exercise a slide deck exercises you will need to do the write the following in your `chapter.md` file: 
+
+```
+<exercise id="1" title="Introduction " type="slides">
+
+<slides source="module1_01">
+</slides>
+
+</exercise>
+``` 
+Notice that we specify slides using `type="slides"` argument in the exercise container.
+
+You'll also notice we are calling a source file to display our slides. These slides are stored in the `slides` folder.
+
+[Ines explains](https://github.com/ines/course-starter-python#slides) how your slide markdown document should be structured. 
+
+***⚠️ Warning: Be wary of trailing spaces 😡😱!!   
+Although ```---``` may appear to be the same as ```--- ``` they are not and any information placed after the latter will break your slides.***
+
+#### Embedding Video and Audio
+
+If you are hoping to make your course particularly engaging, you may want to add videos or audio files to your slides (or questions even). 
+This can be achieved with the following code:   
+
+**Video:**
+```
+<html>
+<video style="display:block; margin: 0 auto;" width="100%" height="auto" controls >
+  <source src="video-file-name.mp4" type="video/mp4">
+Your browser does not support the video tag.
+</video></html>
+```  
+_The video size should now respond to the browser size adjustment. `video-file-name.mp4` should be living in the `static` folder._
+
+
+**Audio:**  
+```
+<html>
+<audio controls >
+  <source src="audio-file-name.mp3" />
+</audio></html>
+``` 
+_`audio-file-name.mp3` should be living in the `static` folder._
+
+### Multiple choice questions:
+
+In a similar style to slides you will have code for questions that looks like the following:
+
+```
+<exercise id="10" title="Fit or Predict">
+
+Insert questions here. 
+
+<choice>
+<opt text="Solution 1" correct="true">
+
+Great job! 
+
+</opt>
+
+<opt text="Solution 2" >
+                                  
+Try again! This is incorrect. 
+
+</opt>
+</choice>
+</exercise>
+```
+- Your question text will live in the `<exercise>`.   
+- You can then specify the solution options that correspond to this question using `<choice>`.  
+- Each option will live in `<opt>`. If you want to specify a solution option as correct you can give it an argument `correct="true"` otherwise if it's wrong, no argument is needed.   ***πŸ”†You can have multiple right answers in a question.***
+
+
+***⚠️ Warning: You must have padding (empty lines) above and below your question text as well as your answer feedback text as shown above.*** 
+
+#### πŸ”†You can have several questions in one exercise container
+
+![](img/multi-q-exercise.png)
+<font size="1" color="grey"> Source: Hayley Boyce @ UBC MDS from https://mcl-dsci-571-intro-machine-learning.netlify.com/module1 </font>
+
+<br> 
+
+The key to having several questions in one exercise container is to give `<choice>` an id. 
+``` 
+exercise id="18" title= "Multiple questions in one exercise">
+
+Question 1 here. 
+
+<choice id="1">
+<opt text= "Solution 1" >
+ 
+Incorrect. 
+
+</opt>
+
+<opt text="Solution 2" correct="true">
+
+Great! 
+
+</opt>
+
+</choice>
+
+Question 2 here 
+
+<choice id="2">
+<opt text= "Solution 1" >
+ 
+Incorrect. 
+
+</opt>
+
+<opt text="Solution 2" correct="true">
+
+Great! 
+
+</opt>
+
+</choice>
+
+</exercise>
+```
+
+### Codeblock Exercises:
+
+In a fashion similar to slides we are going to reference a source file that corresponds to the coding activity. 
+your code in `chapter.md` will look like this:
+
+```
+<exercise id="13" title="Calculating Gini Impurity">
+
+
+You can type your question instructions here
+
+
+<codeblock id="coding-question">
+
+In this space is where you will write any coding or question hints 
+
+
+</codeblock>
+</exercise>
+```
+
+This is where things can get a bit tricky. Each coding exercise will require 3 files: 
+
+- `exc_coding-question.py` -> The code displayed to the student that they will have to fill in 
+- `solution_coding-question.py` -> the expected coding solution
+- `test_coding-question.py` -> Tests to see if the input done by the student were correct (output when the student clicks "submit") 
+
+These are all saved in the `exercises` folder.  
+
+When we want to specify this exercise in the `chapter.md` file in the exercise container, we must only write `id = coding-question`. 
+
+Ines has explained more of this [here](https://github.com/ines/course-starter-python#codeblock).      
+
+***πŸ”†You can also have multiple code blocks in a single exercise container.***
+
+Python code is written in regular scripts while importing packages per usual. 
+
+***πŸ”†Remember that you are located at the root of the repo and you will have to reflect that in the path to the file. E.g. data from the data folder.***
+
+#### Let's talk about importing functions!
+
+If you want to import a function you made, the script can be stored in the `exercises` folder. However, since you are running everything from the root of the directory you must locate yourself into the `exercises` folder. You can do this with the following code. 
+```
+import sys
+sys.path.insert(0, 'exercises/')
+```
+you can then import as normal. 
+
+#### `binder/requirements.txt`
+
+Remember back in `meta.json` we discussed the argument `juniper.branch` briefly? Code block exercises are where this comes to play. 
+
+Any imported packages need to be added to `binder/requirements.txt` and since we specified in juniper `"branch": "binder"` this is the branch where we will need to push changes to this document.
+- Add your packages and if need be the versions to the `requirements.txt`.
+- Build your [binder](https://mybinder.org/) and refer to [Ines's explanation](https://github.com/ines/spacy-course#setting-up-binder) for more. 
+    - ⚠️ When you build your binder make sure you specify `Git branch, tag, or commit` as `binder` since that is the branch where you will be adjusting the `requirements.txt`.
+
+
+### `static` folder 
+
+The `static` file is where any additional images, videos and audio files need for the questions or slides part of your course are stored. 
+
+I find it particularly useful to create additional files in here to address the different chapters you will be making for added clarity and organization. aka I add a folder for each chapter/module and save the media files in its corresponding folder. 
+ex: 
+```
+...
+└── static               # This is where most of your media will live, be it for slides, or anything else. 
+    β”œβ”€β”€ icon.png
+    β”œβ”€β”€ icon_check.svg
+    β”œβ”€β”€ icon_slides.svg
+    β”œβ”€β”€ logo.svg
+    β”œβ”€β”€ profile.jpg
+    β”œβ”€β”€ social.jpg
+    β”œβ”€β”€ module1
+        β”œβ”€β”€ audio.mp3
+        β”œβ”€β”€ img.png
+        └── video.mp4
+    β”œβ”€β”€ ....
+    └── moduleN
+        β”œβ”€β”€ audio_n.mp3
+        β”œβ”€β”€ img_n.jpg
+        └── video_n.mp4
+```
+The required images are all specified in Ines' documentation in her [`README.md` here](https://github.com/UBC-MDS/course-starter-python#static-assets).
+
diff --git a/docs/task/project.md b/docs/task/project.md
new file mode 100644
index 0000000000000000000000000000000000000000..4b9d438d24ca453554f537d01fa83b4f3b537aaa
--- /dev/null
+++ b/docs/task/project.md
@@ -0,0 +1,55 @@
+## Version and project info
+
+The code has been tested on both develop and production mode in gatsby and has been verified to work the same. One important thing to note is that gatsby has many issues in different versions. Therefore the following versions are the only ones to be guaranteed to work.
+
+- Gatsby CLI version: 2.15.1
+- Gatsby version: 2.28.2
+
+## Additions to the original spacy course framwork
+
+- Responsive web design
+
+The whole website is now fully responsive and also has hamburger.
+
+- Tasks has been introduced. 
+
+Task funtionality has beed added with many related componentes. From the start there was only a single-choice question type compared to current state where about 10 more has beed added. One major improvement has also been the Introducement of input types and also for example a video component.
+
+- Unrelated functionality has been stripped or reworked.
+
+While we have kept some currently not in use code much of the original codebase has been reworked. 
+
+## How to create new components
+
+To create new components and question types what is important is that new components follow the same structure as current ones. 
+
+- A submit button with logic that handles a answer check with corresponding logic. 
+
+- A new entry is created in the markdown.js file for this component.
+
+- If info about the answer is wanted behavior that the handles needs to be  passed to AnswerInfo which also verifies the data to provide the right answer info. There are several optional arguments to answer info which defines what text to use at which answer. 
+
+
+## Design choices
+
+### Coherent design 
+
+The strive has been to create a coherent codebase where it is easy to find what diffent parts of code. The page code consists of components which can can also be of type answer-types which more explicity mean an excersise task where the user does an action with in return gets corrected. Apart from this we also have  `tasks` which are easy add, create and modify.
+
+<br>
+
+### Task fundamentalism
+
+The idea of the the framework being a `task framework` is rather strict. However, the meaning of this is yet somewhat abstract. A `task` can be defined a page where a user should do an action. While mostly excersise types of componets has been created, there is nothing that stops other types of components from being created and used in a `task`. An example is the video component. 
+
+<br>
+
+### Simplified processes
+
+Some goals have been to be able to easily create more tasks, introduce new task types and components and also for the user to have a good experience of while visiting and using the page. However, if the framework grows much bigger a redesign of the folder structure should be needed to be able to keep a easy to use structure. For example, tasks should be abe to exist in folders and not be forced to be in the `tasks` folder.  
+
+<br>
+
+### Dark mode
+
+A was added since this is a modern and largely requsted feature from many web users. Together with sass it is easy to define what colors to use in dark mode and non dark mode. A variable has to be added in both sections in the theme.js file and this variable should the be used in the sass file corresponded to the component. The themechanger.js component is responsible for the dark mode. 
\ No newline at end of file
diff --git a/docs/task/task.md b/docs/task/task.md
new file mode 100644
index 0000000000000000000000000000000000000000..74cb97f3590d1aee17d69015d620a90093fc17df
--- /dev/null
+++ b/docs/task/task.md
@@ -0,0 +1,211 @@
+# Task Creation and Info
+
+A chapter consists of tasks which in turn consists of data and exercises.
+
+Both chapter and tasks share similar metadata values.
+
+Metadata contains several variables:
+
+- title: The title of the task/chapter.
+- description: A description of the task/chapter.
+- type: The type of the document. Can be either a task or chapter.
+- location: Which chapter the task belongs to. Skip for chapter. Should be removed in the long term. Autogenerated
+- next and prev are optional directonial buttons which the user of the page can click in order of navigating to the `prev` and `next` page. The value should be the name of the redirect task.
+- id is a custom task id. Autogenerated.
+
+
+## How to create a chapter:
+Run generate_chapter.py to create a chapter. Enter the chapter title
+
+## How to create a task:
+Run generate_task.py to create a task. Firstly, enter the chapter title the task should belong to, then title of the task to be created.
+
+## How to create a exercise:
+Exercises should have a unique id generated by generate_id.py. Run generate_id.py and copy the id. 
+Example:
+
+```jsx
+<exercise id="4e536d87-84d6-40ae-9b06-408d79f2a726" title="NLP 1">
+```
+
+## Task Components
+There are different components that can be used,
+answer types are used for different purposes, and is 
+based on the answer the user should provide e.g text-inputs, numerical inputs, multi-choice anwers, etc..
+
+
+### Input types category
+Inputs are divided into match types and input types(default type), those are further divided into subcategories
+- Input-type: The simplest form of input, the only subcategory of this is **regex-input**
+
+**regex-input** 
+| Prop   | Type   | Description  | Optional |
+|--------|--------|--------------|----------|
+| regex  | string | -            | No       |  
+
+<br>
+Example:
+
+```jsx
+<regex-input regex="58\/63" id=3></regex-input>
+// Will compare the user answer to 58/63 
+```
+
+- Input-match: Wirriten in the form `<SubCategory><Match>`, these components come with their own submit button
+               and are used as a single answer exerciese. Match categories should not be children to `multi-answer`
+
+<br>
+
+**regex-match** (similar to regex-input but comes with a button) 
+
+| Prop   | Type   | Description  | Optional |
+|--------|--------|--------------|----------|
+| regex  | string | -            | No       |  
+
+<br>
+
+**numeric-match**
+| Prop    | Type   | Description                                     | Optional |
+|---------|--------|-------------------------------------------------| -------- |
+| correct | number | The right answer                                | No       |
+| right   | string | The message displayed when correctly answered   | Yes      |
+| wrong   | string | The message displayed when incorrectly answered | Yes      |
+
+<br>
+
+**range-match** Numerical range input Both ends **exclusicve**
+| Prop    | Type   | Description                                     | Optional |
+|---------|--------|-------------------------------------------------| -------- |
+| from    | number | The first correct number in the range           | No       |
+| to      | number | The last correct number in the range            | No       |
+| right   | string | The message displayed when correctly answered   | Yes      |
+| wrong   | string | The message displayed when incorrectly answered | Yes      |
+
+
+<br>
+
+**exact-match**
+| Prop    | Type   | Description                                     | Optional |
+|---------|--------|-------------------------------------------------| -------- |
+| correct | string | The right answer                                | No       |
+| right   | string | The message displayed when correctly answered   | Yes      |
+| wrong   | string | The message displayed when incorrectly answered | Yes      |
+
+
+<br>
+
+Examples
+```jsx 
+<exact-match correct="fΓΆnster" right="Bra jobbat!" wrong="Fel svar"/>
+
+<numeric-match correct=10 right="Bra jobbat!" wrong="Fel svar"/>
+
+<range-match from=10 to=15 right="This right because it's and arithmetic range" wrong="Fel svar"/>
+``` 
+---
+### Choice types category
+The use chooses one of the answers, this category is divided into multiple subcategories based
+on the answer, e.g, multiple correct answers, one correct answer, one correct answer(different UI)
+All of them use the opt tag as children which can idicate the correct answer.
+
+<br>
+
+**opt-tag**
+
+| Prop     | Type            | Description                                                        | Optional |
+|--------- |-----------------|--------------------------------------------------------------------| -------- |
+| text     | string          | The answer text shown to the user                                  | No       |
+| correct  | boolean(string) | The message displayed when correctly answered ("true" or "false")  | No       |
+| children | text            | The message displayeed when this option is picked                  | Yes      |
+
+<br>
+
+**select-choice** 
+
+| Prop     | Type     | Description                                                             | Optional |
+|----------|----------|-------------------------------------------------------------------------| -------- |
+| children | opt-tags | The options provided for the user.                                      | No       |
+| right    | string   | The message displayed when correctly answered.                          | Yes      |
+| wrong    | string   | The message displayed when incorrectly answered.                        | Yes      |
+
+
+<br>
+
+**multi-choice** Multiple correct answers, the options are provided with the opt tag.
+
+| Prop     | Type     | Description                                                             | Optional |
+|----------|----------|-------------------------------------------------------------------------| -------- |
+| partial  | string   | The message dispalyed when only some of the correct answers are picked. | No       |
+| right    | string   | The message displayed when correctly answered.                          | Yes      |
+| wrong    | string   | The message displayed when incorrectly answered.                        | Yes      |
+| children | opt-tags | The options provided for the user.                                      | No       |
+
+<br>
+
+**choice** Almost exactly like multichoice but only one opt-tag child can be declared as correct.
+
+| Prop     | Type     | Description                                                             | Optional |
+|----------|----------|-------------------------------------------------------------------------| -------- |
+| right    | string   | The message displayed when correctly answered.                          | Yes      |
+| wrong    | string   | The message displayed when incorrectly answered.                        | Yes      |
+| children | opt-tags | The options provided for the user.                                      | No       |
+
+<br>
+
+Examples:
+
+```jsx
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+<opt text="Answer one" correct="true">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="Answer two" correct="true">
+
+Good job!
+
+</opt>
+
+<opt text="Answer three">
+
+This is not correct either.
+
+</opt>
+</multichoice>
+
+<choice>
+<opt text="Answer one">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="Answer two" correct="true">
+
+Good job!
+
+</opt>
+
+<opt text="Answer three">
+
+This is not correct either.
+
+</opt>
+</choice>
+
+
+<select-choice>
+
+<opt text="aaaaaaaaaaaaaaa">
+</opt>
+
+<opt text="bbbbbbbbbbbbbb" correct="true"></opt>
+
+<opt text="ccccccccccccccccccccccccc"></opt>
+
+</select-choice>
+
+```
diff --git a/exercises/bookquotes.json b/exercises/bookquotes.json
new file mode 100644
index 0000000000000000000000000000000000000000..3971080dc9258b0fb42326d3779c5794a372b695
--- /dev/null
+++ b/exercises/bookquotes.json
@@ -0,0 +1,26 @@
+[
+    [
+        "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.",
+        { "author": "Franz Kafka", "book": "Metamorphosis" }
+    ],
+    [
+        "I know not all that may be coming, but be it what it will, I'll go to it laughing.",
+        { "author": "Herman Melville", "book": "Moby-Dick or, The Whale" }
+    ],
+    [
+        "It was the best of times, it was the worst of times.",
+        { "author": "Charles Dickens", "book": "A Tale of Two Cities" }
+    ],
+    [
+        "The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn like fabulous yellow roman candles exploding like spiders across the stars.",
+        { "author": "Jack Kerouac", "book": "On the Road" }
+    ],
+    [
+        "It was a bright cold day in April, and the clocks were striking thirteen.",
+        { "author": "George Orwell", "book": "1984" }
+    ],
+    [
+        "Nowadays people know the price of everything and the value of nothing.",
+        { "author": "Oscar Wilde", "book": "The Picture Of Dorian Gray" }
+    ]
+]
diff --git a/exercises/exc_01_03.py b/exercises/exc_01_03.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cbac0db82e6e843c9b87e2d50de3ea7cdc43ec5
--- /dev/null
+++ b/exercises/exc_01_03.py
@@ -0,0 +1,11 @@
+import json
+
+# This code will run relative to the root of the repo, so we can load files
+with open("exercises/bookquotes.json") as f:
+    DATA = json.loads(f.read())
+
+# Print the first record in the DATA
+print(___[____])
+
+# Assign the length of DATA to some_var
+some_var = ___
diff --git a/exercises/solution_01_03.py b/exercises/solution_01_03.py
new file mode 100644
index 0000000000000000000000000000000000000000..e33e1c4d66db69c4b984503ed547360fb955132e
--- /dev/null
+++ b/exercises/solution_01_03.py
@@ -0,0 +1,11 @@
+import json
+
+# This code will run relative to the root of the repo, so we can load files
+with open("exercises/bookquotes.json") as f:
+    DATA = json.loads(f.read())
+
+# Print the first record in the DATA
+print(DATA[0])
+
+# Assign the length of DATA to some_var
+some_var = len(DATA)
diff --git a/exercises/test_01_03.py b/exercises/test_01_03.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ebe9a955e609e2000835e2f104aba5227760e9f
--- /dev/null
+++ b/exercises/test_01_03.py
@@ -0,0 +1,12 @@
+def test():
+    # Here we can either check objects created in the solution code, or the
+    # string value of the solution, available as __solution__. A helper for
+    # printing formatted messages is available as __msg__. See the testTemplate
+    # in the meta.json for details.
+
+    # If an assertion fails, the message will be displayed
+    assert DATA[0] == 123123, "is it still the correct thing?" 
+    assert "print(DATA[0])" in __solution__, "Are you printing the first record?"
+    assert some_var == len(DATA), "Are you getting the correct length?"
+
+    __msg__.good("Well done!")
diff --git a/gatsby-browser.js b/gatsby-browser.js
new file mode 100644
index 0000000000000000000000000000000000000000..75b46728f12b36cd2334d959bc6808fe028ab788
--- /dev/null
+++ b/gatsby-browser.js
@@ -0,0 +1,6 @@
+import python from 'codemirror/mode/python/python' // eslint-disable-line no-unused-vars
+
+// This doesn't have to be here – but if we do import Juniper here, it's already
+// preloaded and cached when we dynamically import it in code.js.
+import Juniper from './src/components/juniper' // eslint-disable-line no-unused-vars
+import "./src/styles/global.css"
\ No newline at end of file
diff --git a/gatsby-config.js b/gatsby-config.js
new file mode 100644
index 0000000000000000000000000000000000000000..ccf8efd0761b07f4fcf15a6ec1beee99a31b2220
--- /dev/null
+++ b/gatsby-config.js
@@ -0,0 +1,101 @@
+const meta = require('./meta.json')
+const autoprefixer = require('autoprefixer')
+
+module.exports = {
+    siteMetadata: meta,
+    plugins: [
+        {
+            resolve: `gatsby-plugin-sass`,
+            options: {
+                indentedSyntax: true,
+                postCssPlugins: [autoprefixer()],
+                cssLoaderOptions: {
+                    localIdentName:
+                        process.env.NODE_ENV == 'development'
+                            ? '[name]-[local]-[hash:8]'
+                            : '[hash:8]',
+                },
+            },
+        },
+        `gatsby-plugin-react-helmet`,
+        {
+            resolve: `gatsby-source-filesystem`,
+            options: {
+                name: `tasks`,
+                path: `${__dirname}/tasks`,
+            },
+        },
+        {
+            resolve: `gatsby-source-filesystem`,
+            options: {
+                name: `slides`,
+                path: `${__dirname}/slides`,
+            },
+        },
+        {
+            resolve: `gatsby-source-filesystem`,
+            options: {
+                name: `exercises`,
+                path: `${__dirname}/exercises`,
+            },
+        },
+        {
+            resolve: 'gatsby-plugin-react-svg',
+            options: {
+                rule: {
+                    include: /static/,
+                },
+            },
+        },
+        {
+            resolve: `gatsby-transformer-remark`,
+            options: {
+                plugins: [
+                    `gatsby-remark-component`,
+                    `gatsby-remark-mathjax`,
+                    `gatsby-remark-copy-linked-files`,
+                    {
+                        resolve: `gatsby-remark-prismjs`,
+                        options: {
+                            noInlineHighlight: true,
+                        },
+                    },
+                    {
+                        resolve: `gatsby-remark-smartypants`,
+                        options: {
+                            dashes: 'oldschool',
+                        },
+                    },
+                    {
+                        resolve: `gatsby-remark-images`,
+                        options: {
+                            maxWidth: 790,
+                            linkImagesToOriginal: true,
+                            sizeByPixelDensity: false,
+                            showCaptions: true,
+                            quality: 80,
+                            withWebp: { quality: 80 },
+                        },
+                    },
+                    `gatsby-remark-unwrap-images`,
+                ],
+            },
+        },
+        `gatsby-transformer-sharp`,
+        `gatsby-plugin-sharp`,
+        `gatsby-plugin-sitemap`,
+        {
+            resolve: `gatsby-plugin-manifest`,
+            options: {
+                name: meta.title,
+                short_name: meta.title,
+                start_url: `/`,
+                background_color: meta.theme,
+                theme_color: meta.theme,
+                display: `minimal-ui`,
+                icon: `static/icon.png`,
+            },
+        },
+        `gatsby-plugin-offline`,
+    ],
+}
diff --git a/gatsby-node.js b/gatsby-node.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e44053eb404e1f90ed1f6534cb36a9ecc171450
--- /dev/null
+++ b/gatsby-node.js
@@ -0,0 +1,191 @@
+const path = require('path')
+const webpack = require('webpack')
+const { createFilePath } = require('gatsby-source-filesystem')
+
+const taskTemplate = path.resolve('src/templates/task-placeholder.js')
+const chapterTemplate = path.resolve('src/templates/chapter.js')
+
+const faq = path.resolve('src/pages/faq.js')
+const courseMaterial = path.resolve('src/pages/course-material.js')
+const courseInfo = path.resolve('src/pages/course-info.js')
+
+
+function replacePath(pagePath) {
+    return pagePath === `/` ? pagePath : pagePath.replace(/\/$/, ``)
+}
+
+async function onCreateNode({
+    node,
+    actions,
+    getNode,
+    loadNodeContent,
+    createNodeId,
+    createContentDigest,
+}) {
+    const { createNodeField, createNode, createParentChildLink } = actions
+
+    if (node.internal.type === 'MarkdownRemark') {
+        console.log(node)
+        const location = node.frontmatter.location;
+        const type     = node.frontmatter.type;
+        const basePath = ""//"tasks" // Mappnamnet den ska hitta saker i
+        const slug     = createFilePath({ node, getNode, basePath, trailingSlash: false }) // 'chapter1' 'chapter2' => basePath Γ€r mappnamnet
+   
+        createNodeField({ name: 'slug', node, value: slug })
+        createNodeField({ name: 'fullPath', node, value: `/${location ? location : type}${slug}`})
+        
+
+    } else if (node.extension === 'py') {
+        // Load the contents of the Python file and make it available via GraphQL
+        // https://www.gatsbyjs.org/docs/creating-a-transformer-plugin/
+        const content = await loadNodeContent(node)
+        const contentDigest = createContentDigest(content)
+        const id = createNodeId(`${node.id}-code`)
+        const internal = { type: 'Code', contentDigest }
+        const codeNode = {
+            id,
+            parent: node.id,
+            children: [],
+            code: content,
+            name: node.name,
+            internal,
+        }
+        createNode(codeNode)
+        createParentChildLink({ parent: node, child: codeNode })
+    }
+}
+
+exports.onCreateWebpackConfig = ({ stage, actions, plugins }) => {
+    actions.setWebpackConfig({
+        plugins: [
+            plugins.define({
+                'global.GENTLY': false
+            })
+        ]
+    })
+}
+
+// https://stackoverflow.com/questions/50770217/how-to-give-gatsby-a-graphql-schema
+exports.sourceNodes = ({ actions, schema }) => {
+    const { createTypes } = actions
+    createTypes(`
+      type MarkdownRemarkFrontmatter {
+        id: String
+      }
+    `)
+  }
+
+
+exports.onCreateNode = onCreateNode
+
+exports.createPages = ({ actions, graphql }) => {
+
+    const { createPage } = actions
+    return graphql(`
+        {
+            allMarkdownRemark {
+                edges {
+                    node {
+                        frontmatter {
+                            title
+                            type
+                            description    
+                            index                       
+                        }
+                        fields {
+                            slug
+                            fullPath
+                        }
+                    }
+                }
+            }
+        }
+    `).then(result => {
+        if (result.errors) {
+            return Promise.reject(result.errors)
+        }
+
+        
+        /*createPage({
+            path: `/faq`,
+            component: faq,
+            context: {  },
+        })
+
+        
+
+        createPage({
+            path: `/course-info`,
+            component: courseInfo,
+            context: {  },
+        })*/
+    
+
+        const posts = result.data.allMarkdownRemark.edges.filter(
+            ({ node }) => node.frontmatter.type === 'task' 
+        )
+
+        posts.forEach(({ node }) => {
+
+            createPage({
+                path: `${node.fields.slug}`,
+                component: taskTemplate,
+                context: { slug: node.fields.slug, fullPath: node.fields.fullPath, standalone: true },
+            })
+
+
+            createPage({
+                path: node.fields.fullPath,
+                component: taskTemplate,
+                context: { slug: node.fields.slug, fullPath: node.fields.fullPath, standalone: false },
+            })
+
+        })
+
+        const chapters = result.data.allMarkdownRemark.edges.filter(
+            ({ node }) => node.frontmatter.type === 'chapter' 
+        )
+
+        createPage({
+            path: `/course-material`,
+            component: courseMaterial,
+            context: { data: chapters },
+        })
+
+
+        chapters.forEach(({ node }) => {
+            //console.log(node)
+
+              //Hacky way of filtering chapter tasks to a chapter; Filters path
+            let tasks = posts.filter((item) => node.fields.slug.split('/')[1] == item.node.fields.slug.split('/')[1]);
+
+          
+            // Work in progress implemenation of sort by index
+            console.log(tasks)
+            //posts.filter((item) => node.fields.slug.split('/')[1] == item.node.fields.slug.split('/')[1]);
+            /*tasks.sort((a, b) => {
+                console.log(a)
+                console.log(b)
+                if (a.node.frontmatter.index === null || b.node.frontmatter.index === null)
+                    return a;
+                
+                return int(a.node.frontmatter.index) > int(b.node.frontmatter.index);
+            });*/
+            tasks.sort(function(a, b) {
+                if (a.node.frontmatter.index === null || b.node.frontmatter.index === null)
+                    return true;
+                
+                return a.node.frontmatter.index > b.node.frontmatter.index;
+            });
+
+            
+
+            createPage({
+                path: `${node.fields.slug}`,
+                component: chapterTemplate,
+                context: { slug: node.fields.slug, fullPath: node.fields.fullPath, standalone: true, tasks: tasks },
+            })
+        })
+
+    })
+}
diff --git a/meta.json b/meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..c2911b29f54456f49f1a8b3ee96ab56a5ad48d5e
--- /dev/null
+++ b/meta.json
@@ -0,0 +1,25 @@
+{
+    "courseId": "ete335-ai-for-naturligt-sprak",
+    "title": "AI fΓΆr naturligt sprΓ₯k",
+    "slogan": "Distanskurs av LinkΓΆpings Universitet",
+    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tristique libero at est congue, sed vestibulum tortor laoreet. Aenean egestas massa non commodo consequat. Curabitur faucibus, sapien vitae euismod imperdiet, arcu erat semper urna, in accumsan sapien dui ac mi. Pellentesque felis lorem, semper nec velit nec, consectetur placerat enim.",
+    "bio": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tristique libero at est congue, sed vestibulum tortor laoreet. Aenean egestas massa non commodo consequat. Curabitur faucibus, sapien vitae euismod imperdiet, arcu erat semper urna.",
+    "siteUrl": "https://course-starter-python.netlify.com",
+    "twitter": "spacy_io",
+    "fonts": "IBM+Plex+Mono:500|IBM+Plex+Sans:700|Lato:400,400i,700,700i|Montserrat:100,200,300,400,500,600,700,800,900|Work+Sans:100,200,300,400,500,600,700,800,900|Josefin+Sans:700",
+    "testTemplate": "from wasabi import Printer\n__msg__ = Printer()\n__solution__ = \"\"\"${solution}\"\"\"\n\n${solution}\n\n${test}\n\ntry:\n    test()\nexcept AssertionError as e:\n    __msg__.fail(e)",
+    "juniper": {
+        "repo": "ines/course-starter-python",
+        "branch": "binder",
+        "lang": "python",
+        "kernelType": "python3",
+        "debug": false
+    },
+    "showProfileImage": true,
+    "footerLinks": [
+        { "text": "Website", "url": "https://spacy.io" },
+        { "text": "Source", "url": "https://github.com/ines/course-starter-python" },
+        { "text": "Built with β™₯", "url": "https://github.com/ines/course-starter-python" }
+    ],
+    "theme": "#de7878"
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..6ef144b71444a7eca3d0bc761db003502a8fd98b
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,23094 @@
+{
+    "name": "course-starter-python",
+    "version": "0.0.1",
+    "lockfileVersion": 1,
+    "requires": true,
+    "dependencies": {
+        "@ardatan/aggregate-error": {
+            "version": "0.0.6",
+            "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz",
+            "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==",
+            "requires": {
+                "tslib": "~2.0.1"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+                    "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+                }
+            }
+        },
+        "@azure/msal-browser": {
+            "version": "2.11.1",
+            "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.11.1.tgz",
+            "integrity": "sha512-47lg70btdOw5BaA3HtWZVJpvorxFjDVq8Ngt2421x4xnPH8SnHoGZl17iMeSjMlzGwGF0YdQ+/lnUUwR54+z7A==",
+            "requires": {
+                "@azure/msal-common": "^4.0.0"
+            }
+        },
+        "@azure/msal-common": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-4.0.0.tgz",
+            "integrity": "sha512-aGIUZgaIyb48m9353oepMsoy8tAan4BM6MvQ9FFybRJdMtTlHkXo7BfGcygVSFJlB2AGnW7HhCKAwCKNEpjzeQ==",
+            "requires": {
+                "debug": "^4.1.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                }
+            }
+        },
+        "@babel/code-frame": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+            "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+            "requires": {
+                "@babel/highlight": "^7.10.4"
+            }
+        },
+        "@babel/compat-data": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz",
+            "integrity": "sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg=="
+        },
+        "@babel/core": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.17.tgz",
+            "integrity": "sha512-V3CuX1aBywbJvV2yzJScRxeiiw0v2KZZYYE3giywxzFJL13RiyPjaaDwhDnxmgFTTS7FgvM2ijr4QmKNIu0AtQ==",
+            "requires": {
+                "@babel/code-frame": "^7.12.13",
+                "@babel/generator": "^7.12.17",
+                "@babel/helper-module-transforms": "^7.12.17",
+                "@babel/helpers": "^7.12.17",
+                "@babel/parser": "^7.12.17",
+                "@babel/template": "^7.12.13",
+                "@babel/traverse": "^7.12.17",
+                "@babel/types": "^7.12.17",
+                "convert-source-map": "^1.7.0",
+                "debug": "^4.1.0",
+                "gensync": "^1.0.0-beta.1",
+                "json5": "^2.1.2",
+                "lodash": "^4.17.19",
+                "semver": "^5.4.1",
+                "source-map": "^0.5.0"
+            },
+            "dependencies": {
+                "@babel/code-frame": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+                    "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+                    "requires": {
+                        "@babel/highlight": "^7.12.13"
+                    }
+                },
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                },
+                "@babel/highlight": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz",
+                    "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==",
+                    "requires": {
+                        "@babel/helper-validator-identifier": "^7.12.11",
+                        "chalk": "^2.0.0",
+                        "js-tokens": "^4.0.0"
+                    }
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                },
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                },
+                "source-map": {
+                    "version": "0.5.7",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+                }
+            }
+        },
+        "@babel/generator": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.17.tgz",
+            "integrity": "sha512-DSA7ruZrY4WI8VxuS1jWSRezFnghEoYEFrZcw9BizQRmOZiUsiHl59+qEARGPqPikwA/GPTyRCi7isuCK/oyqg==",
+            "requires": {
+                "@babel/types": "^7.12.17",
+                "jsesc": "^2.5.1",
+                "source-map": "^0.5.0"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.5.7",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+                }
+            }
+        },
+        "@babel/helper-annotate-as-pure": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz",
+            "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-builder-binary-assignment-operator-visitor": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz",
+            "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==",
+            "requires": {
+                "@babel/helper-explode-assignable-expression": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-compilation-targets": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.17.tgz",
+            "integrity": "sha512-5EkibqLVYOuZ89BSg2lv+GG8feywLuvMXNYgf0Im4MssE0mFWPztSpJbildNnUgw0bLI2EsIN4MpSHC2iUJkQA==",
+            "requires": {
+                "@babel/compat-data": "^7.12.13",
+                "@babel/helper-validator-option": "^7.12.17",
+                "browserslist": "^4.14.5",
+                "semver": "^5.5.0"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "@babel/helper-create-class-features-plugin": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.17.tgz",
+            "integrity": "sha512-I/nurmTxIxHV0M+rIpfQBF1oN342+yvl2kwZUrQuOClMamHF1w5tknfZubgNOLRoA73SzBFAdFcpb4M9HwOeWQ==",
+            "requires": {
+                "@babel/helper-function-name": "^7.12.13",
+                "@babel/helper-member-expression-to-functions": "^7.12.17",
+                "@babel/helper-optimise-call-expression": "^7.12.13",
+                "@babel/helper-replace-supers": "^7.12.13",
+                "@babel/helper-split-export-declaration": "^7.12.13"
+            }
+        },
+        "@babel/helper-create-regexp-features-plugin": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz",
+            "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==",
+            "requires": {
+                "@babel/helper-annotate-as-pure": "^7.12.13",
+                "regexpu-core": "^4.7.1"
+            }
+        },
+        "@babel/helper-explode-assignable-expression": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz",
+            "integrity": "sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-function-name": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz",
+            "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==",
+            "requires": {
+                "@babel/helper-get-function-arity": "^7.12.13",
+                "@babel/template": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-get-function-arity": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz",
+            "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-hoist-variables": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz",
+            "integrity": "sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-member-expression-to-functions": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.17.tgz",
+            "integrity": "sha512-Bzv4p3ODgS/qpBE0DiJ9qf5WxSmrQ8gVTe8ClMfwwsY2x/rhykxxy3bXzG7AGTnPB2ij37zGJ/Q/6FruxHxsxg==",
+            "requires": {
+                "@babel/types": "^7.12.17"
+            }
+        },
+        "@babel/helper-module-imports": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz",
+            "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-module-transforms": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.17.tgz",
+            "integrity": "sha512-sFL+p6zOCQMm9vilo06M4VHuTxUAwa6IxgL56Tq1DVtA0ziAGTH1ThmJq7xwPqdQlgAbKX3fb0oZNbtRIyA5KQ==",
+            "requires": {
+                "@babel/helper-module-imports": "^7.12.13",
+                "@babel/helper-replace-supers": "^7.12.13",
+                "@babel/helper-simple-access": "^7.12.13",
+                "@babel/helper-split-export-declaration": "^7.12.13",
+                "@babel/helper-validator-identifier": "^7.12.11",
+                "@babel/template": "^7.12.13",
+                "@babel/traverse": "^7.12.17",
+                "@babel/types": "^7.12.17",
+                "lodash": "^4.17.19"
+            },
+            "dependencies": {
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                }
+            }
+        },
+        "@babel/helper-optimise-call-expression": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz",
+            "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-plugin-utils": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz",
+            "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA=="
+        },
+        "@babel/helper-remap-async-to-generator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz",
+            "integrity": "sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==",
+            "requires": {
+                "@babel/helper-annotate-as-pure": "^7.12.13",
+                "@babel/helper-wrap-function": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-replace-supers": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz",
+            "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==",
+            "requires": {
+                "@babel/helper-member-expression-to-functions": "^7.12.13",
+                "@babel/helper-optimise-call-expression": "^7.12.13",
+                "@babel/traverse": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-simple-access": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz",
+            "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-skip-transparent-expression-wrappers": {
+            "version": "7.12.1",
+            "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+            "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
+            "requires": {
+                "@babel/types": "^7.12.1"
+            }
+        },
+        "@babel/helper-split-export-declaration": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz",
+            "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==",
+            "requires": {
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helper-validator-identifier": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+            "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+        },
+        "@babel/helper-validator-option": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz",
+            "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw=="
+        },
+        "@babel/helper-wrap-function": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz",
+            "integrity": "sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw==",
+            "requires": {
+                "@babel/helper-function-name": "^7.12.13",
+                "@babel/template": "^7.12.13",
+                "@babel/traverse": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            }
+        },
+        "@babel/helpers": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.17.tgz",
+            "integrity": "sha512-tEpjqSBGt/SFEsFikKds1sLNChKKGGR17flIgQKXH4fG6m9gTgl3gnOC1giHNyaBCSKuTfxaSzHi7UnvqiVKxg==",
+            "requires": {
+                "@babel/template": "^7.12.13",
+                "@babel/traverse": "^7.12.17",
+                "@babel/types": "^7.12.17"
+            }
+        },
+        "@babel/highlight": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+            "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+            "requires": {
+                "@babel/helper-validator-identifier": "^7.10.4",
+                "chalk": "^2.0.0",
+                "js-tokens": "^4.0.0"
+            }
+        },
+        "@babel/parser": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.17.tgz",
+            "integrity": "sha512-r1yKkiUTYMQ8LiEI0UcQx5ETw5dpTLn9wijn9hk6KkTtOK95FndDN10M+8/s6k/Ymlbivw0Av9q4SlgF80PtHg=="
+        },
+        "@babel/plugin-proposal-async-generator-functions": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz",
+            "integrity": "sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-remap-async-to-generator": "^7.12.13",
+                "@babel/plugin-syntax-async-generators": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-class-properties": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz",
+            "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==",
+            "requires": {
+                "@babel/helper-create-class-features-plugin": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-proposal-dynamic-import": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.17.tgz",
+            "integrity": "sha512-ZNGoFZqrnuy9H2izB2jLlnNDAfVPlGl5NhFEiFe4D84ix9GQGygF+CWMGHKuE+bpyS/AOuDQCnkiRNqW2IzS1Q==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-dynamic-import": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-export-namespace-from": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz",
+            "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+            }
+        },
+        "@babel/plugin-proposal-json-strings": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz",
+            "integrity": "sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-json-strings": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-logical-assignment-operators": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz",
+            "integrity": "sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+            }
+        },
+        "@babel/plugin-proposal-nullish-coalescing-operator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz",
+            "integrity": "sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-numeric-separator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz",
+            "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+            }
+        },
+        "@babel/plugin-proposal-object-rest-spread": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz",
+            "integrity": "sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+                "@babel/plugin-transform-parameters": "^7.12.13"
+            }
+        },
+        "@babel/plugin-proposal-optional-catch-binding": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz",
+            "integrity": "sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-optional-chaining": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.17.tgz",
+            "integrity": "sha512-TvxwI80pWftrGPKHNfkvX/HnoeSTR7gC4ezWnAL39PuktYUe6r8kEpOLTYnkBTsaoeazXm2jHJ22EQ81sdgfcA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
+                "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+            }
+        },
+        "@babel/plugin-proposal-private-methods": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz",
+            "integrity": "sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg==",
+            "requires": {
+                "@babel/helper-create-class-features-plugin": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-proposal-unicode-property-regex": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz",
+            "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==",
+            "requires": {
+                "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-syntax-async-generators": {
+            "version": "7.8.4",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+            "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-class-properties": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+            "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-syntax-dynamic-import": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+            "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-export-namespace-from": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+            "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.3"
+            }
+        },
+        "@babel/plugin-syntax-json-strings": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+            "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-jsx": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz",
+            "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-syntax-logical-assignment-operators": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+            "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.10.4"
+            }
+        },
+        "@babel/plugin-syntax-nullish-coalescing-operator": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+            "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-numeric-separator": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+            "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.10.4"
+            }
+        },
+        "@babel/plugin-syntax-object-rest-spread": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+            "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-optional-catch-binding": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+            "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-optional-chaining": {
+            "version": "7.8.3",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+            "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.8.0"
+            }
+        },
+        "@babel/plugin-syntax-top-level-await": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz",
+            "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-syntax-typescript": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz",
+            "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-arrow-functions": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz",
+            "integrity": "sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-async-to-generator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz",
+            "integrity": "sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A==",
+            "requires": {
+                "@babel/helper-module-imports": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-remap-async-to-generator": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-block-scoped-functions": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz",
+            "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-block-scoping": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz",
+            "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-classes": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz",
+            "integrity": "sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA==",
+            "requires": {
+                "@babel/helper-annotate-as-pure": "^7.12.13",
+                "@babel/helper-function-name": "^7.12.13",
+                "@babel/helper-optimise-call-expression": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-replace-supers": "^7.12.13",
+                "@babel/helper-split-export-declaration": "^7.12.13",
+                "globals": "^11.1.0"
+            }
+        },
+        "@babel/plugin-transform-computed-properties": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz",
+            "integrity": "sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-destructuring": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz",
+            "integrity": "sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-dotall-regex": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz",
+            "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==",
+            "requires": {
+                "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-duplicate-keys": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz",
+            "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-exponentiation-operator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz",
+            "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==",
+            "requires": {
+                "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-for-of": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz",
+            "integrity": "sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-function-name": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz",
+            "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==",
+            "requires": {
+                "@babel/helper-function-name": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-literals": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz",
+            "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-member-expression-literals": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz",
+            "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-modules-amd": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz",
+            "integrity": "sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA==",
+            "requires": {
+                "@babel/helper-module-transforms": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "babel-plugin-dynamic-import-node": "^2.3.3"
+            }
+        },
+        "@babel/plugin-transform-modules-commonjs": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz",
+            "integrity": "sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==",
+            "requires": {
+                "@babel/helper-module-transforms": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-simple-access": "^7.12.13",
+                "babel-plugin-dynamic-import-node": "^2.3.3"
+            }
+        },
+        "@babel/plugin-transform-modules-systemjs": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz",
+            "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==",
+            "requires": {
+                "@babel/helper-hoist-variables": "^7.12.13",
+                "@babel/helper-module-transforms": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-validator-identifier": "^7.12.11",
+                "babel-plugin-dynamic-import-node": "^2.3.3"
+            },
+            "dependencies": {
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                }
+            }
+        },
+        "@babel/plugin-transform-modules-umd": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz",
+            "integrity": "sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==",
+            "requires": {
+                "@babel/helper-module-transforms": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-named-capturing-groups-regex": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz",
+            "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==",
+            "requires": {
+                "@babel/helper-create-regexp-features-plugin": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-new-target": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz",
+            "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-object-super": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz",
+            "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-replace-supers": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-parameters": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz",
+            "integrity": "sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-property-literals": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz",
+            "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-react-display-name": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz",
+            "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-react-jsx": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz",
+            "integrity": "sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw==",
+            "requires": {
+                "@babel/helper-annotate-as-pure": "^7.12.13",
+                "@babel/helper-module-imports": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-jsx": "^7.12.13",
+                "@babel/types": "^7.12.17"
+            }
+        },
+        "@babel/plugin-transform-react-jsx-development": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz",
+            "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==",
+            "requires": {
+                "@babel/plugin-transform-react-jsx": "^7.12.17"
+            }
+        },
+        "@babel/plugin-transform-react-pure-annotations": {
+            "version": "7.12.1",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz",
+            "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==",
+            "requires": {
+                "@babel/helper-annotate-as-pure": "^7.10.4",
+                "@babel/helper-plugin-utils": "^7.10.4"
+            }
+        },
+        "@babel/plugin-transform-regenerator": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz",
+            "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==",
+            "requires": {
+                "regenerator-transform": "^0.14.2"
+            }
+        },
+        "@babel/plugin-transform-reserved-words": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz",
+            "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-runtime": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.17.tgz",
+            "integrity": "sha512-s+kIJxnaTj+E9Q3XxQZ5jOo+xcogSe3V78/iFQ5RmoT0jROdpcdxhfGdq/VLqW1hFSzw6VjqN8aQqTaAMixWsw==",
+            "requires": {
+                "@babel/helper-module-imports": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "semver": "^5.5.1"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "@babel/plugin-transform-shorthand-properties": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz",
+            "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-spread": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz",
+            "integrity": "sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+            }
+        },
+        "@babel/plugin-transform-sticky-regex": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz",
+            "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-template-literals": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz",
+            "integrity": "sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-typeof-symbol": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz",
+            "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-typescript": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.17.tgz",
+            "integrity": "sha512-1bIYwnhRoetxkFonuZRtDZPFEjl1l5r+3ITkxLC3mlMaFja+GQFo94b/WHEPjqWLU9Bc+W4oFZbvCGe9eYMu1g==",
+            "requires": {
+                "@babel/helper-create-class-features-plugin": "^7.12.17",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-syntax-typescript": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-unicode-escapes": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz",
+            "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/plugin-transform-unicode-regex": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz",
+            "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==",
+            "requires": {
+                "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13"
+            }
+        },
+        "@babel/preset-env": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.17.tgz",
+            "integrity": "sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==",
+            "requires": {
+                "@babel/compat-data": "^7.12.13",
+                "@babel/helper-compilation-targets": "^7.12.17",
+                "@babel/helper-module-imports": "^7.12.13",
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-validator-option": "^7.12.17",
+                "@babel/plugin-proposal-async-generator-functions": "^7.12.13",
+                "@babel/plugin-proposal-class-properties": "^7.12.13",
+                "@babel/plugin-proposal-dynamic-import": "^7.12.17",
+                "@babel/plugin-proposal-export-namespace-from": "^7.12.13",
+                "@babel/plugin-proposal-json-strings": "^7.12.13",
+                "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13",
+                "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13",
+                "@babel/plugin-proposal-numeric-separator": "^7.12.13",
+                "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
+                "@babel/plugin-proposal-optional-catch-binding": "^7.12.13",
+                "@babel/plugin-proposal-optional-chaining": "^7.12.17",
+                "@babel/plugin-proposal-private-methods": "^7.12.13",
+                "@babel/plugin-proposal-unicode-property-regex": "^7.12.13",
+                "@babel/plugin-syntax-async-generators": "^7.8.0",
+                "@babel/plugin-syntax-class-properties": "^7.12.13",
+                "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+                "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+                "@babel/plugin-syntax-json-strings": "^7.8.0",
+                "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+                "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+                "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+                "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+                "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+                "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+                "@babel/plugin-syntax-top-level-await": "^7.12.13",
+                "@babel/plugin-transform-arrow-functions": "^7.12.13",
+                "@babel/plugin-transform-async-to-generator": "^7.12.13",
+                "@babel/plugin-transform-block-scoped-functions": "^7.12.13",
+                "@babel/plugin-transform-block-scoping": "^7.12.13",
+                "@babel/plugin-transform-classes": "^7.12.13",
+                "@babel/plugin-transform-computed-properties": "^7.12.13",
+                "@babel/plugin-transform-destructuring": "^7.12.13",
+                "@babel/plugin-transform-dotall-regex": "^7.12.13",
+                "@babel/plugin-transform-duplicate-keys": "^7.12.13",
+                "@babel/plugin-transform-exponentiation-operator": "^7.12.13",
+                "@babel/plugin-transform-for-of": "^7.12.13",
+                "@babel/plugin-transform-function-name": "^7.12.13",
+                "@babel/plugin-transform-literals": "^7.12.13",
+                "@babel/plugin-transform-member-expression-literals": "^7.12.13",
+                "@babel/plugin-transform-modules-amd": "^7.12.13",
+                "@babel/plugin-transform-modules-commonjs": "^7.12.13",
+                "@babel/plugin-transform-modules-systemjs": "^7.12.13",
+                "@babel/plugin-transform-modules-umd": "^7.12.13",
+                "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13",
+                "@babel/plugin-transform-new-target": "^7.12.13",
+                "@babel/plugin-transform-object-super": "^7.12.13",
+                "@babel/plugin-transform-parameters": "^7.12.13",
+                "@babel/plugin-transform-property-literals": "^7.12.13",
+                "@babel/plugin-transform-regenerator": "^7.12.13",
+                "@babel/plugin-transform-reserved-words": "^7.12.13",
+                "@babel/plugin-transform-shorthand-properties": "^7.12.13",
+                "@babel/plugin-transform-spread": "^7.12.13",
+                "@babel/plugin-transform-sticky-regex": "^7.12.13",
+                "@babel/plugin-transform-template-literals": "^7.12.13",
+                "@babel/plugin-transform-typeof-symbol": "^7.12.13",
+                "@babel/plugin-transform-unicode-escapes": "^7.12.13",
+                "@babel/plugin-transform-unicode-regex": "^7.12.13",
+                "@babel/preset-modules": "^0.1.3",
+                "@babel/types": "^7.12.17",
+                "core-js-compat": "^3.8.0",
+                "semver": "^5.5.0"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "@babel/preset-modules": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
+            "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.0.0",
+                "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+                "@babel/plugin-transform-dotall-regex": "^7.4.4",
+                "@babel/types": "^7.4.4",
+                "esutils": "^2.0.2"
+            }
+        },
+        "@babel/preset-react": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz",
+            "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/plugin-transform-react-display-name": "^7.12.13",
+                "@babel/plugin-transform-react-jsx": "^7.12.13",
+                "@babel/plugin-transform-react-jsx-development": "^7.12.12",
+                "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
+            }
+        },
+        "@babel/preset-typescript": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.17.tgz",
+            "integrity": "sha512-T513uT4VSThRcmWeqcLkITKJ1oGQho9wfWuhQm10paClQkp1qyd0Wf8mvC8Se7UYssMyRSj4tZYpVTkCmAK/mA==",
+            "requires": {
+                "@babel/helper-plugin-utils": "^7.12.13",
+                "@babel/helper-validator-option": "^7.12.17",
+                "@babel/plugin-transform-typescript": "^7.12.17"
+            }
+        },
+        "@babel/runtime": {
+            "version": "7.12.5",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
+            "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+            "requires": {
+                "regenerator-runtime": "^0.13.4"
+            }
+        },
+        "@babel/runtime-corejs3": {
+            "version": "7.12.18",
+            "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.18.tgz",
+            "integrity": "sha512-ngR7yhNTjDxxe1VYmhqQqqXZWujGb6g0IoA4qeG6MxNGRnIw2Zo8ImY8HfaQ7l3T6GklWhdNfyhWk0C0iocdVA==",
+            "requires": {
+                "core-js-pure": "^3.0.0",
+                "regenerator-runtime": "^0.13.4"
+            }
+        },
+        "@babel/standalone": {
+            "version": "7.12.18",
+            "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.12.18.tgz",
+            "integrity": "sha512-W0obE/93ZPhDfJRUUotmks4lDsZBUWdjir2Z944FnvjK7rl9MDsFa8NW7jvsPjOzImp6uBIpf/dItCgjbVOr1Q=="
+        },
+        "@babel/template": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
+            "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==",
+            "requires": {
+                "@babel/code-frame": "^7.12.13",
+                "@babel/parser": "^7.12.13",
+                "@babel/types": "^7.12.13"
+            },
+            "dependencies": {
+                "@babel/code-frame": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+                    "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+                    "requires": {
+                        "@babel/highlight": "^7.12.13"
+                    }
+                },
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                },
+                "@babel/highlight": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz",
+                    "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==",
+                    "requires": {
+                        "@babel/helper-validator-identifier": "^7.12.11",
+                        "chalk": "^2.0.0",
+                        "js-tokens": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "@babel/traverse": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.17.tgz",
+            "integrity": "sha512-LGkTqDqdiwC6Q7fWSwQoas/oyiEYw6Hqjve5KOSykXkmFJFqzvGMb9niaUEag3Rlve492Mkye3gLw9FTv94fdQ==",
+            "requires": {
+                "@babel/code-frame": "^7.12.13",
+                "@babel/generator": "^7.12.17",
+                "@babel/helper-function-name": "^7.12.13",
+                "@babel/helper-split-export-declaration": "^7.12.13",
+                "@babel/parser": "^7.12.17",
+                "@babel/types": "^7.12.17",
+                "debug": "^4.1.0",
+                "globals": "^11.1.0",
+                "lodash": "^4.17.19"
+            },
+            "dependencies": {
+                "@babel/code-frame": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+                    "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+                    "requires": {
+                        "@babel/highlight": "^7.12.13"
+                    }
+                },
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                },
+                "@babel/highlight": {
+                    "version": "7.12.13",
+                    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz",
+                    "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==",
+                    "requires": {
+                        "@babel/helper-validator-identifier": "^7.12.11",
+                        "chalk": "^2.0.0",
+                        "js-tokens": "^4.0.0"
+                    }
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                }
+            }
+        },
+        "@babel/types": {
+            "version": "7.12.17",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.17.tgz",
+            "integrity": "sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ==",
+            "requires": {
+                "@babel/helper-validator-identifier": "^7.12.11",
+                "lodash": "^4.17.19",
+                "to-fast-properties": "^2.0.0"
+            },
+            "dependencies": {
+                "@babel/helper-validator-identifier": {
+                    "version": "7.12.11",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
+                    "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
+                }
+            }
+        },
+        "@endemolshinegroup/cosmiconfig-typescript-loader": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz",
+            "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==",
+            "requires": {
+                "lodash.get": "^4",
+                "make-error": "^1",
+                "ts-node": "^9",
+                "tslib": "^2"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/batch-execute": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.0.0.tgz",
+            "integrity": "sha512-+ywPfK6N2Ddna6oOa5Qb1Mv7EA8LOwRNOAPP9dL37FEhksJM9pYqPSceUcqMqg7S9b0+Cgr78s408rgvurV3/Q==",
+            "requires": {
+                "@graphql-tools/utils": "^7.0.0",
+                "dataloader": "2.0.0",
+                "is-promise": "4.0.0",
+                "tslib": "~2.0.1"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    },
+                    "dependencies": {
+                        "tslib": {
+                            "version": "2.1.0",
+                            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                            "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                        }
+                    }
+                },
+                "tslib": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+                    "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+                }
+            }
+        },
+        "@graphql-tools/delegate": {
+            "version": "7.0.10",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.10.tgz",
+            "integrity": "sha512-6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg==",
+            "requires": {
+                "@ardatan/aggregate-error": "0.0.6",
+                "@graphql-tools/batch-execute": "^7.0.0",
+                "@graphql-tools/schema": "^7.0.0",
+                "@graphql-tools/utils": "^7.1.6",
+                "dataloader": "2.0.0",
+                "is-promise": "4.0.0",
+                "tslib": "~2.1.0"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/graphql-file-loader": {
+            "version": "6.2.7",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz",
+            "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==",
+            "requires": {
+                "@graphql-tools/import": "^6.2.6",
+                "@graphql-tools/utils": "^7.0.0",
+                "tslib": "~2.1.0"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/import": {
+            "version": "6.2.6",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.6.tgz",
+            "integrity": "sha512-/0H/bDjNK1MnKonk8fMbB7wIYU6QLCwbQOHtSHbFJ4j2qki5CqfAxpF+fGX6KovDtkdigcgRMvSKKi14oiuHPA==",
+            "requires": {
+                "resolve-from": "5.0.0",
+                "tslib": "~2.1.0"
+            },
+            "dependencies": {
+                "resolve-from": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+                    "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/json-file-loader": {
+            "version": "6.2.6",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
+            "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==",
+            "requires": {
+                "@graphql-tools/utils": "^7.0.0",
+                "tslib": "~2.0.1"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    },
+                    "dependencies": {
+                        "tslib": {
+                            "version": "2.1.0",
+                            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                            "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                        }
+                    }
+                },
+                "tslib": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+                    "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+                }
+            }
+        },
+        "@graphql-tools/load": {
+            "version": "6.2.7",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz",
+            "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==",
+            "requires": {
+                "@graphql-tools/merge": "^6.2.9",
+                "@graphql-tools/utils": "^7.5.0",
+                "globby": "11.0.2",
+                "import-from": "3.0.0",
+                "is-glob": "4.0.1",
+                "p-limit": "3.1.0",
+                "tslib": "~2.1.0",
+                "unixify": "1.0.0",
+                "valid-url": "1.0.9"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "globby": {
+                    "version": "11.0.2",
+                    "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz",
+                    "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==",
+                    "requires": {
+                        "array-union": "^2.1.0",
+                        "dir-glob": "^3.0.1",
+                        "fast-glob": "^3.1.1",
+                        "ignore": "^5.1.4",
+                        "merge2": "^1.3.0",
+                        "slash": "^3.0.0"
+                    }
+                },
+                "p-limit": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+                    "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+                    "requires": {
+                        "yocto-queue": "^0.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/merge": {
+            "version": "6.2.9",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.9.tgz",
+            "integrity": "sha512-4PPB2rOEjnN91CVltOIVdBOOTEsC+2sHzOVngSoqtgZxvLwcRKwivy3sBuL3WyucBonzpXlV97Q418njslYa/w==",
+            "requires": {
+                "@graphql-tools/schema": "^7.0.0",
+                "@graphql-tools/utils": "^7.5.0",
+                "tslib": "~2.1.0"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/schema": {
+            "version": "7.1.3",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz",
+            "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==",
+            "requires": {
+                "@graphql-tools/utils": "^7.1.2",
+                "tslib": "~2.1.0"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/url-loader": {
+            "version": "6.8.1",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.1.tgz",
+            "integrity": "sha512-iE/y9IAu0cZYL7o9IIDdGm5WjxacN25nGgVqjZINYlisW/wyuBxng7DMJBAp6yM6gkxkCpMno1ljA/52MXzVPQ==",
+            "requires": {
+                "@graphql-tools/delegate": "^7.0.1",
+                "@graphql-tools/utils": "^7.1.5",
+                "@graphql-tools/wrap": "^7.0.4",
+                "@types/websocket": "1.0.1",
+                "cross-fetch": "3.0.6",
+                "eventsource": "1.0.7",
+                "extract-files": "9.0.0",
+                "form-data": "4.0.0",
+                "graphql-upload": "^11.0.0",
+                "graphql-ws": "4.1.5",
+                "is-promise": "4.0.0",
+                "isomorphic-ws": "4.0.1",
+                "sse-z": "0.3.0",
+                "sync-fetch": "0.3.0",
+                "tslib": "~2.1.0",
+                "valid-url": "1.0.9",
+                "ws": "7.4.3"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "@graphql-tools/utils": {
+            "version": "6.2.4",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz",
+            "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==",
+            "requires": {
+                "@ardatan/aggregate-error": "0.0.6",
+                "camel-case": "4.1.1",
+                "tslib": "~2.0.1"
+            },
+            "dependencies": {
+                "camel-case": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
+                    "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
+                    "requires": {
+                        "pascal-case": "^3.1.1",
+                        "tslib": "^1.10.0"
+                    },
+                    "dependencies": {
+                        "tslib": {
+                            "version": "1.14.1",
+                            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+                            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+                        }
+                    }
+                },
+                "tslib": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+                    "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+                }
+            }
+        },
+        "@graphql-tools/wrap": {
+            "version": "7.0.5",
+            "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz",
+            "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==",
+            "requires": {
+                "@graphql-tools/delegate": "^7.0.7",
+                "@graphql-tools/schema": "^7.1.2",
+                "@graphql-tools/utils": "^7.2.1",
+                "is-promise": "4.0.0",
+                "tslib": "~2.0.1"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    },
+                    "dependencies": {
+                        "tslib": {
+                            "version": "2.1.0",
+                            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                            "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                        }
+                    }
+                },
+                "tslib": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+                    "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
+                }
+            }
+        },
+        "@hapi/address": {
+            "version": "2.1.4",
+            "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+            "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ=="
+        },
+        "@hapi/bourne": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+            "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA=="
+        },
+        "@hapi/hoek": {
+            "version": "8.5.1",
+            "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+            "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow=="
+        },
+        "@hapi/joi": {
+            "version": "15.1.1",
+            "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+            "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+            "requires": {
+                "@hapi/address": "2.x.x",
+                "@hapi/bourne": "1.x.x",
+                "@hapi/hoek": "8.x.x",
+                "@hapi/topo": "3.x.x"
+            }
+        },
+        "@hapi/topo": {
+            "version": "3.1.6",
+            "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+            "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+            "requires": {
+                "@hapi/hoek": "^8.3.0"
+            }
+        },
+        "@iarna/toml": {
+            "version": "2.2.5",
+            "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+            "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="
+        },
+        "@illinois/react-use-local-storage": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@illinois/react-use-local-storage/-/react-use-local-storage-1.1.0.tgz",
+            "integrity": "sha512-ohuwk+ogqr3AVNHLUfYwgt4gbdNBi2kNq4gVDbhD2pwpJcX4VbkWJ9Q0fuXkVD4IB1BP6COSgMSPHPKjg9ep7g=="
+        },
+        "@jest/types": {
+            "version": "25.5.0",
+            "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+            "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+            "requires": {
+                "@types/istanbul-lib-coverage": "^2.0.0",
+                "@types/istanbul-reports": "^1.1.1",
+                "@types/yargs": "^15.0.0",
+                "chalk": "^3.0.0"
+            },
+            "dependencies": {
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+                    "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "@jimp/bmp": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.14.0.tgz",
+            "integrity": "sha512-5RkX6tSS7K3K3xNEb2ygPuvyL9whjanhoaB/WmmXlJS6ub4DjTqrapu8j4qnIWmO4YYtFeTbDTXV6v9P1yMA5A==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "bmp-js": "^0.1.0"
+            }
+        },
+        "@jimp/core": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.14.0.tgz",
+            "integrity": "sha512-S62FcKdtLtj3yWsGfJRdFXSutjvHg7aQNiFogMbwq19RP4XJWqS2nOphu7ScB8KrSlyy5nPF2hkWNhLRLyD82w==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "any-base": "^1.1.0",
+                "buffer": "^5.2.0",
+                "exif-parser": "^0.1.12",
+                "file-type": "^9.0.0",
+                "load-bmfont": "^1.3.1",
+                "mkdirp": "^0.5.1",
+                "phin": "^2.9.1",
+                "pixelmatch": "^4.0.2",
+                "tinycolor2": "^1.4.1"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "9.0.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz",
+                    "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw=="
+                }
+            }
+        },
+        "@jimp/custom": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.14.0.tgz",
+            "integrity": "sha512-kQJMeH87+kWJdVw8F9GQhtsageqqxrvzg7yyOw3Tx/s7v5RToe8RnKyMM+kVtBJtNAG+Xyv/z01uYQ2jiZ3GwA==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/core": "^0.14.0"
+            }
+        },
+        "@jimp/gif": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.14.0.tgz",
+            "integrity": "sha512-DHjoOSfCaCz72+oGGEh8qH0zE6pUBaBxPxxmpYJjkNyDZP7RkbBkZJScIYeQ7BmJxmGN4/dZn+MxamoQlr+UYg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "gifwrap": "^0.9.2",
+                "omggif": "^1.0.9"
+            }
+        },
+        "@jimp/jpeg": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.14.0.tgz",
+            "integrity": "sha512-561neGbr+87S/YVQYnZSTyjWTHBm9F6F1obYHiyU3wVmF+1CLbxY3FQzt4YolwyQHIBv36Bo0PY2KkkU8BEeeQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "jpeg-js": "^0.4.0"
+            }
+        },
+        "@jimp/plugin-blit": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.14.0.tgz",
+            "integrity": "sha512-YoYOrnVHeX3InfgbJawAU601iTZMwEBZkyqcP1V/S33Qnz9uzH1Uj1NtC6fNgWzvX6I4XbCWwtr4RrGFb5CFrw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-blur": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.14.0.tgz",
+            "integrity": "sha512-9WhZcofLrT0hgI7t0chf7iBQZib//0gJh9WcQMUt5+Q1Bk04dWs8vTgLNj61GBqZXgHSPzE4OpCrrLDBG8zlhQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-circle": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.14.0.tgz",
+            "integrity": "sha512-o5L+wf6QA44tvTum5HeLyLSc5eVfIUd5ZDVi5iRfO4o6GT/zux9AxuTSkKwnjhsG8bn1dDmywAOQGAx7BjrQVA==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-color": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.14.0.tgz",
+            "integrity": "sha512-JJz512SAILYV0M5LzBb9sbOm/XEj2fGElMiHAxb7aLI6jx+n0agxtHpfpV/AePTLm1vzzDxx6AJxXbKv355hBQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "tinycolor2": "^1.4.1"
+            }
+        },
+        "@jimp/plugin-contain": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.14.0.tgz",
+            "integrity": "sha512-RX2q233lGyaxiMY6kAgnm9ScmEkNSof0hdlaJAVDS1OgXphGAYAeSIAwzESZN4x3ORaWvkFefeVH9O9/698Evg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-cover": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.14.0.tgz",
+            "integrity": "sha512-0P/5XhzWES4uMdvbi3beUgfvhn4YuQ/ny8ijs5kkYIw6K8mHcl820HahuGpwWMx56DJLHRl1hFhJwo9CeTRJtQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-crop": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.14.0.tgz",
+            "integrity": "sha512-Ojtih+XIe6/XSGtpWtbAXBozhCdsDMmy+THUJAGu2x7ZgKrMS0JotN+vN2YC3nwDpYkM+yOJImQeptSfZb2Sug==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-displace": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.14.0.tgz",
+            "integrity": "sha512-c75uQUzMgrHa8vegkgUvgRL/PRvD7paFbFJvzW0Ugs8Wl+CDMGIPYQ3j7IVaQkIS+cAxv+NJ3TIRBQyBrfVEOg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-dither": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.14.0.tgz",
+            "integrity": "sha512-g8SJqFLyYexXQQsoh4dc1VP87TwyOgeTElBcxSXX2LaaMZezypmxQfLTzOFzZoK8m39NuaoH21Ou1Ftsq7LzVQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-fisheye": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.14.0.tgz",
+            "integrity": "sha512-BFfUZ64EikCaABhCA6mR3bsltWhPpS321jpeIQfJyrILdpFsZ/OccNwCgpW1XlbldDHIoNtXTDGn3E+vCE7vDg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-flip": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.14.0.tgz",
+            "integrity": "sha512-WtL1hj6ryqHhApih+9qZQYA6Ye8a4HAmdTzLbYdTMrrrSUgIzFdiZsD0WeDHpgS/+QMsWwF+NFmTZmxNWqKfXw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-gaussian": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.14.0.tgz",
+            "integrity": "sha512-uaLwQ0XAQoydDlF9tlfc7iD9drYPriFe+jgYnWm8fbw5cN+eOIcnneEX9XCOOzwgLPkNCxGox6Kxjn8zY6GxtQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-invert": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.14.0.tgz",
+            "integrity": "sha512-UaQW9X9vx8orQXYSjT5VcITkJPwDaHwrBbxxPoDG+F/Zgv4oV9fP+udDD6qmkgI9taU+44Fy+zm/J/gGcMWrdg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-mask": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.14.0.tgz",
+            "integrity": "sha512-tdiGM69OBaKtSPfYSQeflzFhEpoRZ+BvKfDEoivyTjauynbjpRiwB1CaiS8En1INTDwzLXTT0Be9SpI3LkJoEA==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-normalize": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.14.0.tgz",
+            "integrity": "sha512-AfY8sqlsbbdVwFGcyIPy5JH/7fnBzlmuweb+Qtx2vn29okq6+HelLjw2b+VT2btgGUmWWHGEHd86oRGSoWGyEQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-print": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.14.0.tgz",
+            "integrity": "sha512-MwP3sH+VS5AhhSTXk7pui+tEJFsxnTKFY3TraFJb8WFbA2Vo2qsRCZseEGwpTLhENB7p/JSsLvWoSSbpmxhFAQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "load-bmfont": "^1.4.0"
+            }
+        },
+        "@jimp/plugin-resize": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.14.0.tgz",
+            "integrity": "sha512-qFeMOyXE/Bk6QXN0GQo89+CB2dQcXqoxUcDb2Ah8wdYlKqpi53skABkgVy5pW3EpiprDnzNDboMltdvDslNgLQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-rotate": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.14.0.tgz",
+            "integrity": "sha512-aGaicts44bvpTcq5Dtf93/8TZFu5pMo/61lWWnYmwJJU1RqtQlxbCLEQpMyRhKDNSfPbuP8nyGmaqXlM/82J0Q==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-scale": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.14.0.tgz",
+            "integrity": "sha512-ZcJk0hxY5ZKZDDwflqQNHEGRblgaR+piePZm7dPwPUOSeYEH31P0AwZ1ziceR74zd8N80M0TMft+e3Td6KGBHw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-shadow": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.14.0.tgz",
+            "integrity": "sha512-p2igcEr/iGrLiTu0YePNHyby0WYAXM14c5cECZIVnq/UTOOIQ7xIcWZJ1lRbAEPxVVXPN1UibhZAbr3HAb5BjQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugin-threshold": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.14.0.tgz",
+            "integrity": "sha512-N4BlDgm/FoOMV/DQM2rSpzsgqAzkP0DXkWZoqaQrlRxQBo4zizQLzhEL00T/YCCMKnddzgEhnByaocgaaa0fKw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0"
+            }
+        },
+        "@jimp/plugins": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.14.0.tgz",
+            "integrity": "sha512-vDO3XT/YQlFlFLq5TqNjQkISqjBHT8VMhpWhAfJVwuXIpilxz5Glu4IDLK6jp4IjPR6Yg2WO8TmRY/HI8vLrOw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/plugin-blit": "^0.14.0",
+                "@jimp/plugin-blur": "^0.14.0",
+                "@jimp/plugin-circle": "^0.14.0",
+                "@jimp/plugin-color": "^0.14.0",
+                "@jimp/plugin-contain": "^0.14.0",
+                "@jimp/plugin-cover": "^0.14.0",
+                "@jimp/plugin-crop": "^0.14.0",
+                "@jimp/plugin-displace": "^0.14.0",
+                "@jimp/plugin-dither": "^0.14.0",
+                "@jimp/plugin-fisheye": "^0.14.0",
+                "@jimp/plugin-flip": "^0.14.0",
+                "@jimp/plugin-gaussian": "^0.14.0",
+                "@jimp/plugin-invert": "^0.14.0",
+                "@jimp/plugin-mask": "^0.14.0",
+                "@jimp/plugin-normalize": "^0.14.0",
+                "@jimp/plugin-print": "^0.14.0",
+                "@jimp/plugin-resize": "^0.14.0",
+                "@jimp/plugin-rotate": "^0.14.0",
+                "@jimp/plugin-scale": "^0.14.0",
+                "@jimp/plugin-shadow": "^0.14.0",
+                "@jimp/plugin-threshold": "^0.14.0",
+                "timm": "^1.6.1"
+            }
+        },
+        "@jimp/png": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.14.0.tgz",
+            "integrity": "sha512-0RV/mEIDOrPCcNfXSPmPBqqSZYwGADNRVUTyMt47RuZh7sugbYdv/uvKmQSiqRdR0L1sfbCBMWUEa5G/8MSbdA==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/utils": "^0.14.0",
+                "pngjs": "^3.3.3"
+            }
+        },
+        "@jimp/tiff": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.14.0.tgz",
+            "integrity": "sha512-zBYDTlutc7j88G/7FBCn3kmQwWr0rmm1e0FKB4C3uJ5oYfT8645lftUsvosKVUEfkdmOaMAnhrf4ekaHcb5gQw==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "utif": "^2.0.1"
+            }
+        },
+        "@jimp/types": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.14.0.tgz",
+            "integrity": "sha512-hx3cXAW1KZm+b+XCrY3LXtdWy2U+hNtq0rPyJ7NuXCjU7lZR3vIkpz1DLJ3yDdS70hTi5QDXY3Cd9kd6DtloHQ==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/bmp": "^0.14.0",
+                "@jimp/gif": "^0.14.0",
+                "@jimp/jpeg": "^0.14.0",
+                "@jimp/png": "^0.14.0",
+                "@jimp/tiff": "^0.14.0",
+                "timm": "^1.6.1"
+            }
+        },
+        "@jimp/utils": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.14.0.tgz",
+            "integrity": "sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "regenerator-runtime": "^0.13.3"
+            }
+        },
+        "@jupyterlab/apputils": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/apputils/-/apputils-0.19.1.tgz",
+            "integrity": "sha512-//vajDyVyKwXU7qycRBJC37dljjWeya+YpJV3z5sSXgVBefEBZ0kcrJ92ugDSht4I4SRv6x+kw6K9mBXKaYu9Q==",
+            "requires": {
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/services": "^3.2.1",
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/commands": "^1.6.1",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/domutils": "^1.1.2",
+                "@phosphor/messaging": "^1.2.2",
+                "@phosphor/properties": "^1.1.2",
+                "@phosphor/signaling": "^1.2.2",
+                "@phosphor/virtualdom": "^1.1.2",
+                "@phosphor/widgets": "^1.6.0",
+                "@types/react": "~16.4.13",
+                "react": "~16.4.2",
+                "react-dom": "~16.4.2",
+                "sanitize-html": "~1.18.2"
+            },
+            "dependencies": {
+                "react": {
+                    "version": "16.4.2",
+                    "resolved": "https://registry.npmjs.org/react/-/react-16.4.2.tgz",
+                    "integrity": "sha512-dMv7YrbxO4y2aqnvA7f/ik9ibeLSHQJTI6TrYAenPSaQ6OXfb+Oti+oJiy8WBxgRzlKatYqtCjphTgDSCEiWFg==",
+                    "requires": {
+                        "fbjs": "^0.8.16",
+                        "loose-envify": "^1.1.0",
+                        "object-assign": "^4.1.1",
+                        "prop-types": "^15.6.0"
+                    }
+                },
+                "react-dom": {
+                    "version": "16.4.2",
+                    "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.2.tgz",
+                    "integrity": "sha512-Usl73nQqzvmJN+89r97zmeUpQDKDlh58eX6Hbs/ERdDHzeBzWy+ENk7fsGQ+5KxArV1iOFPT46/VneklK9zoWw==",
+                    "requires": {
+                        "fbjs": "^0.8.16",
+                        "loose-envify": "^1.1.0",
+                        "object-assign": "^4.1.1",
+                        "prop-types": "^15.6.0"
+                    }
+                }
+            }
+        },
+        "@jupyterlab/codeeditor": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/codeeditor/-/codeeditor-0.19.1.tgz",
+            "integrity": "sha512-mCL4YiCCX5JOAIs21mleSmlkejAw6FVLwmvKGxBCwoNj+cSYUKzGBYuA2xvxAZi/5HaiQU8R+ITbAwk2QoMc6w==",
+            "requires": {
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/observables": "^2.1.1",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/messaging": "^1.2.2",
+                "@phosphor/signaling": "^1.2.2",
+                "@phosphor/widgets": "^1.6.0",
+                "react": "~16.4.2",
+                "react-dom": "~16.4.2"
+            },
+            "dependencies": {
+                "react": {
+                    "version": "16.4.2",
+                    "resolved": "https://registry.npmjs.org/react/-/react-16.4.2.tgz",
+                    "integrity": "sha512-dMv7YrbxO4y2aqnvA7f/ik9ibeLSHQJTI6TrYAenPSaQ6OXfb+Oti+oJiy8WBxgRzlKatYqtCjphTgDSCEiWFg==",
+                    "requires": {
+                        "fbjs": "^0.8.16",
+                        "loose-envify": "^1.1.0",
+                        "object-assign": "^4.1.1",
+                        "prop-types": "^15.6.0"
+                    }
+                },
+                "react-dom": {
+                    "version": "16.4.2",
+                    "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.2.tgz",
+                    "integrity": "sha512-Usl73nQqzvmJN+89r97zmeUpQDKDlh58eX6Hbs/ERdDHzeBzWy+ENk7fsGQ+5KxArV1iOFPT46/VneklK9zoWw==",
+                    "requires": {
+                        "fbjs": "^0.8.16",
+                        "loose-envify": "^1.1.0",
+                        "object-assign": "^4.1.1",
+                        "prop-types": "^15.6.0"
+                    }
+                }
+            }
+        },
+        "@jupyterlab/codemirror": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/codemirror/-/codemirror-0.19.1.tgz",
+            "integrity": "sha512-JbZRm9vW1lN4Y4VghBQEys7vWoaZM54E0OdTlWjJq1kF8WhKWzp8Do/tnQ5fKVUGw40BMB0xBnfAaHHCSs5vHw==",
+            "requires": {
+                "@jupyterlab/apputils": "^0.19.1",
+                "@jupyterlab/codeeditor": "^0.19.1",
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/observables": "^2.1.1",
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/signaling": "^1.2.2",
+                "codemirror": "~5.39.0"
+            },
+            "dependencies": {
+                "codemirror": {
+                    "version": "5.39.2",
+                    "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.39.2.tgz",
+                    "integrity": "sha512-mchBy0kQ1Wggi+e58SmoLgKO4nG7s/BqNg6/6TRbhsnXI/KRG+fKAvRQ1LLhZZ6ZtUoDQ0dl5aMhE+IkSRh60Q=="
+                }
+            }
+        },
+        "@jupyterlab/coreutils": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-2.2.1.tgz",
+            "integrity": "sha512-XkGMBXqEAnENC4fK/L3uEqqxyNUtf4TI/1XNDln7d5VOPHQJSBTbYlBAZ0AQotn2qbs4WqmV6icxje2ITVedqQ==",
+            "requires": {
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/signaling": "^1.2.2",
+                "ajv": "~5.1.6",
+                "comment-json": "^1.1.3",
+                "minimist": "~1.2.0",
+                "moment": "~2.21.0",
+                "path-posix": "~1.0.0",
+                "url-parse": "~1.4.3"
+            }
+        },
+        "@jupyterlab/observables": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-2.4.0.tgz",
+            "integrity": "sha512-M/fhAnPqd6F4Zwt4IIsvHCkJmwbSw1Tko/hUXgdUQG86lPsJiTOh98sB3qwV1gtzb9oFF+kH21XsHnQZ6Yl6Pw==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0",
+                "@phosphor/coreutils": "^1.3.1",
+                "@phosphor/disposable": "^1.3.0",
+                "@phosphor/messaging": "^1.3.0",
+                "@phosphor/signaling": "^1.3.0"
+            }
+        },
+        "@jupyterlab/outputarea": {
+            "version": "0.19.2",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/outputarea/-/outputarea-0.19.2.tgz",
+            "integrity": "sha512-uYL/RfwY//83UWsmENg4b4s6wXr9OWE4zbKtMY4zoJoT5tsnWyIiSnvy26m/Pslo1Y1wlLjVPqCoJFcEARKb+A==",
+            "requires": {
+                "@jupyterlab/apputils": "^0.19.1",
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/observables": "^2.1.1",
+                "@jupyterlab/rendermime": "^0.19.1",
+                "@jupyterlab/rendermime-interfaces": "^1.2.1",
+                "@jupyterlab/services": "^3.2.1",
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/messaging": "^1.2.2",
+                "@phosphor/signaling": "^1.2.2",
+                "@phosphor/widgets": "^1.6.0"
+            }
+        },
+        "@jupyterlab/rendermime": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/rendermime/-/rendermime-0.19.1.tgz",
+            "integrity": "sha512-MD+/lMwFa/b9QtJyFghTXFqkuRha74+vWTaPcfzREdHRiKYHYPHWOD/gb8cLIr4c7J3VaEVZWEpI8udYgyANvA==",
+            "requires": {
+                "@jupyterlab/apputils": "^0.19.1",
+                "@jupyterlab/codemirror": "^0.19.1",
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/observables": "^2.1.1",
+                "@jupyterlab/rendermime-interfaces": "^1.2.1",
+                "@jupyterlab/services": "^3.2.1",
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/messaging": "^1.2.2",
+                "@phosphor/signaling": "^1.2.2",
+                "@phosphor/widgets": "^1.6.0",
+                "ansi_up": "^3.0.0",
+                "marked": "~0.4.0"
+            }
+        },
+        "@jupyterlab/rendermime-interfaces": {
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-1.5.0.tgz",
+            "integrity": "sha512-k6DjX/srKl1FA1CZyrAzz1qA2v1arXUIAmbEddZ5L3O+dnvDlOKjkI/NexaRQvmQ62aziSln+wKrr2P1JPNmGg==",
+            "requires": {
+                "@phosphor/coreutils": "^1.3.1",
+                "@phosphor/widgets": "^1.9.0"
+            }
+        },
+        "@jupyterlab/services": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-3.2.1.tgz",
+            "integrity": "sha512-zCMruGGYxTe427ESK4YUO1V/liFOFYpebYPRsJ+j9CFdV+Hm760+nx4pFX6N6Z9TbS+5cs8BgZ+ebm8unRZrJg==",
+            "requires": {
+                "@jupyterlab/coreutils": "^2.2.1",
+                "@jupyterlab/observables": "^2.1.1",
+                "@phosphor/algorithm": "^1.1.2",
+                "@phosphor/coreutils": "^1.3.0",
+                "@phosphor/disposable": "^1.1.2",
+                "@phosphor/signaling": "^1.2.2"
+            }
+        },
+        "@mapbox/hast-util-table-cell-style": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz",
+            "integrity": "sha512-QsEsh5YaDvHoMQ2YHdvZy2iDnU3GgKVBTcHf6cILyoWDZtPSdlG444pL/ioPYO/GpXSfODBb9sefEetfC4v9oA==",
+            "requires": {
+                "unist-util-visit": "^1.3.0"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "@mdx-js/util": {
+            "version": "2.0.0-next.8",
+            "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz",
+            "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ=="
+        },
+        "@microsoft/microsoft-graph-client": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-2.2.1.tgz",
+            "integrity": "sha512-fbDN3UJ+jtSP9llAejqmslMcv498YuIrS3OS/Luivb8OSjdUESZKdP0gcUunnuNIayePVT0/bGYSJTzAIptJQQ==",
+            "requires": {
+                "@babel/runtime": "^7.4.4",
+                "msal": "^1.4.4",
+                "tslib": "^1.9.3"
+            }
+        },
+        "@mikaelkristiansson/domready": {
+            "version": "1.0.11",
+            "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz",
+            "integrity": "sha512-nEBLOa0JgtqahmPrnJZ18epLiFBzxhdKgo4uhN3TaBFRmM30pEVrS9FAEV4tg92d8PTdU+dYQx2lnpPyFMgMcg=="
+        },
+        "@nodelib/fs.scandir": {
+            "version": "2.1.3",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
+            "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+            "requires": {
+                "@nodelib/fs.stat": "2.0.3",
+                "run-parallel": "^1.1.9"
+            }
+        },
+        "@nodelib/fs.stat": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+            "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
+        },
+        "@nodelib/fs.walk": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
+            "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+            "requires": {
+                "@nodelib/fs.scandir": "2.1.3",
+                "fastq": "^1.6.0"
+            }
+        },
+        "@phosphor/algorithm": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@phosphor/algorithm/-/algorithm-1.2.0.tgz",
+            "integrity": "sha512-C9+dnjXyU2QAkWCW6QVDGExk4hhwxzAKf5/FIuYlHAI9X5vFv99PYm0EREDxX1PbMuvfFBZhPNu0PvuSDQ7sFA=="
+        },
+        "@phosphor/collections": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@phosphor/collections/-/collections-1.2.0.tgz",
+            "integrity": "sha512-T9/0EjSuY6+ga2LIFRZ0xupciOR3Qnyy8Q95lhGTC0FXZUFwC8fl9e8On6IcwasCszS+1n8dtZUWSIynfgdpzw==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0"
+            }
+        },
+        "@phosphor/commands": {
+            "version": "1.7.2",
+            "resolved": "https://registry.npmjs.org/@phosphor/commands/-/commands-1.7.2.tgz",
+            "integrity": "sha512-iSyBIWMHsus323BVEARBhuVZNnVel8USo+FIPaAxGcq+icTSSe6+NtSxVQSmZblGN6Qm4iw6I6VtiSx0e6YDgQ==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0",
+                "@phosphor/coreutils": "^1.3.1",
+                "@phosphor/disposable": "^1.3.1",
+                "@phosphor/domutils": "^1.1.4",
+                "@phosphor/keyboard": "^1.1.3",
+                "@phosphor/signaling": "^1.3.1"
+            }
+        },
+        "@phosphor/coreutils": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/@phosphor/coreutils/-/coreutils-1.3.1.tgz",
+            "integrity": "sha512-9OHCn8LYRcPU/sbHm5v7viCA16Uev3gbdkwqoQqlV+EiauDHl70jmeL7XVDXdigl66Dz0LI11C99XOxp+s3zOA=="
+        },
+        "@phosphor/disposable": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/@phosphor/disposable/-/disposable-1.3.1.tgz",
+            "integrity": "sha512-0NGzoTXTOizWizK/brKKd5EjJhuuEH4903tLika7q6wl/u0tgneJlTh7R+MBVeih0iNxtuJAfBa3IEY6Qmj+Sw==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0",
+                "@phosphor/signaling": "^1.3.1"
+            }
+        },
+        "@phosphor/domutils": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/@phosphor/domutils/-/domutils-1.1.4.tgz",
+            "integrity": "sha512-ivwq5TWjQpKcHKXO8PrMl+/cKqbgxPClPiCKc1gwbMd+6hnW5VLwNG0WBzJTxCzXK43HxX18oH+tOZ3E04wc3w=="
+        },
+        "@phosphor/dragdrop": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/@phosphor/dragdrop/-/dragdrop-1.4.1.tgz",
+            "integrity": "sha512-77paMoubIWk7pdwA2GVFkqba1WP48hTZZvS17N30+KVOeWfSqBL3flPSnW2yC4y6FnOP2PFOCtuPIbQv+pYhCA==",
+            "requires": {
+                "@phosphor/coreutils": "^1.3.1",
+                "@phosphor/disposable": "^1.3.1"
+            }
+        },
+        "@phosphor/keyboard": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/@phosphor/keyboard/-/keyboard-1.1.3.tgz",
+            "integrity": "sha512-dzxC/PyHiD6mXaESRy6PZTd9JeK+diwG1pyngkyUf127IXOEzubTIbu52VSdpGBklszu33ws05BAGDa4oBE4mQ=="
+        },
+        "@phosphor/messaging": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/@phosphor/messaging/-/messaging-1.3.0.tgz",
+            "integrity": "sha512-k0JE+BTMKlkM335S2AmmJxoYYNRwOdW5jKBqLgjJdGRvUQkM0+2i60ahM45+J23atGJDv9esKUUBINiKHFhLew==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0",
+                "@phosphor/collections": "^1.2.0"
+            }
+        },
+        "@phosphor/properties": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/@phosphor/properties/-/properties-1.1.3.tgz",
+            "integrity": "sha512-GiglqzU77s6+tFVt6zPq9uuyu/PLQPFcqZt914ZhJ4cN/7yNI/SLyMzpYZ56IRMXvzK9TUgbRna6URE3XAwFUg=="
+        },
+        "@phosphor/signaling": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/@phosphor/signaling/-/signaling-1.3.1.tgz",
+            "integrity": "sha512-Eq3wVCPQAhUd9+gUGaYygMr+ov7dhSGblSBXiDzpZlSIfa8OVD4P3cCvYXr/acDTNmZ/gHTcSFO8/n3rDkeXzg==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0"
+            }
+        },
+        "@phosphor/virtualdom": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@phosphor/virtualdom/-/virtualdom-1.2.0.tgz",
+            "integrity": "sha512-L9mKNhK2XtVjzjuHLG2uYuepSz8uPyu6vhF4EgCP0rt0TiLYaZeHwuNu3XeFbul9DMOn49eBpye/tfQVd4Ks+w==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0"
+            }
+        },
+        "@phosphor/widgets": {
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/@phosphor/widgets/-/widgets-1.9.3.tgz",
+            "integrity": "sha512-61jsxloDrW/+WWQs8wOgsS5waQ/MSsXBuhONt0o6mtdeL93HVz7CYO5krOoot5owammfF6oX1z0sDaUYIYgcPA==",
+            "requires": {
+                "@phosphor/algorithm": "^1.2.0",
+                "@phosphor/commands": "^1.7.2",
+                "@phosphor/coreutils": "^1.3.1",
+                "@phosphor/disposable": "^1.3.1",
+                "@phosphor/domutils": "^1.1.4",
+                "@phosphor/dragdrop": "^1.4.1",
+                "@phosphor/keyboard": "^1.1.3",
+                "@phosphor/messaging": "^1.3.0",
+                "@phosphor/properties": "^1.1.3",
+                "@phosphor/signaling": "^1.3.1",
+                "@phosphor/virtualdom": "^1.2.0"
+            }
+        },
+        "@pieh/friendly-errors-webpack-plugin": {
+            "version": "1.7.0-chalk-2",
+            "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz",
+            "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==",
+            "requires": {
+                "chalk": "^2.4.2",
+                "error-stack-parser": "^2.0.0",
+                "string-width": "^2.0.0",
+                "strip-ansi": "^3"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "@pmmmwh/react-refresh-webpack-plugin": {
+            "version": "0.4.3",
+            "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz",
+            "integrity": "sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==",
+            "requires": {
+                "ansi-html": "^0.0.7",
+                "error-stack-parser": "^2.0.6",
+                "html-entities": "^1.2.1",
+                "native-url": "^0.2.6",
+                "schema-utils": "^2.6.5",
+                "source-map": "^0.7.3"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.7.3",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+                    "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+                }
+            }
+        },
+        "@reach/router": {
+            "version": "1.3.4",
+            "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz",
+            "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==",
+            "requires": {
+                "create-react-context": "0.3.0",
+                "invariant": "^2.2.3",
+                "prop-types": "^15.6.1",
+                "react-lifecycles-compat": "^3.0.4"
+            }
+        },
+        "@sideway/address": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.0.tgz",
+            "integrity": "sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==",
+            "requires": {
+                "@hapi/hoek": "^9.0.0"
+            },
+            "dependencies": {
+                "@hapi/hoek": {
+                    "version": "9.1.0",
+                    "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz",
+                    "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw=="
+                }
+            }
+        },
+        "@sideway/formula": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
+            "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+        },
+        "@sideway/pinpoint": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+            "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+        },
+        "@sindresorhus/is": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+            "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
+        },
+        "@sindresorhus/slugify": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz",
+            "integrity": "sha512-ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==",
+            "requires": {
+                "@sindresorhus/transliterate": "^0.1.1",
+                "escape-string-regexp": "^4.0.0"
+            },
+            "dependencies": {
+                "escape-string-regexp": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+                    "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+                }
+            }
+        },
+        "@sindresorhus/transliterate": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz",
+            "integrity": "sha512-QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==",
+            "requires": {
+                "escape-string-regexp": "^2.0.0",
+                "lodash.deburr": "^4.1.0"
+            },
+            "dependencies": {
+                "escape-string-regexp": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+                    "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+                }
+            }
+        },
+        "@szmarczak/http-timer": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+            "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+            "requires": {
+                "defer-to-connect": "^1.0.1"
+            }
+        },
+        "@tokenizer/token": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz",
+            "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w=="
+        },
+        "@turist/fetch": {
+            "version": "7.1.7",
+            "resolved": "https://registry.npmjs.org/@turist/fetch/-/fetch-7.1.7.tgz",
+            "integrity": "sha512-XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA==",
+            "requires": {
+                "@types/node-fetch": "2"
+            }
+        },
+        "@turist/time": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/@turist/time/-/time-0.0.1.tgz",
+            "integrity": "sha512-M2BiThcbxMxSKX8W4z5u9jKZn6datnM3+FpEU+eYw0//l31E2xhqi7vTAuJ/Sf0P3yhp66SDJgPu3bRRpvrdQQ=="
+        },
+        "@types/cacheable-request": {
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz",
+            "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==",
+            "requires": {
+                "@types/http-cache-semantics": "*",
+                "@types/keyv": "*",
+                "@types/node": "*",
+                "@types/responselike": "*"
+            }
+        },
+        "@types/common-tags": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.0.tgz",
+            "integrity": "sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg=="
+        },
+        "@types/configstore": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz",
+            "integrity": "sha1-zR6FU2M60xhcPy8jns/10mQ+krY="
+        },
+        "@types/debug": {
+            "version": "0.0.30",
+            "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz",
+            "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ=="
+        },
+        "@types/eslint-visitor-keys": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+            "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag=="
+        },
+        "@types/events": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
+            "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
+        },
+        "@types/get-port": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz",
+            "integrity": "sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q=="
+        },
+        "@types/glob": {
+            "version": "7.1.3",
+            "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+            "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
+            "requires": {
+                "@types/minimatch": "*",
+                "@types/node": "*"
+            }
+        },
+        "@types/http-cache-semantics": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz",
+            "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="
+        },
+        "@types/http-proxy": {
+            "version": "1.17.5",
+            "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz",
+            "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/istanbul-lib-coverage": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+            "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="
+        },
+        "@types/istanbul-lib-report": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+            "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+            "requires": {
+                "@types/istanbul-lib-coverage": "*"
+            }
+        },
+        "@types/istanbul-reports": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+            "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+            "requires": {
+                "@types/istanbul-lib-coverage": "*",
+                "@types/istanbul-lib-report": "*"
+            }
+        },
+        "@types/json-schema": {
+            "version": "7.0.7",
+            "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+            "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA=="
+        },
+        "@types/json5": {
+            "version": "0.0.29",
+            "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+            "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
+        },
+        "@types/keyv": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz",
+            "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/lodash": {
+            "version": "4.14.168",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz",
+            "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q=="
+        },
+        "@types/mdast": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz",
+            "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==",
+            "requires": {
+                "@types/unist": "*"
+            }
+        },
+        "@types/minimatch": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+            "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
+        },
+        "@types/mkdirp": {
+            "version": "0.5.2",
+            "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz",
+            "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/node": {
+            "version": "14.14.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.13.tgz",
+            "integrity": "sha512-vbxr0VZ8exFMMAjCW8rJwaya0dMCDyYW2ZRdTyjtrCvJoENMpdUHOT/eTzvgyA5ZnqRZ/sI0NwqAxNHKYokLJQ=="
+        },
+        "@types/node-fetch": {
+            "version": "2.5.7",
+            "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
+            "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
+            "requires": {
+                "@types/node": "*",
+                "form-data": "^3.0.0"
+            },
+            "dependencies": {
+                "form-data": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+                    "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+                    "requires": {
+                        "asynckit": "^0.4.0",
+                        "combined-stream": "^1.0.8",
+                        "mime-types": "^2.1.12"
+                    }
+                }
+            }
+        },
+        "@types/parse-json": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+            "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+        },
+        "@types/prop-types": {
+            "version": "15.7.3",
+            "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
+            "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
+        },
+        "@types/q": {
+            "version": "1.5.4",
+            "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
+            "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug=="
+        },
+        "@types/reach__router": {
+            "version": "1.3.7",
+            "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.7.tgz",
+            "integrity": "sha512-cyBEb8Ef3SJNH5NYEIDGPoMMmYUxROatuxbICusVRQIqZUB85UCt6R2Ok60tKS/TABJsJYaHyNTW3kqbpxlMjg==",
+            "requires": {
+                "@types/react": "*"
+            }
+        },
+        "@types/react": {
+            "version": "16.4.18",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.18.tgz",
+            "integrity": "sha512-eFzJKEg6pdeaukVLVZ8Xb79CTl/ysX+ExmOfAAqcFlCCK5TgFDD9kWR0S18sglQ3EmM8U+80enjUqbfnUyqpdA==",
+            "requires": {
+                "@types/prop-types": "*",
+                "csstype": "^2.2.0"
+            }
+        },
+        "@types/readable-stream": {
+            "version": "2.3.9",
+            "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz",
+            "integrity": "sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==",
+            "requires": {
+                "@types/node": "*",
+                "safe-buffer": "*"
+            }
+        },
+        "@types/responselike": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
+            "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/rimraf": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.4.tgz",
+            "integrity": "sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q==",
+            "requires": {
+                "@types/glob": "*",
+                "@types/node": "*"
+            }
+        },
+        "@types/tmp": {
+            "version": "0.0.33",
+            "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz",
+            "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0="
+        },
+        "@types/unist": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
+            "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ=="
+        },
+        "@types/vfile": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz",
+            "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==",
+            "requires": {
+                "@types/node": "*",
+                "@types/unist": "*",
+                "@types/vfile-message": "*"
+            }
+        },
+        "@types/vfile-message": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz",
+            "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==",
+            "requires": {
+                "vfile-message": "*"
+            }
+        },
+        "@types/websocket": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz",
+            "integrity": "sha512-f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/yargs": {
+            "version": "15.0.13",
+            "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz",
+            "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==",
+            "requires": {
+                "@types/yargs-parser": "*"
+            }
+        },
+        "@types/yargs-parser": {
+            "version": "20.2.0",
+            "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
+            "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
+        },
+        "@types/yoga-layout": {
+            "version": "1.9.2",
+            "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz",
+            "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw=="
+        },
+        "@typescript-eslint/eslint-plugin": {
+            "version": "2.34.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz",
+            "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==",
+            "requires": {
+                "@typescript-eslint/experimental-utils": "2.34.0",
+                "functional-red-black-tree": "^1.0.1",
+                "regexpp": "^3.0.0",
+                "tsutils": "^3.17.1"
+            }
+        },
+        "@typescript-eslint/experimental-utils": {
+            "version": "2.34.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
+            "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+            "requires": {
+                "@types/json-schema": "^7.0.3",
+                "@typescript-eslint/typescript-estree": "2.34.0",
+                "eslint-scope": "^5.0.0",
+                "eslint-utils": "^2.0.0"
+            }
+        },
+        "@typescript-eslint/parser": {
+            "version": "2.34.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz",
+            "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==",
+            "requires": {
+                "@types/eslint-visitor-keys": "^1.0.0",
+                "@typescript-eslint/experimental-utils": "2.34.0",
+                "@typescript-eslint/typescript-estree": "2.34.0",
+                "eslint-visitor-keys": "^1.1.0"
+            }
+        },
+        "@typescript-eslint/typescript-estree": {
+            "version": "2.34.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
+            "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+            "requires": {
+                "debug": "^4.1.1",
+                "eslint-visitor-keys": "^1.1.0",
+                "glob": "^7.1.6",
+                "is-glob": "^4.0.1",
+                "lodash": "^4.17.15",
+                "semver": "^7.3.2",
+                "tsutils": "^3.17.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                }
+            }
+        },
+        "@webassemblyjs/ast": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+            "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+            "requires": {
+                "@webassemblyjs/helper-module-context": "1.9.0",
+                "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                "@webassemblyjs/wast-parser": "1.9.0"
+            }
+        },
+        "@webassemblyjs/floating-point-hex-parser": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+            "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="
+        },
+        "@webassemblyjs/helper-api-error": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+            "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="
+        },
+        "@webassemblyjs/helper-buffer": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+            "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="
+        },
+        "@webassemblyjs/helper-code-frame": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+            "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+            "requires": {
+                "@webassemblyjs/wast-printer": "1.9.0"
+            }
+        },
+        "@webassemblyjs/helper-fsm": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+            "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="
+        },
+        "@webassemblyjs/helper-module-context": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+            "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0"
+            }
+        },
+        "@webassemblyjs/helper-wasm-bytecode": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+            "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="
+        },
+        "@webassemblyjs/helper-wasm-section": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+            "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-buffer": "1.9.0",
+                "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                "@webassemblyjs/wasm-gen": "1.9.0"
+            }
+        },
+        "@webassemblyjs/ieee754": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+            "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+            "requires": {
+                "@xtuc/ieee754": "^1.2.0"
+            }
+        },
+        "@webassemblyjs/leb128": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+            "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+            "requires": {
+                "@xtuc/long": "4.2.2"
+            }
+        },
+        "@webassemblyjs/utf8": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+            "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="
+        },
+        "@webassemblyjs/wasm-edit": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+            "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-buffer": "1.9.0",
+                "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                "@webassemblyjs/helper-wasm-section": "1.9.0",
+                "@webassemblyjs/wasm-gen": "1.9.0",
+                "@webassemblyjs/wasm-opt": "1.9.0",
+                "@webassemblyjs/wasm-parser": "1.9.0",
+                "@webassemblyjs/wast-printer": "1.9.0"
+            }
+        },
+        "@webassemblyjs/wasm-gen": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+            "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                "@webassemblyjs/ieee754": "1.9.0",
+                "@webassemblyjs/leb128": "1.9.0",
+                "@webassemblyjs/utf8": "1.9.0"
+            }
+        },
+        "@webassemblyjs/wasm-opt": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+            "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-buffer": "1.9.0",
+                "@webassemblyjs/wasm-gen": "1.9.0",
+                "@webassemblyjs/wasm-parser": "1.9.0"
+            }
+        },
+        "@webassemblyjs/wasm-parser": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+            "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-api-error": "1.9.0",
+                "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                "@webassemblyjs/ieee754": "1.9.0",
+                "@webassemblyjs/leb128": "1.9.0",
+                "@webassemblyjs/utf8": "1.9.0"
+            }
+        },
+        "@webassemblyjs/wast-parser": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+            "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+                "@webassemblyjs/helper-api-error": "1.9.0",
+                "@webassemblyjs/helper-code-frame": "1.9.0",
+                "@webassemblyjs/helper-fsm": "1.9.0",
+                "@xtuc/long": "4.2.2"
+            }
+        },
+        "@webassemblyjs/wast-printer": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+            "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/wast-parser": "1.9.0",
+                "@xtuc/long": "4.2.2"
+            }
+        },
+        "@xtuc/ieee754": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+            "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
+        },
+        "@xtuc/long": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+            "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
+        },
+        "abbrev": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+            "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+        },
+        "accepts": {
+            "version": "1.3.7",
+            "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+            "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+            "requires": {
+                "mime-types": "~2.1.24",
+                "negotiator": "0.6.2"
+            }
+        },
+        "acorn": {
+            "version": "7.4.1",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+            "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+        },
+        "acorn-jsx": {
+            "version": "5.3.1",
+            "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+            "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng=="
+        },
+        "address": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
+            "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA=="
+        },
+        "after": {
+            "version": "0.8.2",
+            "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+            "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
+        },
+        "aggregate-error": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+            "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+            "requires": {
+                "clean-stack": "^2.0.0",
+                "indent-string": "^4.0.0"
+            }
+        },
+        "ajv": {
+            "version": "5.1.6",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.1.6.tgz",
+            "integrity": "sha1-Sy8aGd7Ok9V6whYDfj6XkcfdFWQ=",
+            "requires": {
+                "co": "^4.6.0",
+                "json-schema-traverse": "^0.3.0",
+                "json-stable-stringify": "^1.0.1"
+            }
+        },
+        "ajv-errors": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+            "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
+        },
+        "ajv-keywords": {
+            "version": "3.5.2",
+            "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+            "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
+        },
+        "alphanum-sort": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+            "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
+        },
+        "amdefine": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+            "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+        },
+        "anser": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/anser/-/anser-2.0.1.tgz",
+            "integrity": "sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ=="
+        },
+        "ansi-align": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+            "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+            "requires": {
+                "string-width": "^3.0.0"
+            },
+            "dependencies": {
+                "emoji-regex": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+                    "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+                },
+                "string-width": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+                    "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+                    "requires": {
+                        "emoji-regex": "^7.0.1",
+                        "is-fullwidth-code-point": "^2.0.0",
+                        "strip-ansi": "^5.1.0"
+                    }
+                }
+            }
+        },
+        "ansi-colors": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+            "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA=="
+        },
+        "ansi-escapes": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+            "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
+        },
+        "ansi-html": {
+            "version": "0.0.7",
+            "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+            "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4="
+        },
+        "ansi-regex": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+        },
+        "ansi-styles": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+            "requires": {
+                "color-convert": "^1.9.0"
+            }
+        },
+        "ansi_up": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ansi_up/-/ansi_up-3.0.0.tgz",
+            "integrity": "sha1-J/Rdj0V9nO/1nk6gPI5vE8GjA+g="
+        },
+        "any-base": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
+            "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
+        },
+        "anymatch": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+            "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+            "requires": {
+                "normalize-path": "^3.0.0",
+                "picomatch": "^2.0.4"
+            }
+        },
+        "application-config-path": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz",
+            "integrity": "sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8="
+        },
+        "aproba": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+            "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+        },
+        "arch": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+            "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ=="
+        },
+        "archive-type": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz",
+            "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=",
+            "requires": {
+                "file-type": "^4.2.0"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "4.4.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
+                    "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU="
+                }
+            }
+        },
+        "are-we-there-yet": {
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+            "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+            "requires": {
+                "delegates": "^1.0.0",
+                "readable-stream": "^2.0.6"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "arg": {
+            "version": "4.1.3",
+            "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+            "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+        },
+        "argparse": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+            "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+            "requires": {
+                "sprintf-js": "~1.0.2"
+            }
+        },
+        "aria-query": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+            "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+            "requires": {
+                "@babel/runtime": "^7.10.2",
+                "@babel/runtime-corejs3": "^7.10.2"
+            }
+        },
+        "arr-diff": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+            "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+        },
+        "arr-flatten": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+            "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+        },
+        "arr-union": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+            "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+        },
+        "array-filter": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+            "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw="
+        },
+        "array-find-index": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+            "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+        },
+        "array-flatten": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+            "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+        },
+        "array-includes": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz",
+            "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "get-intrinsic": "^1.0.1",
+                "is-string": "^1.0.5"
+            }
+        },
+        "array-iterate": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz",
+            "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA=="
+        },
+        "array-map": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+            "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
+        },
+        "array-reduce": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+            "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
+        },
+        "array-union": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+            "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+        },
+        "array-uniq": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+            "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+        },
+        "array-unique": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+            "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+        },
+        "array.prototype.flat": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
+            "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1"
+            }
+        },
+        "array.prototype.flatmap": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
+            "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "function-bind": "^1.1.1"
+            }
+        },
+        "arraybuffer.slice": {
+            "version": "0.0.7",
+            "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+            "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
+        },
+        "asap": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+            "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+        },
+        "asn1": {
+            "version": "0.2.4",
+            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+            "requires": {
+                "safer-buffer": "~2.1.0"
+            }
+        },
+        "asn1.js": {
+            "version": "5.4.1",
+            "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+            "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+            "requires": {
+                "bn.js": "^4.0.0",
+                "inherits": "^2.0.1",
+                "minimalistic-assert": "^1.0.0",
+                "safer-buffer": "^2.1.0"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "assert": {
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+            "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+            "requires": {
+                "object-assign": "^4.1.1",
+                "util": "0.10.3"
+            },
+            "dependencies": {
+                "inherits": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+                },
+                "util": {
+                    "version": "0.10.3",
+                    "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+                    "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+                    "requires": {
+                        "inherits": "2.0.1"
+                    }
+                }
+            }
+        },
+        "assert-plus": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+        },
+        "assign-symbols": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+            "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+        },
+        "ast-types-flow": {
+            "version": "0.0.7",
+            "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+            "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+        },
+        "astral-regex": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+            "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+        },
+        "async": {
+            "version": "1.5.2",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+            "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+        },
+        "async-cache": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz",
+            "integrity": "sha1-SppaidBl7F2OUlS9nulrp2xTK1o=",
+            "requires": {
+                "lru-cache": "^4.0.0"
+            },
+            "dependencies": {
+                "lru-cache": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+                    "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+                    "requires": {
+                        "pseudomap": "^1.0.2",
+                        "yallist": "^2.1.2"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "async-each": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+            "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
+        },
+        "async-foreach": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+            "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
+        },
+        "async-limiter": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+            "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+        },
+        "async-retry-ng": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/async-retry-ng/-/async-retry-ng-2.0.1.tgz",
+            "integrity": "sha512-iitlc2murdQ3/A5Re3CcplQBEf7vOmFrFQ6RFn3+/+zZUyIHYkZnnEziMSa6YIb2Bs2EJEPZWReTxjHqvQbDbw=="
+        },
+        "asynckit": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+            "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+        },
+        "at-least-node": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+            "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
+        },
+        "atob": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+            "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+        },
+        "autoprefixer": {
+            "version": "9.8.6",
+            "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
+            "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==",
+            "requires": {
+                "browserslist": "^4.12.0",
+                "caniuse-lite": "^1.0.30001109",
+                "colorette": "^1.2.1",
+                "normalize-range": "^0.1.2",
+                "num2fraction": "^1.2.2",
+                "postcss": "^7.0.32",
+                "postcss-value-parser": "^4.1.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "aws-sign2": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+        },
+        "aws4": {
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+            "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+        },
+        "axe-core": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.2.tgz",
+            "integrity": "sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg=="
+        },
+        "axios": {
+            "version": "0.21.1",
+            "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+            "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+            "requires": {
+                "follow-redirects": "^1.10.0"
+            }
+        },
+        "axobject-query": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+            "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
+        },
+        "babel-code-frame": {
+            "version": "6.26.0",
+            "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+            "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+            "requires": {
+                "chalk": "^1.1.3",
+                "esutils": "^2.0.2",
+                "js-tokens": "^3.0.2"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "ansi-styles": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+                },
+                "chalk": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+                    "requires": {
+                        "ansi-styles": "^2.2.1",
+                        "escape-string-regexp": "^1.0.2",
+                        "has-ansi": "^2.0.0",
+                        "strip-ansi": "^3.0.0",
+                        "supports-color": "^2.0.0"
+                    }
+                },
+                "js-tokens": {
+                    "version": "3.0.2",
+                    "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+                    "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+                }
+            }
+        },
+        "babel-core": {
+            "version": "7.0.0-bridge.0",
+            "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+            "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg=="
+        },
+        "babel-eslint": {
+            "version": "10.1.0",
+            "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+            "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+            "requires": {
+                "@babel/code-frame": "^7.0.0",
+                "@babel/parser": "^7.7.0",
+                "@babel/traverse": "^7.7.0",
+                "@babel/types": "^7.7.0",
+                "eslint-visitor-keys": "^1.0.0",
+                "resolve": "^1.12.0"
+            }
+        },
+        "babel-extract-comments": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz",
+            "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==",
+            "requires": {
+                "babylon": "^6.18.0"
+            }
+        },
+        "babel-loader": {
+            "version": "8.2.2",
+            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz",
+            "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==",
+            "requires": {
+                "find-cache-dir": "^3.3.1",
+                "loader-utils": "^1.4.0",
+                "make-dir": "^3.1.0",
+                "schema-utils": "^2.6.5"
+            }
+        },
+        "babel-plugin-add-module-exports": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz",
+            "integrity": "sha512-g+8yxHUZ60RcyaUpfNzy56OtWW+x9cyEe9j+CranqLiqbju2yf/Cy6ZtYK40EZxtrdHllzlVZgLmcOUCTlJ7Jg=="
+        },
+        "babel-plugin-dynamic-import-node": {
+            "version": "2.3.3",
+            "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+            "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+            "requires": {
+                "object.assign": "^4.1.0"
+            }
+        },
+        "babel-plugin-lodash": {
+            "version": "3.3.4",
+            "resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz",
+            "integrity": "sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg==",
+            "requires": {
+                "@babel/helper-module-imports": "^7.0.0-beta.49",
+                "@babel/types": "^7.0.0-beta.49",
+                "glob": "^7.1.1",
+                "lodash": "^4.17.10",
+                "require-package-name": "^2.0.1"
+            }
+        },
+        "babel-plugin-macros": {
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+            "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "cosmiconfig": "^6.0.0",
+                "resolve": "^1.12.0"
+            }
+        },
+        "babel-plugin-remove-graphql-queries": {
+            "version": "2.16.0",
+            "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.16.0.tgz",
+            "integrity": "sha512-sUmAjyA1JUHIWOzV7h1+sLAplNWUQlC6A1Cs2Xmpi/tHcHjHSpI4R5y5Um82WjiT7IHV2LfBKqL/qpyGeXky5w=="
+        },
+        "babel-plugin-syntax-object-rest-spread": {
+            "version": "6.13.0",
+            "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+            "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U="
+        },
+        "babel-plugin-transform-object-rest-spread": {
+            "version": "6.26.0",
+            "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+            "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
+            "requires": {
+                "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+                "babel-runtime": "^6.26.0"
+            }
+        },
+        "babel-plugin-transform-react-remove-prop-types": {
+            "version": "0.4.24",
+            "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
+            "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="
+        },
+        "babel-preset-gatsby": {
+            "version": "0.12.1",
+            "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.12.1.tgz",
+            "integrity": "sha512-nCIT2ptMftfEQAyNpyc1eKM1oazJWxUlvJhA3kCzrPNWDTb0IniTlKnFZq2jPRLmDAafH5Mq8lYB/sFzFzdy6Q==",
+            "requires": {
+                "@babel/plugin-proposal-class-properties": "^7.12.1",
+                "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+                "@babel/plugin-proposal-optional-chaining": "^7.12.1",
+                "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+                "@babel/plugin-transform-classes": "^7.12.1",
+                "@babel/plugin-transform-runtime": "^7.12.1",
+                "@babel/plugin-transform-spread": "^7.12.1",
+                "@babel/preset-env": "^7.12.1",
+                "@babel/preset-react": "^7.12.5",
+                "@babel/runtime": "^7.12.5",
+                "babel-plugin-dynamic-import-node": "^2.3.3",
+                "babel-plugin-macros": "^2.8.0",
+                "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
+                "gatsby-core-utils": "^1.10.0",
+                "gatsby-legacy-polyfills": "^0.7.0"
+            },
+            "dependencies": {
+                "gatsby-core-utils": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz",
+                    "integrity": "sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ==",
+                    "requires": {
+                        "ci-info": "2.0.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "node-object-hash": "^2.0.0",
+                        "proper-lockfile": "^4.1.1",
+                        "tmp": "^0.2.1",
+                        "xdg-basedir": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "babel-runtime": {
+            "version": "6.26.0",
+            "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+            "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+            "requires": {
+                "core-js": "^2.4.0",
+                "regenerator-runtime": "^0.11.0"
+            },
+            "dependencies": {
+                "core-js": {
+                    "version": "2.6.12",
+                    "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+                    "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+                },
+                "regenerator-runtime": {
+                    "version": "0.11.1",
+                    "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+                    "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+                }
+            }
+        },
+        "babylon": {
+            "version": "6.18.0",
+            "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+            "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+        },
+        "backo2": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+            "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
+        },
+        "bail": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+            "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ=="
+        },
+        "balanced-match": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+        },
+        "base": {
+            "version": "0.11.2",
+            "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+            "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+            "requires": {
+                "cache-base": "^1.0.1",
+                "class-utils": "^0.3.5",
+                "component-emitter": "^1.2.1",
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.1",
+                "mixin-deep": "^1.2.0",
+                "pascalcase": "^0.1.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "base64-arraybuffer": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
+            "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
+        },
+        "base64-js": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+            "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+        },
+        "base64id": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+            "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
+        },
+        "batch": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+            "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
+        },
+        "bcrypt-pbkdf": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+            "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+            "requires": {
+                "tweetnacl": "^0.14.3"
+            }
+        },
+        "better-assert": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+            "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+            "requires": {
+                "callsite": "1.0.0"
+            }
+        },
+        "better-opn": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz",
+            "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==",
+            "requires": {
+                "open": "^7.0.3"
+            }
+        },
+        "better-queue": {
+            "version": "3.8.10",
+            "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz",
+            "integrity": "sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==",
+            "requires": {
+                "better-queue-memory": "^1.0.1",
+                "node-eta": "^0.9.0",
+                "uuid": "^3.0.0"
+            }
+        },
+        "better-queue-memory": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz",
+            "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA=="
+        },
+        "big.js": {
+            "version": "5.2.2",
+            "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+            "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+        },
+        "bin-build": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz",
+            "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==",
+            "requires": {
+                "decompress": "^4.0.0",
+                "download": "^6.2.2",
+                "execa": "^0.7.0",
+                "p-map-series": "^1.0.0",
+                "tempfile": "^2.0.0"
+            },
+            "dependencies": {
+                "cross-spawn": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+                    "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+                    "requires": {
+                        "lru-cache": "^4.0.1",
+                        "shebang-command": "^1.2.0",
+                        "which": "^1.2.9"
+                    }
+                },
+                "execa": {
+                    "version": "0.7.0",
+                    "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+                    "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+                    "requires": {
+                        "cross-spawn": "^5.0.1",
+                        "get-stream": "^3.0.0",
+                        "is-stream": "^1.1.0",
+                        "npm-run-path": "^2.0.0",
+                        "p-finally": "^1.0.0",
+                        "signal-exit": "^3.0.0",
+                        "strip-eof": "^1.0.0"
+                    }
+                },
+                "get-stream": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+                    "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+                },
+                "lru-cache": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+                    "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+                    "requires": {
+                        "pseudomap": "^1.0.2",
+                        "yallist": "^2.1.2"
+                    }
+                },
+                "npm-run-path": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                    "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                    "requires": {
+                        "path-key": "^2.0.0"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "bin-check": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz",
+            "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==",
+            "requires": {
+                "execa": "^0.7.0",
+                "executable": "^4.1.0"
+            },
+            "dependencies": {
+                "cross-spawn": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+                    "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+                    "requires": {
+                        "lru-cache": "^4.0.1",
+                        "shebang-command": "^1.2.0",
+                        "which": "^1.2.9"
+                    }
+                },
+                "execa": {
+                    "version": "0.7.0",
+                    "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+                    "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+                    "requires": {
+                        "cross-spawn": "^5.0.1",
+                        "get-stream": "^3.0.0",
+                        "is-stream": "^1.1.0",
+                        "npm-run-path": "^2.0.0",
+                        "p-finally": "^1.0.0",
+                        "signal-exit": "^3.0.0",
+                        "strip-eof": "^1.0.0"
+                    }
+                },
+                "get-stream": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+                    "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+                },
+                "lru-cache": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+                    "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+                    "requires": {
+                        "pseudomap": "^1.0.2",
+                        "yallist": "^2.1.2"
+                    }
+                },
+                "npm-run-path": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                    "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                    "requires": {
+                        "path-key": "^2.0.0"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "bin-version": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz",
+            "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==",
+            "requires": {
+                "execa": "^1.0.0",
+                "find-versions": "^3.0.0"
+            },
+            "dependencies": {
+                "execa": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+                    "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+                    "requires": {
+                        "cross-spawn": "^6.0.0",
+                        "get-stream": "^4.0.0",
+                        "is-stream": "^1.1.0",
+                        "npm-run-path": "^2.0.0",
+                        "p-finally": "^1.0.0",
+                        "signal-exit": "^3.0.0",
+                        "strip-eof": "^1.0.0"
+                    }
+                },
+                "get-stream": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                    "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                    "requires": {
+                        "pump": "^3.0.0"
+                    }
+                },
+                "npm-run-path": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                    "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                    "requires": {
+                        "path-key": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "bin-version-check": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz",
+            "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==",
+            "requires": {
+                "bin-version": "^3.0.0",
+                "semver": "^5.6.0",
+                "semver-truncate": "^1.1.2"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "bin-wrapper": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz",
+            "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==",
+            "requires": {
+                "bin-check": "^4.1.0",
+                "bin-version-check": "^4.0.0",
+                "download": "^7.1.0",
+                "import-lazy": "^3.1.0",
+                "os-filter-obj": "^2.0.0",
+                "pify": "^4.0.1"
+            },
+            "dependencies": {
+                "download": {
+                    "version": "7.1.0",
+                    "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz",
+                    "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==",
+                    "requires": {
+                        "archive-type": "^4.0.0",
+                        "caw": "^2.0.1",
+                        "content-disposition": "^0.5.2",
+                        "decompress": "^4.2.0",
+                        "ext-name": "^5.0.0",
+                        "file-type": "^8.1.0",
+                        "filenamify": "^2.0.0",
+                        "get-stream": "^3.0.0",
+                        "got": "^8.3.1",
+                        "make-dir": "^1.2.0",
+                        "p-event": "^2.1.0",
+                        "pify": "^3.0.0"
+                    },
+                    "dependencies": {
+                        "pify": {
+                            "version": "3.0.0",
+                            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                        }
+                    }
+                },
+                "file-type": {
+                    "version": "8.1.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz",
+                    "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ=="
+                },
+                "get-stream": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+                    "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+                },
+                "import-lazy": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
+                    "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ=="
+                },
+                "make-dir": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+                    "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+                    "requires": {
+                        "pify": "^3.0.0"
+                    },
+                    "dependencies": {
+                        "pify": {
+                            "version": "3.0.0",
+                            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                        }
+                    }
+                },
+                "p-event": {
+                    "version": "2.3.1",
+                    "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz",
+                    "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==",
+                    "requires": {
+                        "p-timeout": "^2.0.1"
+                    }
+                },
+                "pify": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+                    "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+                }
+            }
+        },
+        "binary-extensions": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+            "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+        },
+        "bindings": {
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+            "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+            "optional": true,
+            "requires": {
+                "file-uri-to-path": "1.0.0"
+            }
+        },
+        "bl": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
+            "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
+            "requires": {
+                "buffer": "^5.5.0",
+                "inherits": "^2.0.4",
+                "readable-stream": "^3.4.0"
+            }
+        },
+        "blob": {
+            "version": "0.0.5",
+            "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+            "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
+        },
+        "block-stream": {
+            "version": "0.0.9",
+            "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+            "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+            "requires": {
+                "inherits": "~2.0.0"
+            }
+        },
+        "bluebird": {
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+            "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+        },
+        "bmp-js": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
+            "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM="
+        },
+        "bn.js": {
+            "version": "5.1.3",
+            "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
+            "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ=="
+        },
+        "body-parser": {
+            "version": "1.19.0",
+            "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+            "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+            "requires": {
+                "bytes": "3.1.0",
+                "content-type": "~1.0.4",
+                "debug": "2.6.9",
+                "depd": "~1.1.2",
+                "http-errors": "1.7.2",
+                "iconv-lite": "0.4.24",
+                "on-finished": "~2.3.0",
+                "qs": "6.7.0",
+                "raw-body": "2.4.0",
+                "type-is": "~1.6.17"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+                    "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "bonjour": {
+            "version": "3.5.0",
+            "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+            "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+            "requires": {
+                "array-flatten": "^2.1.0",
+                "deep-equal": "^1.0.1",
+                "dns-equal": "^1.0.0",
+                "dns-txt": "^2.0.2",
+                "multicast-dns": "^6.0.1",
+                "multicast-dns-service-types": "^1.1.0"
+            },
+            "dependencies": {
+                "array-flatten": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+                    "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
+                }
+            }
+        },
+        "boolbase": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+            "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+        },
+        "boxen": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
+            "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
+            "requires": {
+                "ansi-align": "^3.0.0",
+                "camelcase": "^5.3.1",
+                "chalk": "^3.0.0",
+                "cli-boxes": "^2.2.0",
+                "string-width": "^4.1.0",
+                "term-size": "^2.1.0",
+                "type-fest": "^0.8.1",
+                "widest-line": "^3.1.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+                    "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "brace-expansion": {
+            "version": "1.1.11",
+            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+            "requires": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+            }
+        },
+        "braces": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+            "requires": {
+                "fill-range": "^7.0.1"
+            }
+        },
+        "brorand": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+            "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+        },
+        "browser-monads": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/browser-monads/-/browser-monads-1.0.0.tgz",
+            "integrity": "sha1-yaIQ7zeTyucBZEDZqa3+3Zpa170=",
+            "dev": true,
+            "requires": {
+                "nothing-mock": "^1.0.0"
+            }
+        },
+        "browserify-aes": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+            "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+            "requires": {
+                "buffer-xor": "^1.0.3",
+                "cipher-base": "^1.0.0",
+                "create-hash": "^1.1.0",
+                "evp_bytestokey": "^1.0.3",
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "browserify-cipher": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+            "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+            "requires": {
+                "browserify-aes": "^1.0.4",
+                "browserify-des": "^1.0.0",
+                "evp_bytestokey": "^1.0.0"
+            }
+        },
+        "browserify-des": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+            "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+            "requires": {
+                "cipher-base": "^1.0.1",
+                "des.js": "^1.0.0",
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "browserify-rsa": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+            "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+            "requires": {
+                "bn.js": "^5.0.0",
+                "randombytes": "^2.0.1"
+            }
+        },
+        "browserify-sign": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+            "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+            "requires": {
+                "bn.js": "^5.1.1",
+                "browserify-rsa": "^4.0.1",
+                "create-hash": "^1.2.0",
+                "create-hmac": "^1.1.7",
+                "elliptic": "^6.5.3",
+                "inherits": "^2.0.4",
+                "parse-asn1": "^5.1.5",
+                "readable-stream": "^3.6.0",
+                "safe-buffer": "^5.2.0"
+            }
+        },
+        "browserify-zlib": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+            "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+            "requires": {
+                "pako": "~1.0.5"
+            }
+        },
+        "browserslist": {
+            "version": "4.16.0",
+            "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz",
+            "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==",
+            "requires": {
+                "caniuse-lite": "^1.0.30001165",
+                "colorette": "^1.2.1",
+                "electron-to-chromium": "^1.3.621",
+                "escalade": "^3.1.1",
+                "node-releases": "^1.1.67"
+            }
+        },
+        "buffer": {
+            "version": "5.7.1",
+            "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+            "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+            "requires": {
+                "base64-js": "^1.3.1",
+                "ieee754": "^1.1.13"
+            }
+        },
+        "buffer-alloc": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+            "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+            "requires": {
+                "buffer-alloc-unsafe": "^1.1.0",
+                "buffer-fill": "^1.0.0"
+            }
+        },
+        "buffer-alloc-unsafe": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+            "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+        },
+        "buffer-crc32": {
+            "version": "0.2.13",
+            "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+            "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+        },
+        "buffer-equal": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
+            "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs="
+        },
+        "buffer-fill": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+            "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
+        },
+        "buffer-from": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+            "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+        },
+        "buffer-indexof": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+            "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
+        },
+        "buffer-xor": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+            "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+        },
+        "builtin-status-codes": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+            "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
+        },
+        "busboy": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
+            "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
+            "requires": {
+                "dicer": "0.3.0"
+            }
+        },
+        "bytes": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+            "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+        },
+        "cacache": {
+            "version": "13.0.1",
+            "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
+            "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
+            "requires": {
+                "chownr": "^1.1.2",
+                "figgy-pudding": "^3.5.1",
+                "fs-minipass": "^2.0.0",
+                "glob": "^7.1.4",
+                "graceful-fs": "^4.2.2",
+                "infer-owner": "^1.0.4",
+                "lru-cache": "^5.1.1",
+                "minipass": "^3.0.0",
+                "minipass-collect": "^1.0.2",
+                "minipass-flush": "^1.0.5",
+                "minipass-pipeline": "^1.2.2",
+                "mkdirp": "^0.5.1",
+                "move-concurrently": "^1.0.1",
+                "p-map": "^3.0.0",
+                "promise-inflight": "^1.0.1",
+                "rimraf": "^2.7.1",
+                "ssri": "^7.0.0",
+                "unique-filename": "^1.1.1"
+            },
+            "dependencies": {
+                "lru-cache": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+                    "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+                    "requires": {
+                        "yallist": "^3.0.2"
+                    }
+                },
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "yallist": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+                    "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+                }
+            }
+        },
+        "cache-base": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+            "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+            "requires": {
+                "collection-visit": "^1.0.0",
+                "component-emitter": "^1.2.1",
+                "get-value": "^2.0.6",
+                "has-value": "^1.0.0",
+                "isobject": "^3.0.1",
+                "set-value": "^2.0.0",
+                "to-object-path": "^0.3.0",
+                "union-value": "^1.0.0",
+                "unset-value": "^1.0.0"
+            }
+        },
+        "cache-manager": {
+            "version": "2.11.1",
+            "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz",
+            "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==",
+            "requires": {
+                "async": "1.5.2",
+                "lodash.clonedeep": "4.5.0",
+                "lru-cache": "4.0.0"
+            },
+            "dependencies": {
+                "lru-cache": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz",
+                    "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=",
+                    "requires": {
+                        "pseudomap": "^1.0.1",
+                        "yallist": "^2.0.0"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "cacheable-lookup": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz",
+            "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==",
+            "requires": {
+                "@types/keyv": "^3.1.1",
+                "keyv": "^4.0.0"
+            },
+            "dependencies": {
+                "json-buffer": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+                    "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+                },
+                "keyv": {
+                    "version": "4.0.3",
+                    "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
+                    "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
+                    "requires": {
+                        "json-buffer": "3.0.1"
+                    }
+                }
+            }
+        },
+        "cacheable-request": {
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+            "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+            "requires": {
+                "clone-response": "^1.0.2",
+                "get-stream": "^5.1.0",
+                "http-cache-semantics": "^4.0.0",
+                "keyv": "^3.0.0",
+                "lowercase-keys": "^2.0.0",
+                "normalize-url": "^4.1.0",
+                "responselike": "^1.0.2"
+            },
+            "dependencies": {
+                "lowercase-keys": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+                    "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+                },
+                "normalize-url": {
+                    "version": "4.5.0",
+                    "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+                    "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
+                }
+            }
+        },
+        "call-bind": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
+            "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+            "requires": {
+                "function-bind": "^1.1.1",
+                "get-intrinsic": "^1.0.0"
+            }
+        },
+        "caller-callsite": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+            "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+            "requires": {
+                "callsites": "^2.0.0"
+            },
+            "dependencies": {
+                "callsites": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+                    "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
+                }
+            }
+        },
+        "caller-path": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+            "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+            "requires": {
+                "caller-callsite": "^2.0.0"
+            }
+        },
+        "callsite": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+            "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
+        },
+        "callsites": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+            "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+        },
+        "camel-case": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+            "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+            "requires": {
+                "pascal-case": "^3.1.2",
+                "tslib": "^2.0.3"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "camelcase": {
+            "version": "5.3.1",
+            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+            "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+        },
+        "camelcase-keys": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+            "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+            "requires": {
+                "camelcase": "^2.0.0",
+                "map-obj": "^1.0.0"
+            },
+            "dependencies": {
+                "camelcase": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+                    "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+                }
+            }
+        },
+        "caniuse-api": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+            "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "caniuse-lite": "^1.0.0",
+                "lodash.memoize": "^4.1.2",
+                "lodash.uniq": "^4.5.0"
+            }
+        },
+        "caniuse-lite": {
+            "version": "1.0.30001165",
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz",
+            "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA=="
+        },
+        "caseless": {
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+        },
+        "caw": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
+            "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
+            "requires": {
+                "get-proxy": "^2.0.0",
+                "isurl": "^1.0.0-alpha5",
+                "tunnel-agent": "^0.6.0",
+                "url-to-options": "^1.0.1"
+            }
+        },
+        "ccount": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
+            "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg=="
+        },
+        "chalk": {
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+            "requires": {
+                "ansi-styles": "^3.2.1",
+                "escape-string-regexp": "^1.0.5",
+                "supports-color": "^5.3.0"
+            }
+        },
+        "character-entities": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+            "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="
+        },
+        "character-entities-html4": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz",
+            "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g=="
+        },
+        "character-entities-legacy": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+            "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="
+        },
+        "character-reference-invalid": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+            "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg=="
+        },
+        "chardet": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+            "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+        },
+        "cheerio": {
+            "version": "1.0.0-rc.3",
+            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
+            "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
+            "requires": {
+                "css-select": "~1.2.0",
+                "dom-serializer": "~0.1.1",
+                "entities": "~1.1.1",
+                "htmlparser2": "^3.9.1",
+                "lodash": "^4.15.0",
+                "parse5": "^3.0.1"
+            },
+            "dependencies": {
+                "dom-serializer": {
+                    "version": "0.1.1",
+                    "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+                    "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+                    "requires": {
+                        "domelementtype": "^1.3.0",
+                        "entities": "^1.1.1"
+                    }
+                }
+            }
+        },
+        "chokidar": {
+            "version": "3.4.3",
+            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
+            "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+            "requires": {
+                "anymatch": "~3.1.1",
+                "braces": "~3.0.2",
+                "fsevents": "~2.1.2",
+                "glob-parent": "~5.1.0",
+                "is-binary-path": "~2.1.0",
+                "is-glob": "~4.0.1",
+                "normalize-path": "~3.0.0",
+                "readdirp": "~3.5.0"
+            },
+            "dependencies": {
+                "anymatch": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+                    "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+                    "requires": {
+                        "normalize-path": "^3.0.0",
+                        "picomatch": "^2.0.4"
+                    }
+                },
+                "binary-extensions": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+                    "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ=="
+                },
+                "braces": {
+                    "version": "3.0.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+                    "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+                    "requires": {
+                        "fill-range": "^7.0.1"
+                    }
+                },
+                "fill-range": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+                    "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+                    "requires": {
+                        "to-regex-range": "^5.0.1"
+                    }
+                },
+                "fsevents": {
+                    "version": "2.1.3",
+                    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+                    "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+                    "optional": true
+                },
+                "glob-parent": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+                    "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+                    "requires": {
+                        "is-glob": "^4.0.1"
+                    }
+                },
+                "is-binary-path": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+                    "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+                    "requires": {
+                        "binary-extensions": "^2.0.0"
+                    }
+                },
+                "is-number": {
+                    "version": "7.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+                    "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+                },
+                "readdirp": {
+                    "version": "3.5.0",
+                    "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+                    "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+                    "requires": {
+                        "picomatch": "^2.2.1"
+                    }
+                },
+                "to-regex-range": {
+                    "version": "5.0.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+                    "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+                    "requires": {
+                        "is-number": "^7.0.0"
+                    }
+                }
+            }
+        },
+        "chownr": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+            "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+        },
+        "chrome-trace-event": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+            "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+            "requires": {
+                "tslib": "^1.9.0"
+            }
+        },
+        "ci-info": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+            "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+        },
+        "cipher-base": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+            "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+            "requires": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "class-utils": {
+            "version": "0.3.6",
+            "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+            "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+            "requires": {
+                "arr-union": "^3.1.0",
+                "define-property": "^0.2.5",
+                "isobject": "^3.0.0",
+                "static-extend": "^0.1.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "classnames": {
+            "version": "2.2.6",
+            "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
+            "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
+        },
+        "clean-stack": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+            "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
+        },
+        "cli-boxes": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+            "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
+        },
+        "cli-cursor": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+            "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+            "requires": {
+                "restore-cursor": "^3.1.0"
+            }
+        },
+        "cli-width": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+            "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
+        },
+        "clipboard": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
+            "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
+            "optional": true,
+            "requires": {
+                "good-listener": "^1.2.2",
+                "select": "^1.1.2",
+                "tiny-emitter": "^2.0.0"
+            }
+        },
+        "clipboardy": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz",
+            "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==",
+            "requires": {
+                "arch": "^2.1.1",
+                "execa": "^1.0.0",
+                "is-wsl": "^2.1.1"
+            },
+            "dependencies": {
+                "execa": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+                    "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+                    "requires": {
+                        "cross-spawn": "^6.0.0",
+                        "get-stream": "^4.0.0",
+                        "is-stream": "^1.1.0",
+                        "npm-run-path": "^2.0.0",
+                        "p-finally": "^1.0.0",
+                        "signal-exit": "^3.0.0",
+                        "strip-eof": "^1.0.0"
+                    }
+                },
+                "get-stream": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                    "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                    "requires": {
+                        "pump": "^3.0.0"
+                    }
+                },
+                "npm-run-path": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                    "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                    "requires": {
+                        "path-key": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "cliui": {
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+            "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+            "requires": {
+                "string-width": "^4.2.0",
+                "strip-ansi": "^6.0.0",
+                "wrap-ansi": "^7.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                }
+            }
+        },
+        "clone-deep": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+            "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+            "requires": {
+                "is-plain-object": "^2.0.4",
+                "kind-of": "^6.0.2",
+                "shallow-clone": "^3.0.0"
+            }
+        },
+        "clone-response": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+            "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+            "requires": {
+                "mimic-response": "^1.0.0"
+            }
+        },
+        "co": {
+            "version": "4.6.0",
+            "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+            "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+        },
+        "coa": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
+            "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
+            "requires": {
+                "@types/q": "^1.5.1",
+                "chalk": "^2.4.1",
+                "q": "^1.1.2"
+            }
+        },
+        "code-point-at": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+            "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+        },
+        "codemirror": {
+            "version": "5.58.3",
+            "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.58.3.tgz",
+            "integrity": "sha512-KBhB+juiyOOgn0AqtRmWyAT3yoElkuvWTI6hsHa9E6GQrl6bk/fdAYcvuqW1/upO9T9rtEtapWdw4XYcNiVDEA=="
+        },
+        "collapse-white-space": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+            "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ=="
+        },
+        "collection-visit": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+            "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+            "requires": {
+                "map-visit": "^1.0.0",
+                "object-visit": "^1.0.0"
+            }
+        },
+        "color": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz",
+            "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==",
+            "requires": {
+                "color-convert": "^1.9.1",
+                "color-string": "^1.5.4"
+            }
+        },
+        "color-convert": {
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+            "requires": {
+                "color-name": "1.1.3"
+            }
+        },
+        "color-name": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+            "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+        },
+        "color-string": {
+            "version": "1.5.4",
+            "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz",
+            "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==",
+            "requires": {
+                "color-name": "^1.0.0",
+                "simple-swizzle": "^0.2.2"
+            }
+        },
+        "colorette": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
+            "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
+        },
+        "combined-stream": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+            "requires": {
+                "delayed-stream": "~1.0.0"
+            }
+        },
+        "comma-separated-tokens": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
+            "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw=="
+        },
+        "command-exists": {
+            "version": "1.2.9",
+            "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+            "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="
+        },
+        "commander": {
+            "version": "2.20.3",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+            "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+        },
+        "comment-json": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz",
+            "integrity": "sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54=",
+            "requires": {
+                "json-parser": "^1.0.0"
+            }
+        },
+        "common-tags": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+            "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw=="
+        },
+        "commondir": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+            "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+        },
+        "component-bind": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+            "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
+        },
+        "component-emitter": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+            "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+        },
+        "component-inherit": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+            "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
+        },
+        "compressible": {
+            "version": "2.0.18",
+            "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+            "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+            "requires": {
+                "mime-db": ">= 1.43.0 < 2"
+            }
+        },
+        "compression": {
+            "version": "1.7.4",
+            "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+            "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+            "requires": {
+                "accepts": "~1.3.5",
+                "bytes": "3.0.0",
+                "compressible": "~2.0.16",
+                "debug": "2.6.9",
+                "on-headers": "~1.0.2",
+                "safe-buffer": "5.1.2",
+                "vary": "~1.1.2"
+            },
+            "dependencies": {
+                "bytes": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+                    "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+                },
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                }
+            }
+        },
+        "concat-map": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+        },
+        "concat-stream": {
+            "version": "1.6.2",
+            "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+            "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+            "requires": {
+                "buffer-from": "^1.0.0",
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.2.2",
+                "typedarray": "^0.0.6"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "config-chain": {
+            "version": "1.1.12",
+            "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+            "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
+            "requires": {
+                "ini": "^1.3.4",
+                "proto-list": "~1.2.1"
+            }
+        },
+        "configstore": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
+            "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+            "requires": {
+                "dot-prop": "^5.2.0",
+                "graceful-fs": "^4.1.2",
+                "make-dir": "^3.0.0",
+                "unique-string": "^2.0.0",
+                "write-file-atomic": "^3.0.0",
+                "xdg-basedir": "^4.0.0"
+            }
+        },
+        "confusing-browser-globals": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
+            "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA=="
+        },
+        "connect-history-api-fallback": {
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+            "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="
+        },
+        "console-browserify": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+            "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+        },
+        "console-control-strings": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+            "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+        },
+        "console-stream": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
+            "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ="
+        },
+        "constants-browserify": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+            "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
+        },
+        "contains-path": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+            "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
+        },
+        "content-disposition": {
+            "version": "0.5.3",
+            "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+            "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+            "requires": {
+                "safe-buffer": "5.1.2"
+            },
+            "dependencies": {
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                }
+            }
+        },
+        "content-type": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+            "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+        },
+        "contentful-management": {
+            "version": "7.8.0",
+            "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.8.0.tgz",
+            "integrity": "sha512-7m9YmKlAmlo1IbzgAwi/sVtipLFKB8f32kmwGyB2/+E5EbPFcSlsptTcUrVg7y34EinggQiBUYVJO/6qZ6wlYw==",
+            "requires": {
+                "axios": "^0.21.0",
+                "contentful-sdk-core": "^6.7.0",
+                "fast-copy": "^2.1.0",
+                "lodash.isplainobject": "^4.0.6",
+                "type-fest": "0.20.2"
+            },
+            "dependencies": {
+                "type-fest": {
+                    "version": "0.20.2",
+                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+                    "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+                }
+            }
+        },
+        "contentful-sdk-core": {
+            "version": "6.7.0",
+            "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.7.0.tgz",
+            "integrity": "sha512-+b8UXVE249Z6WzMLXvsu3CIvN/s5xXRZ9o+zY7zDdPkIYBMW15xcs9N2ATI6ncmc+s1uj4XZij/2skflletHiw==",
+            "requires": {
+                "fast-copy": "^2.1.0",
+                "qs": "^6.9.4"
+            },
+            "dependencies": {
+                "qs": {
+                    "version": "6.9.6",
+                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+                    "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
+                }
+            }
+        },
+        "convert-hrtime": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz",
+            "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA=="
+        },
+        "convert-source-map": {
+            "version": "1.7.0",
+            "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+            "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+            "requires": {
+                "safe-buffer": "~5.1.1"
+            },
+            "dependencies": {
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                }
+            }
+        },
+        "cookie": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+            "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+        },
+        "cookie-signature": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+            "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+        },
+        "copy-concurrently": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+            "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+            "requires": {
+                "aproba": "^1.1.1",
+                "fs-write-stream-atomic": "^1.0.8",
+                "iferr": "^0.1.5",
+                "mkdirp": "^0.5.1",
+                "rimraf": "^2.5.4",
+                "run-queue": "^1.0.0"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                }
+            }
+        },
+        "copy-descriptor": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+            "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+        },
+        "copyfiles": {
+            "version": "2.4.1",
+            "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz",
+            "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==",
+            "requires": {
+                "glob": "^7.0.5",
+                "minimatch": "^3.0.3",
+                "mkdirp": "^1.0.4",
+                "noms": "0.0.0",
+                "through2": "^2.0.1",
+                "untildify": "^4.0.0",
+                "yargs": "^16.1.0"
+            },
+            "dependencies": {
+                "mkdirp": {
+                    "version": "1.0.4",
+                    "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+                    "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
+                }
+            }
+        },
+        "core-js": {
+            "version": "1.2.7",
+            "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+            "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+        },
+        "core-js-compat": {
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz",
+            "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==",
+            "requires": {
+                "browserslist": "^4.16.3",
+                "semver": "7.0.0"
+            },
+            "dependencies": {
+                "browserslist": {
+                    "version": "4.16.3",
+                    "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz",
+                    "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==",
+                    "requires": {
+                        "caniuse-lite": "^1.0.30001181",
+                        "colorette": "^1.2.1",
+                        "electron-to-chromium": "^1.3.649",
+                        "escalade": "^3.1.1",
+                        "node-releases": "^1.1.70"
+                    }
+                },
+                "caniuse-lite": {
+                    "version": "1.0.30001189",
+                    "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001189.tgz",
+                    "integrity": "sha512-BSfxClP/UWCD0RX1h1L+vLDexNSJY7SfOtbJtW10bcnatfj3BcoietUFYNwWreOCk+SNvGUaNapGqUNPiGAiSA=="
+                },
+                "electron-to-chromium": {
+                    "version": "1.3.669",
+                    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.669.tgz",
+                    "integrity": "sha512-VNj10fmGC6SbE7s4tKG7y2OopVXYoTIfjE1MetflPd77KmeRuHtkl+HYsfF00BGg5hyaorTUn6lTToEHaciOSw=="
+                },
+                "node-releases": {
+                    "version": "1.1.70",
+                    "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz",
+                    "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw=="
+                },
+                "semver": {
+                    "version": "7.0.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+                    "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+                }
+            }
+        },
+        "core-js-pure": {
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.0.tgz",
+            "integrity": "sha512-3pEcmMZC9Cq0D4ZBh3pe2HLtqxpGNJBLXF/kZ2YzK17RbKp94w0HFbdbSx8H8kAlZG5k76hvLrkPm57Uyef+kg=="
+        },
+        "core-util-is": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+        },
+        "cors": {
+            "version": "2.8.5",
+            "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+            "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+            "requires": {
+                "object-assign": "^4",
+                "vary": "^1"
+            }
+        },
+        "cosmiconfig": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+            "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+            "requires": {
+                "@types/parse-json": "^4.0.0",
+                "import-fresh": "^3.1.0",
+                "parse-json": "^5.0.0",
+                "path-type": "^4.0.0",
+                "yaml": "^1.7.2"
+            }
+        },
+        "cosmiconfig-toml-loader": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz",
+            "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==",
+            "requires": {
+                "@iarna/toml": "^2.2.5"
+            }
+        },
+        "create-ecdh": {
+            "version": "4.0.4",
+            "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+            "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+            "requires": {
+                "bn.js": "^4.1.0",
+                "elliptic": "^6.5.3"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "create-gatsby": {
+            "version": "0.5.1",
+            "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-0.5.1.tgz",
+            "integrity": "sha512-iQ3Z757x02uw9Z3ereR/+RNjiQPCKLEAh3GLqfcTNNVeGgRd07XdgIgGIZrbuNaKL/3EGdfejd7ElJ1UBLQSHQ=="
+        },
+        "create-hash": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+            "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+            "requires": {
+                "cipher-base": "^1.0.1",
+                "inherits": "^2.0.1",
+                "md5.js": "^1.3.4",
+                "ripemd160": "^2.0.1",
+                "sha.js": "^2.4.0"
+            }
+        },
+        "create-hmac": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+            "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+            "requires": {
+                "cipher-base": "^1.0.3",
+                "create-hash": "^1.1.0",
+                "inherits": "^2.0.1",
+                "ripemd160": "^2.0.0",
+                "safe-buffer": "^5.0.1",
+                "sha.js": "^2.4.8"
+            }
+        },
+        "create-react-context": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz",
+            "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==",
+            "requires": {
+                "gud": "^1.0.0",
+                "warning": "^4.0.3"
+            }
+        },
+        "create-require": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+            "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+        },
+        "cross-fetch": {
+            "version": "3.0.6",
+            "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz",
+            "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==",
+            "requires": {
+                "node-fetch": "2.6.1"
+            },
+            "dependencies": {
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                }
+            }
+        },
+        "cross-spawn": {
+            "version": "6.0.5",
+            "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+            "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+            "requires": {
+                "nice-try": "^1.0.4",
+                "path-key": "^2.0.1",
+                "semver": "^5.5.0",
+                "shebang-command": "^1.2.0",
+                "which": "^1.2.9"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "crypto-browserify": {
+            "version": "3.12.0",
+            "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+            "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+            "requires": {
+                "browserify-cipher": "^1.0.0",
+                "browserify-sign": "^4.0.0",
+                "create-ecdh": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "create-hmac": "^1.1.0",
+                "diffie-hellman": "^5.0.0",
+                "inherits": "^2.0.1",
+                "pbkdf2": "^3.0.3",
+                "public-encrypt": "^4.0.0",
+                "randombytes": "^2.0.0",
+                "randomfill": "^1.0.3"
+            }
+        },
+        "crypto-random-string": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+            "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+        },
+        "css": {
+            "version": "2.2.4",
+            "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+            "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "source-map": "^0.6.1",
+                "source-map-resolve": "^0.5.2",
+                "urix": "^0.1.0"
+            }
+        },
+        "css-color-names": {
+            "version": "0.0.4",
+            "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+            "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
+        },
+        "css-declaration-sorter": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+            "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+            "requires": {
+                "postcss": "^7.0.1",
+                "timsort": "^0.3.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "css-loader": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz",
+            "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==",
+            "requires": {
+                "babel-code-frame": "^6.26.0",
+                "css-selector-tokenizer": "^0.7.0",
+                "icss-utils": "^2.1.0",
+                "loader-utils": "^1.0.2",
+                "lodash": "^4.17.11",
+                "postcss": "^6.0.23",
+                "postcss-modules-extract-imports": "^1.2.0",
+                "postcss-modules-local-by-default": "^1.2.0",
+                "postcss-modules-scope": "^1.1.0",
+                "postcss-modules-values": "^1.3.0",
+                "postcss-value-parser": "^3.3.0",
+                "source-list-map": "^2.0.0"
+            },
+            "dependencies": {
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                }
+            }
+        },
+        "css-select": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+            "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+            "requires": {
+                "boolbase": "~1.0.0",
+                "css-what": "2.1",
+                "domutils": "1.5.1",
+                "nth-check": "~1.0.1"
+            },
+            "dependencies": {
+                "domutils": {
+                    "version": "1.5.1",
+                    "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+                    "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+                    "requires": {
+                        "dom-serializer": "0",
+                        "domelementtype": "1"
+                    }
+                }
+            }
+        },
+        "css-select-base-adapter": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+            "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="
+        },
+        "css-selector-parser": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
+            "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g=="
+        },
+        "css-selector-tokenizer": {
+            "version": "0.7.3",
+            "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz",
+            "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==",
+            "requires": {
+                "cssesc": "^3.0.0",
+                "fastparse": "^1.1.2"
+            }
+        },
+        "css-tree": {
+            "version": "1.0.0-alpha.37",
+            "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+            "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+            "requires": {
+                "mdn-data": "2.0.4",
+                "source-map": "^0.6.1"
+            }
+        },
+        "css-what": {
+            "version": "2.1.3",
+            "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+            "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
+        },
+        "cssesc": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+            "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
+        },
+        "cssfilter": {
+            "version": "0.0.10",
+            "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
+            "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4="
+        },
+        "cssnano": {
+            "version": "4.1.10",
+            "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
+            "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
+            "requires": {
+                "cosmiconfig": "^5.0.0",
+                "cssnano-preset-default": "^4.0.7",
+                "is-resolvable": "^1.0.0",
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "cosmiconfig": {
+                    "version": "5.2.1",
+                    "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+                    "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+                    "requires": {
+                        "import-fresh": "^2.0.0",
+                        "is-directory": "^0.3.1",
+                        "js-yaml": "^3.13.1",
+                        "parse-json": "^4.0.0"
+                    }
+                },
+                "import-fresh": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+                    "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+                    "requires": {
+                        "caller-path": "^2.0.0",
+                        "resolve-from": "^3.0.0"
+                    }
+                },
+                "parse-json": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+                    "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+                    "requires": {
+                        "error-ex": "^1.3.1",
+                        "json-parse-better-errors": "^1.0.1"
+                    }
+                },
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "resolve-from": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+                    "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "cssnano-preset-default": {
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
+            "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
+            "requires": {
+                "css-declaration-sorter": "^4.0.1",
+                "cssnano-util-raw-cache": "^4.0.1",
+                "postcss": "^7.0.0",
+                "postcss-calc": "^7.0.1",
+                "postcss-colormin": "^4.0.3",
+                "postcss-convert-values": "^4.0.1",
+                "postcss-discard-comments": "^4.0.2",
+                "postcss-discard-duplicates": "^4.0.2",
+                "postcss-discard-empty": "^4.0.1",
+                "postcss-discard-overridden": "^4.0.1",
+                "postcss-merge-longhand": "^4.0.11",
+                "postcss-merge-rules": "^4.0.3",
+                "postcss-minify-font-values": "^4.0.2",
+                "postcss-minify-gradients": "^4.0.2",
+                "postcss-minify-params": "^4.0.2",
+                "postcss-minify-selectors": "^4.0.2",
+                "postcss-normalize-charset": "^4.0.1",
+                "postcss-normalize-display-values": "^4.0.2",
+                "postcss-normalize-positions": "^4.0.2",
+                "postcss-normalize-repeat-style": "^4.0.2",
+                "postcss-normalize-string": "^4.0.2",
+                "postcss-normalize-timing-functions": "^4.0.2",
+                "postcss-normalize-unicode": "^4.0.1",
+                "postcss-normalize-url": "^4.0.1",
+                "postcss-normalize-whitespace": "^4.0.2",
+                "postcss-ordered-values": "^4.1.2",
+                "postcss-reduce-initial": "^4.0.3",
+                "postcss-reduce-transforms": "^4.0.2",
+                "postcss-svgo": "^4.0.2",
+                "postcss-unique-selectors": "^4.0.1"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "cssnano-util-get-arguments": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+            "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8="
+        },
+        "cssnano-util-get-match": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+            "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0="
+        },
+        "cssnano-util-raw-cache": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+            "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "cssnano-util-same-parent": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+            "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q=="
+        },
+        "csso": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+            "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+            "requires": {
+                "css-tree": "^1.1.2"
+            },
+            "dependencies": {
+                "css-tree": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz",
+                    "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==",
+                    "requires": {
+                        "mdn-data": "2.0.14",
+                        "source-map": "^0.6.1"
+                    }
+                },
+                "mdn-data": {
+                    "version": "2.0.14",
+                    "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+                    "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+                }
+            }
+        },
+        "csstype": {
+            "version": "2.6.14",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.14.tgz",
+            "integrity": "sha512-2mSc+VEpGPblzAxyeR+vZhJKgYg0Og0nnRi7pmRXFYYxSfnOnW8A5wwQb4n4cE2nIOzqKOAzLCaEX6aBmNEv8A=="
+        },
+        "currently-unhandled": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+            "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+            "requires": {
+                "array-find-index": "^1.0.1"
+            }
+        },
+        "cyclist": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+            "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk="
+        },
+        "d": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+            "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+            "requires": {
+                "es5-ext": "^0.10.50",
+                "type": "^1.0.1"
+            }
+        },
+        "damerau-levenshtein": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
+            "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug=="
+        },
+        "dashdash": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+            "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+            "requires": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "dataloader": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz",
+            "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ=="
+        },
+        "date-fns": {
+            "version": "2.17.0",
+            "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.17.0.tgz",
+            "integrity": "sha512-ZEhqxUtEZeGgg9eHNSOAJ8O9xqSgiJdrL0lzSSfMF54x6KXWJiOH/xntSJ9YomJPrYH/p08t6gWjGWq1SDJlSA=="
+        },
+        "debug": {
+            "version": "3.2.7",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+            "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+            "requires": {
+                "ms": "^2.1.1"
+            }
+        },
+        "decamelize": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+            "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+        },
+        "decode-uri-component": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+            "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+        },
+        "decompress": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
+            "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
+            "requires": {
+                "decompress-tar": "^4.0.0",
+                "decompress-tarbz2": "^4.0.0",
+                "decompress-targz": "^4.0.0",
+                "decompress-unzip": "^4.0.1",
+                "graceful-fs": "^4.1.10",
+                "make-dir": "^1.0.0",
+                "pify": "^2.3.0",
+                "strip-dirs": "^2.0.0"
+            },
+            "dependencies": {
+                "make-dir": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+                    "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+                    "requires": {
+                        "pify": "^3.0.0"
+                    },
+                    "dependencies": {
+                        "pify": {
+                            "version": "3.0.0",
+                            "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                            "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                        }
+                    }
+                }
+            }
+        },
+        "decompress-response": {
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+            "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+            "requires": {
+                "mimic-response": "^1.0.0"
+            }
+        },
+        "decompress-tar": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
+            "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
+            "requires": {
+                "file-type": "^5.2.0",
+                "is-stream": "^1.1.0",
+                "tar-stream": "^1.5.2"
+            },
+            "dependencies": {
+                "bl": {
+                    "version": "1.2.3",
+                    "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
+                    "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
+                    "requires": {
+                        "readable-stream": "^2.3.5",
+                        "safe-buffer": "^5.1.1"
+                    }
+                },
+                "file-type": {
+                    "version": "5.2.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
+                    "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
+                },
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    },
+                    "dependencies": {
+                        "safe-buffer": {
+                            "version": "5.1.2",
+                            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                            "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                        }
+                    }
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    },
+                    "dependencies": {
+                        "safe-buffer": {
+                            "version": "5.1.2",
+                            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                            "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                        }
+                    }
+                },
+                "tar-stream": {
+                    "version": "1.6.2",
+                    "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+                    "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+                    "requires": {
+                        "bl": "^1.0.0",
+                        "buffer-alloc": "^1.2.0",
+                        "end-of-stream": "^1.0.0",
+                        "fs-constants": "^1.0.0",
+                        "readable-stream": "^2.3.0",
+                        "to-buffer": "^1.1.1",
+                        "xtend": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "decompress-tarbz2": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
+            "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
+            "requires": {
+                "decompress-tar": "^4.1.0",
+                "file-type": "^6.1.0",
+                "is-stream": "^1.1.0",
+                "seek-bzip": "^1.0.5",
+                "unbzip2-stream": "^1.0.9"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
+                    "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg=="
+                }
+            }
+        },
+        "decompress-targz": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
+            "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
+            "requires": {
+                "decompress-tar": "^4.1.1",
+                "file-type": "^5.2.0",
+                "is-stream": "^1.1.0"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "5.2.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
+                    "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
+                }
+            }
+        },
+        "decompress-unzip": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
+            "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
+            "requires": {
+                "file-type": "^3.8.0",
+                "get-stream": "^2.2.0",
+                "pify": "^2.3.0",
+                "yauzl": "^2.4.2"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "3.9.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
+                    "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
+                },
+                "get-stream": {
+                    "version": "2.3.1",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
+                    "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
+                    "requires": {
+                        "object-assign": "^4.0.1",
+                        "pinkie-promise": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "deep-equal": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+            "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+            "requires": {
+                "is-arguments": "^1.0.4",
+                "is-date-object": "^1.0.1",
+                "is-regex": "^1.0.4",
+                "object-is": "^1.0.1",
+                "object-keys": "^1.1.1",
+                "regexp.prototype.flags": "^1.2.0"
+            }
+        },
+        "deep-extend": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+            "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+        },
+        "deep-is": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+            "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+        },
+        "deepmerge": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+            "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+        },
+        "default-gateway": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+            "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+            "requires": {
+                "execa": "^1.0.0",
+                "ip-regex": "^2.1.0"
+            },
+            "dependencies": {
+                "execa": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+                    "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+                    "requires": {
+                        "cross-spawn": "^6.0.0",
+                        "get-stream": "^4.0.0",
+                        "is-stream": "^1.1.0",
+                        "npm-run-path": "^2.0.0",
+                        "p-finally": "^1.0.0",
+                        "signal-exit": "^3.0.0",
+                        "strip-eof": "^1.0.0"
+                    }
+                },
+                "get-stream": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                    "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                    "requires": {
+                        "pump": "^3.0.0"
+                    }
+                },
+                "npm-run-path": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+                    "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+                    "requires": {
+                        "path-key": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "defer-to-connect": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+            "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+        },
+        "define-properties": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+            "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+            "requires": {
+                "object-keys": "^1.0.12"
+            }
+        },
+        "define-property": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+            "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+            "requires": {
+                "is-descriptor": "^1.0.2",
+                "isobject": "^3.0.1"
+            },
+            "dependencies": {
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "del": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz",
+            "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==",
+            "requires": {
+                "globby": "^10.0.1",
+                "graceful-fs": "^4.2.2",
+                "is-glob": "^4.0.1",
+                "is-path-cwd": "^2.2.0",
+                "is-path-inside": "^3.0.1",
+                "p-map": "^3.0.0",
+                "rimraf": "^3.0.0",
+                "slash": "^3.0.0"
+            }
+        },
+        "delayed-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+            "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+        },
+        "delegate": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+            "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
+            "optional": true
+        },
+        "delegates": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+            "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+        },
+        "depd": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+            "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+        },
+        "des.js": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+            "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+            "requires": {
+                "inherits": "^2.0.1",
+                "minimalistic-assert": "^1.0.0"
+            }
+        },
+        "destroy": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+            "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+        },
+        "detab": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz",
+            "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==",
+            "requires": {
+                "repeat-string": "^1.5.4"
+            }
+        },
+        "detect-libc": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+            "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+        },
+        "detect-newline": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+            "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+            "requires": {
+                "get-stdin": "^4.0.1",
+                "minimist": "^1.1.0"
+            }
+        },
+        "detect-node": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+            "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw=="
+        },
+        "detect-port": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
+            "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
+            "requires": {
+                "address": "^1.0.1",
+                "debug": "^2.6.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "devcert": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.1.3.tgz",
+            "integrity": "sha512-7/nIzKdQ8y2K0imjIP7dyg2GJ2h38Ps6VOMXWZHIarNDV3p6mTXyEugKFnkmsZ2DD58JEG34ILyVb3qdOMmP9w==",
+            "requires": {
+                "@types/configstore": "^2.1.1",
+                "@types/debug": "^0.0.30",
+                "@types/get-port": "^3.2.0",
+                "@types/glob": "^5.0.34",
+                "@types/lodash": "^4.14.92",
+                "@types/mkdirp": "^0.5.2",
+                "@types/node": "^8.5.7",
+                "@types/rimraf": "^2.0.2",
+                "@types/tmp": "^0.0.33",
+                "application-config-path": "^0.1.0",
+                "command-exists": "^1.2.4",
+                "debug": "^3.1.0",
+                "eol": "^0.9.1",
+                "get-port": "^3.2.0",
+                "glob": "^7.1.2",
+                "lodash": "^4.17.4",
+                "mkdirp": "^0.5.1",
+                "password-prompt": "^1.0.4",
+                "rimraf": "^2.6.2",
+                "sudo-prompt": "^8.2.0",
+                "tmp": "^0.0.33",
+                "tslib": "^1.10.0"
+            },
+            "dependencies": {
+                "@types/glob": {
+                    "version": "5.0.36",
+                    "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.36.tgz",
+                    "integrity": "sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg==",
+                    "requires": {
+                        "@types/events": "*",
+                        "@types/minimatch": "*",
+                        "@types/node": "*"
+                    }
+                },
+                "@types/node": {
+                    "version": "8.10.66",
+                    "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+                    "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw=="
+                },
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "tmp": {
+                    "version": "0.0.33",
+                    "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+                    "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+                    "requires": {
+                        "os-tmpdir": "~1.0.2"
+                    }
+                }
+            }
+        },
+        "dicer": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
+            "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
+            "requires": {
+                "streamsearch": "0.1.2"
+            }
+        },
+        "diff": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+            "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+        },
+        "diff-sequences": {
+            "version": "25.2.6",
+            "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
+            "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg=="
+        },
+        "diffie-hellman": {
+            "version": "5.0.3",
+            "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+            "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+            "requires": {
+                "bn.js": "^4.1.0",
+                "miller-rabin": "^4.0.0",
+                "randombytes": "^2.0.0"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "dir-glob": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+            "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+            "requires": {
+                "path-type": "^4.0.0"
+            }
+        },
+        "dns-equal": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+            "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
+        },
+        "dns-packet": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+            "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+            "requires": {
+                "ip": "^1.1.0",
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "dns-txt": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+            "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+            "requires": {
+                "buffer-indexof": "^1.0.0"
+            }
+        },
+        "doctrine": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+            "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+            "requires": {
+                "esutils": "^2.0.2"
+            }
+        },
+        "dom-converter": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+            "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+            "requires": {
+                "utila": "~0.4"
+            }
+        },
+        "dom-serializer": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+            "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+            "requires": {
+                "domelementtype": "^2.0.1",
+                "entities": "^2.0.0"
+            },
+            "dependencies": {
+                "domelementtype": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
+                    "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
+                },
+                "entities": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+                    "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
+                }
+            }
+        },
+        "dom-walk": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+            "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
+        },
+        "domain-browser": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+            "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
+        },
+        "domelementtype": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+            "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+        },
+        "domhandler": {
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+            "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+            "requires": {
+                "domelementtype": "1"
+            }
+        },
+        "domutils": {
+            "version": "1.7.0",
+            "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+            "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+            "requires": {
+                "dom-serializer": "0",
+                "domelementtype": "1"
+            }
+        },
+        "dot-prop": {
+            "version": "5.3.0",
+            "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+            "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+            "requires": {
+                "is-obj": "^2.0.0"
+            }
+        },
+        "dotenv": {
+            "version": "8.2.0",
+            "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+            "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
+        },
+        "download": {
+            "version": "6.2.5",
+            "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz",
+            "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==",
+            "requires": {
+                "caw": "^2.0.0",
+                "content-disposition": "^0.5.2",
+                "decompress": "^4.0.0",
+                "ext-name": "^5.0.0",
+                "file-type": "5.2.0",
+                "filenamify": "^2.0.0",
+                "get-stream": "^3.0.0",
+                "got": "^7.0.0",
+                "make-dir": "^1.0.0",
+                "p-event": "^1.0.0",
+                "pify": "^3.0.0"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "5.2.0",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
+                    "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
+                },
+                "get-stream": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+                    "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+                },
+                "got": {
+                    "version": "7.1.0",
+                    "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+                    "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+                    "requires": {
+                        "decompress-response": "^3.2.0",
+                        "duplexer3": "^0.1.4",
+                        "get-stream": "^3.0.0",
+                        "is-plain-obj": "^1.1.0",
+                        "is-retry-allowed": "^1.0.0",
+                        "is-stream": "^1.0.0",
+                        "isurl": "^1.0.0-alpha5",
+                        "lowercase-keys": "^1.0.0",
+                        "p-cancelable": "^0.3.0",
+                        "p-timeout": "^1.1.1",
+                        "safe-buffer": "^5.0.1",
+                        "timed-out": "^4.0.0",
+                        "url-parse-lax": "^1.0.0",
+                        "url-to-options": "^1.0.1"
+                    }
+                },
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "make-dir": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+                    "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+                    "requires": {
+                        "pify": "^3.0.0"
+                    }
+                },
+                "p-cancelable": {
+                    "version": "0.3.0",
+                    "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+                    "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw=="
+                },
+                "p-event": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
+                    "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
+                    "requires": {
+                        "p-timeout": "^1.1.1"
+                    }
+                },
+                "p-timeout": {
+                    "version": "1.2.1",
+                    "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+                    "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+                    "requires": {
+                        "p-finally": "^1.0.0"
+                    }
+                },
+                "pify": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                    "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                },
+                "prepend-http": {
+                    "version": "1.0.4",
+                    "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+                    "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+                },
+                "url-parse-lax": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+                    "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+                    "requires": {
+                        "prepend-http": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "duplexer": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+            "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
+        },
+        "duplexer3": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+            "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+        },
+        "duplexify": {
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+            "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+            "requires": {
+                "end-of-stream": "^1.0.0",
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.0.0",
+                "stream-shift": "^1.0.0"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "ecc-jsbn": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+            "requires": {
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
+            }
+        },
+        "ee-first": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+            "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+        },
+        "electron-to-chromium": {
+            "version": "1.3.625",
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.625.tgz",
+            "integrity": "sha512-CsLk/r0C9dAzVPa9QF74HIXduxaucsaRfqiOYvIv2PRhvyC6EOqc/KbpgToQuDVgPf3sNAFZi3iBu4vpGOwGag=="
+        },
+        "elliptic": {
+            "version": "6.5.4",
+            "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+            "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+            "requires": {
+                "bn.js": "^4.11.9",
+                "brorand": "^1.1.0",
+                "hash.js": "^1.0.0",
+                "hmac-drbg": "^1.0.1",
+                "inherits": "^2.0.4",
+                "minimalistic-assert": "^1.0.1",
+                "minimalistic-crypto-utils": "^1.0.1"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "emoji-regex": {
+            "version": "8.0.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+        },
+        "emojis-list": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+            "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
+        },
+        "encodeurl": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+            "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+        },
+        "encoding": {
+            "version": "0.1.13",
+            "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+            "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+            "requires": {
+                "iconv-lite": "^0.6.2"
+            }
+        },
+        "end-of-stream": {
+            "version": "1.4.4",
+            "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+            "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+            "requires": {
+                "once": "^1.4.0"
+            }
+        },
+        "engine.io": {
+            "version": "3.4.2",
+            "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz",
+            "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==",
+            "requires": {
+                "accepts": "~1.3.4",
+                "base64id": "2.0.0",
+                "cookie": "0.3.1",
+                "debug": "~4.1.0",
+                "engine.io-parser": "~2.2.0",
+                "ws": "^7.1.2"
+            },
+            "dependencies": {
+                "cookie": {
+                    "version": "0.3.1",
+                    "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+                    "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+                },
+                "debug": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                }
+            }
+        },
+        "engine.io-client": {
+            "version": "3.4.4",
+            "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz",
+            "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==",
+            "requires": {
+                "component-emitter": "~1.3.0",
+                "component-inherit": "0.0.3",
+                "debug": "~3.1.0",
+                "engine.io-parser": "~2.2.0",
+                "has-cors": "1.1.0",
+                "indexof": "0.0.1",
+                "parseqs": "0.0.6",
+                "parseuri": "0.0.6",
+                "ws": "~6.1.0",
+                "xmlhttprequest-ssl": "~1.5.4",
+                "yeast": "0.1.2"
+            },
+            "dependencies": {
+                "component-emitter": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+                    "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+                },
+                "debug": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+                    "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "parseqs": {
+                    "version": "0.0.6",
+                    "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
+                    "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w=="
+                },
+                "parseuri": {
+                    "version": "0.0.6",
+                    "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
+                    "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow=="
+                },
+                "ws": {
+                    "version": "6.1.4",
+                    "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+                    "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+                    "requires": {
+                        "async-limiter": "~1.0.0"
+                    }
+                }
+            }
+        },
+        "engine.io-parser": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz",
+            "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==",
+            "requires": {
+                "after": "0.8.2",
+                "arraybuffer.slice": "~0.0.7",
+                "base64-arraybuffer": "0.1.4",
+                "blob": "0.0.5",
+                "has-binary2": "~1.0.2"
+            }
+        },
+        "enhanced-resolve": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+            "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "memory-fs": "^0.5.0",
+                "tapable": "^1.0.0"
+            },
+            "dependencies": {
+                "memory-fs": {
+                    "version": "0.5.0",
+                    "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+                    "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+                    "requires": {
+                        "errno": "^0.1.3",
+                        "readable-stream": "^2.0.1"
+                    }
+                },
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "entities": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+            "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+        },
+        "envinfo": {
+            "version": "7.7.4",
+            "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz",
+            "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ=="
+        },
+        "eol": {
+            "version": "0.9.1",
+            "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+            "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+        },
+        "errno": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+            "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+            "requires": {
+                "prr": "~1.0.1"
+            }
+        },
+        "error-ex": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+            "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+            "requires": {
+                "is-arrayish": "^0.2.1"
+            }
+        },
+        "error-stack-parser": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz",
+            "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==",
+            "requires": {
+                "stackframe": "^1.1.1"
+            }
+        },
+        "es-abstract": {
+            "version": "1.18.0-next.1",
+            "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
+            "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
+            "requires": {
+                "es-to-primitive": "^1.2.1",
+                "function-bind": "^1.1.1",
+                "has": "^1.0.3",
+                "has-symbols": "^1.0.1",
+                "is-callable": "^1.2.2",
+                "is-negative-zero": "^2.0.0",
+                "is-regex": "^1.1.1",
+                "object-inspect": "^1.8.0",
+                "object-keys": "^1.1.1",
+                "object.assign": "^4.1.1",
+                "string.prototype.trimend": "^1.0.1",
+                "string.prototype.trimstart": "^1.0.1"
+            }
+        },
+        "es-to-primitive": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+            "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+            "requires": {
+                "is-callable": "^1.1.4",
+                "is-date-object": "^1.0.1",
+                "is-symbol": "^1.0.2"
+            }
+        },
+        "es5-ext": {
+            "version": "0.10.53",
+            "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+            "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+            "requires": {
+                "es6-iterator": "~2.0.3",
+                "es6-symbol": "~3.1.3",
+                "next-tick": "~1.0.0"
+            },
+            "dependencies": {
+                "next-tick": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+                    "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+                }
+            }
+        },
+        "es6-iterator": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+            "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+            "requires": {
+                "d": "1",
+                "es5-ext": "^0.10.35",
+                "es6-symbol": "^3.1.1"
+            }
+        },
+        "es6-symbol": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+            "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+            "requires": {
+                "d": "^1.0.1",
+                "ext": "^1.1.2"
+            }
+        },
+        "es6-weak-map": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+            "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+            "requires": {
+                "d": "1",
+                "es5-ext": "^0.10.46",
+                "es6-iterator": "^2.0.3",
+                "es6-symbol": "^3.1.1"
+            }
+        },
+        "escalade": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+            "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+        },
+        "escape-goat": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
+            "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
+        },
+        "escape-html": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+            "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+        },
+        "escape-string-regexp": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+            "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+        },
+        "eslint": {
+            "version": "6.8.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+            "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+            "requires": {
+                "@babel/code-frame": "^7.0.0",
+                "ajv": "^6.10.0",
+                "chalk": "^2.1.0",
+                "cross-spawn": "^6.0.5",
+                "debug": "^4.0.1",
+                "doctrine": "^3.0.0",
+                "eslint-scope": "^5.0.0",
+                "eslint-utils": "^1.4.3",
+                "eslint-visitor-keys": "^1.1.0",
+                "espree": "^6.1.2",
+                "esquery": "^1.0.1",
+                "esutils": "^2.0.2",
+                "file-entry-cache": "^5.0.1",
+                "functional-red-black-tree": "^1.0.1",
+                "glob-parent": "^5.0.0",
+                "globals": "^12.1.0",
+                "ignore": "^4.0.6",
+                "import-fresh": "^3.0.0",
+                "imurmurhash": "^0.1.4",
+                "inquirer": "^7.0.0",
+                "is-glob": "^4.0.0",
+                "js-yaml": "^3.13.1",
+                "json-stable-stringify-without-jsonify": "^1.0.1",
+                "levn": "^0.3.0",
+                "lodash": "^4.17.14",
+                "minimatch": "^3.0.4",
+                "mkdirp": "^0.5.1",
+                "natural-compare": "^1.4.0",
+                "optionator": "^0.8.3",
+                "progress": "^2.0.0",
+                "regexpp": "^2.0.1",
+                "semver": "^6.1.2",
+                "strip-ansi": "^5.2.0",
+                "strip-json-comments": "^3.0.1",
+                "table": "^5.2.3",
+                "text-table": "^0.2.0",
+                "v8-compile-cache": "^2.0.3"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                },
+                "eslint-utils": {
+                    "version": "1.4.3",
+                    "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+                    "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+                    "requires": {
+                        "eslint-visitor-keys": "^1.1.0"
+                    }
+                },
+                "globals": {
+                    "version": "12.4.0",
+                    "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+                    "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+                    "requires": {
+                        "type-fest": "^0.8.1"
+                    }
+                },
+                "ignore": {
+                    "version": "4.0.6",
+                    "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+                    "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "regexpp": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+                    "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="
+                },
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                }
+            }
+        },
+        "eslint-config-react-app": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz",
+            "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==",
+            "requires": {
+                "confusing-browser-globals": "^1.0.9"
+            }
+        },
+        "eslint-import-resolver-node": {
+            "version": "0.3.4",
+            "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
+            "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
+            "requires": {
+                "debug": "^2.6.9",
+                "resolve": "^1.13.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "eslint-loader": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz",
+            "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==",
+            "requires": {
+                "loader-fs-cache": "^1.0.0",
+                "loader-utils": "^1.0.2",
+                "object-assign": "^4.0.1",
+                "object-hash": "^1.1.4",
+                "rimraf": "^2.6.1"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                }
+            }
+        },
+        "eslint-module-utils": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
+            "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
+            "requires": {
+                "debug": "^2.6.9",
+                "pkg-dir": "^2.0.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "find-up": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+                    "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+                    "requires": {
+                        "locate-path": "^2.0.0"
+                    }
+                },
+                "locate-path": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+                    "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+                    "requires": {
+                        "p-locate": "^2.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "p-limit": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+                    "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+                    "requires": {
+                        "p-try": "^1.0.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+                    "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+                    "requires": {
+                        "p-limit": "^1.1.0"
+                    }
+                },
+                "p-try": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+                    "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                },
+                "pkg-dir": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+                    "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+                    "requires": {
+                        "find-up": "^2.1.0"
+                    }
+                }
+            }
+        },
+        "eslint-plugin-flowtype": {
+            "version": "3.13.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz",
+            "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==",
+            "requires": {
+                "lodash": "^4.17.15"
+            }
+        },
+        "eslint-plugin-graphql": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-4.0.0.tgz",
+            "integrity": "sha512-d5tQm24YkVvCEk29ZR5ScsgXqAGCjKlMS8lx3mS7FS/EKsWbkvXQImpvic03EpMIvNTBW5e+2xnHzXB/VHNZJw==",
+            "requires": {
+                "@babel/runtime": "^7.10.0",
+                "graphql-config": "^3.0.2",
+                "lodash.flatten": "^4.4.0",
+                "lodash.without": "^4.4.0"
+            }
+        },
+        "eslint-plugin-import": {
+            "version": "2.22.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz",
+            "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==",
+            "requires": {
+                "array-includes": "^3.1.1",
+                "array.prototype.flat": "^1.2.3",
+                "contains-path": "^0.1.0",
+                "debug": "^2.6.9",
+                "doctrine": "1.5.0",
+                "eslint-import-resolver-node": "^0.3.4",
+                "eslint-module-utils": "^2.6.0",
+                "has": "^1.0.3",
+                "minimatch": "^3.0.4",
+                "object.values": "^1.1.1",
+                "read-pkg-up": "^2.0.0",
+                "resolve": "^1.17.0",
+                "tsconfig-paths": "^3.9.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "doctrine": {
+                    "version": "1.5.0",
+                    "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+                    "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+                    "requires": {
+                        "esutils": "^2.0.2",
+                        "isarray": "^1.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "eslint-plugin-jsx-a11y": {
+            "version": "6.4.1",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz",
+            "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==",
+            "requires": {
+                "@babel/runtime": "^7.11.2",
+                "aria-query": "^4.2.2",
+                "array-includes": "^3.1.1",
+                "ast-types-flow": "^0.0.7",
+                "axe-core": "^4.0.2",
+                "axobject-query": "^2.2.0",
+                "damerau-levenshtein": "^1.0.6",
+                "emoji-regex": "^9.0.0",
+                "has": "^1.0.3",
+                "jsx-ast-utils": "^3.1.0",
+                "language-tags": "^1.0.5"
+            },
+            "dependencies": {
+                "emoji-regex": {
+                    "version": "9.2.1",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.1.tgz",
+                    "integrity": "sha512-117l1H6U4X3Krn+MrzYrL57d5H7siRHWraBs7s+LjRuFK7Fe7hJqnJ0skWlinqsycVLU5YAo6L8CsEYQ0V5prg=="
+                }
+            }
+        },
+        "eslint-plugin-react": {
+            "version": "7.22.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
+            "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
+            "requires": {
+                "array-includes": "^3.1.1",
+                "array.prototype.flatmap": "^1.2.3",
+                "doctrine": "^2.1.0",
+                "has": "^1.0.3",
+                "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+                "object.entries": "^1.1.2",
+                "object.fromentries": "^2.0.2",
+                "object.values": "^1.1.1",
+                "prop-types": "^15.7.2",
+                "resolve": "^1.18.1",
+                "string.prototype.matchall": "^4.0.2"
+            },
+            "dependencies": {
+                "doctrine": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+                    "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+                    "requires": {
+                        "esutils": "^2.0.2"
+                    }
+                }
+            }
+        },
+        "eslint-plugin-react-hooks": {
+            "version": "1.7.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
+            "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA=="
+        },
+        "eslint-scope": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+            "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+            "requires": {
+                "esrecurse": "^4.3.0",
+                "estraverse": "^4.1.1"
+            }
+        },
+        "eslint-utils": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+            "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+            "requires": {
+                "eslint-visitor-keys": "^1.1.0"
+            }
+        },
+        "eslint-visitor-keys": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+            "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
+        },
+        "espree": {
+            "version": "6.2.1",
+            "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+            "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+            "requires": {
+                "acorn": "^7.1.1",
+                "acorn-jsx": "^5.2.0",
+                "eslint-visitor-keys": "^1.1.0"
+            }
+        },
+        "esprima": {
+            "version": "2.7.3",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+            "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+        },
+        "esquery": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+            "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+            "requires": {
+                "estraverse": "^5.1.0"
+            },
+            "dependencies": {
+                "estraverse": {
+                    "version": "5.2.0",
+                    "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+                    "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+                }
+            }
+        },
+        "esrecurse": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+            "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+            "requires": {
+                "estraverse": "^5.2.0"
+            },
+            "dependencies": {
+                "estraverse": {
+                    "version": "5.2.0",
+                    "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+                    "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="
+                }
+            }
+        },
+        "estraverse": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+        },
+        "esutils": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+            "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+        },
+        "etag": {
+            "version": "1.8.1",
+            "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+            "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+        },
+        "event-emitter": {
+            "version": "0.3.5",
+            "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+            "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+            "requires": {
+                "d": "1",
+                "es5-ext": "~0.10.14"
+            }
+        },
+        "event-source-polyfill": {
+            "version": "1.0.22",
+            "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.22.tgz",
+            "integrity": "sha512-Fnk9E2p4rkZ3eJGBn2HDeZoBTpyjPxj8RX/whdr4Pm5622xYgYo1k48SUD649Xlo6nnoKRr2WwcUlneil/AZ8g=="
+        },
+        "eventemitter3": {
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+            "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+        },
+        "events": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+            "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="
+        },
+        "eventsource": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+            "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+            "requires": {
+                "original": "^1.0.0"
+            }
+        },
+        "evp_bytestokey": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+            "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+            "requires": {
+                "md5.js": "^1.3.4",
+                "safe-buffer": "^5.1.1"
+            }
+        },
+        "execa": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+            "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+            "requires": {
+                "cross-spawn": "^7.0.0",
+                "get-stream": "^5.0.0",
+                "human-signals": "^1.1.1",
+                "is-stream": "^2.0.0",
+                "merge-stream": "^2.0.0",
+                "npm-run-path": "^4.0.0",
+                "onetime": "^5.1.0",
+                "signal-exit": "^3.0.2",
+                "strip-final-newline": "^2.0.0"
+            },
+            "dependencies": {
+                "cross-spawn": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+                    "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+                    "requires": {
+                        "path-key": "^3.1.0",
+                        "shebang-command": "^2.0.0",
+                        "which": "^2.0.1"
+                    }
+                },
+                "is-stream": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+                    "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+                },
+                "path-key": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+                    "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+                },
+                "shebang-command": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+                    "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+                    "requires": {
+                        "shebang-regex": "^3.0.0"
+                    }
+                },
+                "shebang-regex": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+                    "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+                },
+                "which": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+                    "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+                    "requires": {
+                        "isexe": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "executable": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+            "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+            "requires": {
+                "pify": "^2.2.0"
+            }
+        },
+        "exif-parser": {
+            "version": "0.1.12",
+            "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
+            "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI="
+        },
+        "expand-brackets": {
+            "version": "2.1.4",
+            "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+            "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+            "requires": {
+                "debug": "^2.3.3",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "posix-character-classes": "^0.1.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "expand-template": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+            "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
+        },
+        "expand-tilde": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+            "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+            "requires": {
+                "homedir-polyfill": "^1.0.1"
+            }
+        },
+        "express": {
+            "version": "4.17.1",
+            "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+            "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+            "requires": {
+                "accepts": "~1.3.7",
+                "array-flatten": "1.1.1",
+                "body-parser": "1.19.0",
+                "content-disposition": "0.5.3",
+                "content-type": "~1.0.4",
+                "cookie": "0.4.0",
+                "cookie-signature": "1.0.6",
+                "debug": "2.6.9",
+                "depd": "~1.1.2",
+                "encodeurl": "~1.0.2",
+                "escape-html": "~1.0.3",
+                "etag": "~1.8.1",
+                "finalhandler": "~1.1.2",
+                "fresh": "0.5.2",
+                "merge-descriptors": "1.0.1",
+                "methods": "~1.1.2",
+                "on-finished": "~2.3.0",
+                "parseurl": "~1.3.3",
+                "path-to-regexp": "0.1.7",
+                "proxy-addr": "~2.0.5",
+                "qs": "6.7.0",
+                "range-parser": "~1.2.1",
+                "safe-buffer": "5.1.2",
+                "send": "0.17.1",
+                "serve-static": "1.14.1",
+                "setprototypeof": "1.1.1",
+                "statuses": "~1.5.0",
+                "type-is": "~1.6.18",
+                "utils-merge": "1.0.1",
+                "vary": "~1.1.2"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                }
+            }
+        },
+        "express-graphql": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz",
+            "integrity": "sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==",
+            "requires": {
+                "accepts": "^1.3.7",
+                "content-type": "^1.0.4",
+                "http-errors": "^1.7.3",
+                "raw-body": "^2.4.1"
+            },
+            "dependencies": {
+                "http-errors": {
+                    "version": "1.8.0",
+                    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
+                    "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
+                    "requires": {
+                        "depd": "~1.1.2",
+                        "inherits": "2.0.4",
+                        "setprototypeof": "1.2.0",
+                        "statuses": ">= 1.5.0 < 2",
+                        "toidentifier": "1.0.0"
+                    }
+                },
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+                    "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                },
+                "raw-body": {
+                    "version": "2.4.1",
+                    "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
+                    "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
+                    "requires": {
+                        "bytes": "3.1.0",
+                        "http-errors": "1.7.3",
+                        "iconv-lite": "0.4.24",
+                        "unpipe": "1.0.0"
+                    },
+                    "dependencies": {
+                        "http-errors": {
+                            "version": "1.7.3",
+                            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+                            "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+                            "requires": {
+                                "depd": "~1.1.2",
+                                "inherits": "2.0.4",
+                                "setprototypeof": "1.1.1",
+                                "statuses": ">= 1.5.0 < 2",
+                                "toidentifier": "1.0.0"
+                            }
+                        },
+                        "setprototypeof": {
+                            "version": "1.1.1",
+                            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+                            "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+                        }
+                    }
+                },
+                "setprototypeof": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+                    "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+                }
+            }
+        },
+        "ext": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+            "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+            "requires": {
+                "type": "^2.0.0"
+            },
+            "dependencies": {
+                "type": {
+                    "version": "2.3.0",
+                    "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz",
+                    "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg=="
+                }
+            }
+        },
+        "ext-list": {
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
+            "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
+            "requires": {
+                "mime-db": "^1.28.0"
+            }
+        },
+        "ext-name": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
+            "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
+            "requires": {
+                "ext-list": "^2.0.0",
+                "sort-keys-length": "^1.0.0"
+            }
+        },
+        "extend": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+        },
+        "extend-shallow": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+            "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+            "requires": {
+                "assign-symbols": "^1.0.0",
+                "is-extendable": "^1.0.1"
+            },
+            "dependencies": {
+                "is-extendable": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+                    "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                    "requires": {
+                        "is-plain-object": "^2.0.4"
+                    }
+                }
+            }
+        },
+        "external-editor": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+            "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+            "requires": {
+                "chardet": "^0.7.0",
+                "iconv-lite": "^0.4.24",
+                "tmp": "^0.0.33"
+            },
+            "dependencies": {
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+                    "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                },
+                "tmp": {
+                    "version": "0.0.33",
+                    "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+                    "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+                    "requires": {
+                        "os-tmpdir": "~1.0.2"
+                    }
+                }
+            }
+        },
+        "extglob": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+            "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+            "requires": {
+                "array-unique": "^0.3.2",
+                "define-property": "^1.0.0",
+                "expand-brackets": "^2.1.4",
+                "extend-shallow": "^2.0.1",
+                "fragment-cache": "^0.2.1",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "extract-files": {
+            "version": "9.0.0",
+            "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
+            "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ=="
+        },
+        "extsprintf": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+            "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+        },
+        "fast-copy": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.1.tgz",
+            "integrity": "sha512-Qod3DdRgFZ8GUIM6ygeoZYpQ0QLW9cf/FS9KhhjlYggcSZXWAemAw8BOCO5LuYCrR3Uj3qXDVTUzOUwG8C7beQ=="
+        },
+        "fast-deep-equal": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+        },
+        "fast-glob": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+            "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+            "requires": {
+                "@nodelib/fs.stat": "^2.0.2",
+                "@nodelib/fs.walk": "^1.2.3",
+                "glob-parent": "^5.1.0",
+                "merge2": "^1.3.0",
+                "micromatch": "^4.0.2",
+                "picomatch": "^2.2.1"
+            },
+            "dependencies": {
+                "glob-parent": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+                    "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+                    "requires": {
+                        "is-glob": "^4.0.1"
+                    }
+                }
+            }
+        },
+        "fast-json-stable-stringify": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+        },
+        "fast-levenshtein": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+            "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+        },
+        "fastest-levenshtein": {
+            "version": "1.0.12",
+            "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz",
+            "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow=="
+        },
+        "fastparse": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+            "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ=="
+        },
+        "fastq": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz",
+            "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==",
+            "requires": {
+                "reusify": "^1.0.4"
+            }
+        },
+        "faye-websocket": {
+            "version": "0.11.3",
+            "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+            "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+            "requires": {
+                "websocket-driver": ">=0.5.1"
+            }
+        },
+        "fbjs": {
+            "version": "0.8.17",
+            "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+            "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+            "requires": {
+                "core-js": "^1.0.0",
+                "isomorphic-fetch": "^2.1.1",
+                "loose-envify": "^1.0.0",
+                "object-assign": "^4.1.0",
+                "promise": "^7.1.1",
+                "setimmediate": "^1.0.5",
+                "ua-parser-js": "^0.7.18"
+            }
+        },
+        "fd": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz",
+            "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA=="
+        },
+        "fd-slicer": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+            "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+            "requires": {
+                "pend": "~1.2.0"
+            }
+        },
+        "figgy-pudding": {
+            "version": "3.5.2",
+            "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+            "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw=="
+        },
+        "figures": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+            "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+            "requires": {
+                "escape-string-regexp": "^1.0.5"
+            }
+        },
+        "file-entry-cache": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+            "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+            "requires": {
+                "flat-cache": "^2.0.1"
+            }
+        },
+        "file-loader": {
+            "version": "1.1.11",
+            "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
+            "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
+            "requires": {
+                "loader-utils": "^1.0.2",
+                "schema-utils": "^0.4.5"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "schema-utils": {
+                    "version": "0.4.7",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+                    "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                }
+            }
+        },
+        "file-type": {
+            "version": "12.4.2",
+            "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz",
+            "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg=="
+        },
+        "file-uri-to-path": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+            "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+            "optional": true
+        },
+        "filename-reserved-regex": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+            "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik="
+        },
+        "filenamify": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
+            "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
+            "requires": {
+                "filename-reserved-regex": "^2.0.0",
+                "strip-outer": "^1.0.0",
+                "trim-repeated": "^1.0.0"
+            }
+        },
+        "filesize": {
+            "version": "3.5.11",
+            "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz",
+            "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g=="
+        },
+        "fill-range": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+            "requires": {
+                "to-regex-range": "^5.0.1"
+            }
+        },
+        "finalhandler": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+            "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+            "requires": {
+                "debug": "2.6.9",
+                "encodeurl": "~1.0.2",
+                "escape-html": "~1.0.3",
+                "on-finished": "~2.3.0",
+                "parseurl": "~1.3.3",
+                "statuses": "~1.5.0",
+                "unpipe": "~1.0.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "find-cache-dir": {
+            "version": "3.3.1",
+            "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+            "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
+            "requires": {
+                "commondir": "^1.0.1",
+                "make-dir": "^3.0.2",
+                "pkg-dir": "^4.1.0"
+            }
+        },
+        "find-up": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+            "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+            "requires": {
+                "locate-path": "^5.0.0",
+                "path-exists": "^4.0.0"
+            }
+        },
+        "find-versions": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
+            "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+            "requires": {
+                "semver-regex": "^2.0.0"
+            }
+        },
+        "flat-cache": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+            "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+            "requires": {
+                "flatted": "^2.0.0",
+                "rimraf": "2.6.3",
+                "write": "1.0.3"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.6.3",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+                    "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                }
+            }
+        },
+        "flatted": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+            "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
+        },
+        "flush-write-stream": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+            "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.3.6"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "follow-redirects": {
+            "version": "1.13.2",
+            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz",
+            "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA=="
+        },
+        "for-in": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+            "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+        },
+        "forever-agent": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+            "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+        },
+        "form-data": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+            "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+            "requires": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.8",
+                "mime-types": "^2.1.12"
+            }
+        },
+        "forwarded": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+            "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+        },
+        "fragment-cache": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+            "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+            "requires": {
+                "map-cache": "^0.2.2"
+            }
+        },
+        "fresh": {
+            "version": "0.5.2",
+            "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+            "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+        },
+        "from2": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+            "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+            "requires": {
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.0.0"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "fs-capacitor": {
+            "version": "6.2.0",
+            "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz",
+            "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw=="
+        },
+        "fs-constants": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+            "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+        },
+        "fs-exists-cached": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
+            "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84="
+        },
+        "fs-extra": {
+            "version": "8.1.0",
+            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+            "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+            "requires": {
+                "graceful-fs": "^4.2.0",
+                "jsonfile": "^4.0.0",
+                "universalify": "^0.1.0"
+            }
+        },
+        "fs-minipass": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+            "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+            "requires": {
+                "minipass": "^3.0.0"
+            }
+        },
+        "fs-write-stream-atomic": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+            "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "iferr": "^0.1.5",
+                "imurmurhash": "^0.1.4",
+                "readable-stream": "1 || 2"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "fs.realpath": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+        },
+        "fsevents": {
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+            "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+            "optional": true
+        },
+        "fstream": {
+            "version": "1.0.12",
+            "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+            "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "inherits": "~2.0.0",
+                "mkdirp": ">=0.5 0",
+                "rimraf": "2"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                }
+            }
+        },
+        "function-bind": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+            "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+        },
+        "functional-red-black-tree": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+            "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+        },
+        "gatsby": {
+            "version": "2.32.4",
+            "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.32.4.tgz",
+            "integrity": "sha512-Jpqp8pwQJab6fpGdB3OmJk3UXqPvmYHH6YugF9CYfsTyJXy3yoOSxJ6hMzZeZxEnxeJ5RnJlGRyMEZJtpmy3ZQ==",
+            "requires": {
+                "@babel/code-frame": "^7.10.4",
+                "@babel/core": "^7.12.3",
+                "@babel/parser": "^7.12.5",
+                "@babel/runtime": "^7.12.5",
+                "@babel/traverse": "^7.12.5",
+                "@babel/types": "^7.12.6",
+                "@hapi/joi": "^15.1.1",
+                "@mikaelkristiansson/domready": "^1.0.10",
+                "@nodelib/fs.walk": "^1.2.4",
+                "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2",
+                "@pmmmwh/react-refresh-webpack-plugin": "^0.4.1",
+                "@reach/router": "^1.3.4",
+                "@types/http-proxy": "^1.17.4",
+                "@typescript-eslint/eslint-plugin": "^2.24.0",
+                "@typescript-eslint/parser": "^2.24.0",
+                "address": "1.1.2",
+                "anser": "^2.0.1",
+                "ansi-html": "^0.0.7",
+                "autoprefixer": "^9.8.4",
+                "axios": "^0.21.1",
+                "babel-core": "7.0.0-bridge.0",
+                "babel-eslint": "^10.1.0",
+                "babel-loader": "^8.1.0",
+                "babel-plugin-add-module-exports": "^1.0.4",
+                "babel-plugin-dynamic-import-node": "^2.3.3",
+                "babel-plugin-lodash": "^3.3.4",
+                "babel-plugin-remove-graphql-queries": "^2.16.0",
+                "babel-preset-gatsby": "^0.12.1",
+                "better-opn": "^2.0.0",
+                "better-queue": "^3.8.10",
+                "bluebird": "^3.7.2",
+                "body-parser": "^1.19.0",
+                "browserslist": "^4.12.2",
+                "cache-manager": "^2.11.1",
+                "chalk": "^4.1.0",
+                "chokidar": "^3.4.2",
+                "common-tags": "^1.8.0",
+                "compression": "^1.7.4",
+                "convert-hrtime": "^3.0.0",
+                "copyfiles": "^2.3.0",
+                "core-js": "^3.6.5",
+                "cors": "^2.8.5",
+                "css-loader": "^1.0.1",
+                "date-fns": "^2.14.0",
+                "debug": "^3.2.7",
+                "del": "^5.1.0",
+                "detect-port": "^1.3.0",
+                "devcert": "^1.1.3",
+                "dotenv": "^8.2.0",
+                "eslint": "^6.8.0",
+                "eslint-config-react-app": "^5.2.1",
+                "eslint-loader": "^2.2.1",
+                "eslint-plugin-flowtype": "^3.13.0",
+                "eslint-plugin-graphql": "^4.0.0",
+                "eslint-plugin-import": "^2.22.0",
+                "eslint-plugin-jsx-a11y": "^6.3.1",
+                "eslint-plugin-react": "^7.20.6",
+                "eslint-plugin-react-hooks": "^1.7.0",
+                "event-source-polyfill": "^1.0.15",
+                "execa": "^4.0.3",
+                "express": "^4.17.1",
+                "express-graphql": "^0.9.0",
+                "fastest-levenshtein": "^1.0.12",
+                "fastq": "^1.10.0",
+                "file-loader": "^1.1.11",
+                "find-cache-dir": "^3.3.1",
+                "fs-exists-cached": "1.0.0",
+                "fs-extra": "^8.1.0",
+                "gatsby-cli": "^2.19.1",
+                "gatsby-core-utils": "^1.10.0",
+                "gatsby-graphiql-explorer": "^0.11.0",
+                "gatsby-legacy-polyfills": "^0.7.0",
+                "gatsby-link": "^2.11.0",
+                "gatsby-plugin-page-creator": "^2.10.0",
+                "gatsby-plugin-typescript": "^2.12.0",
+                "gatsby-plugin-utils": "^0.9.0",
+                "gatsby-react-router-scroll": "^3.7.0",
+                "gatsby-telemetry": "^1.10.0",
+                "glob": "^7.1.6",
+                "got": "8.3.2",
+                "graphql": "^14.6.0",
+                "graphql-compose": "^6.3.8",
+                "graphql-playground-middleware-express": "^1.7.18",
+                "hasha": "^5.2.0",
+                "http-proxy": "^1.18.1",
+                "invariant": "^2.2.4",
+                "is-relative": "^1.0.0",
+                "is-relative-url": "^3.0.0",
+                "jest-worker": "^24.9.0",
+                "joi": "^17.2.1",
+                "json-loader": "^0.5.7",
+                "json-stringify-safe": "^5.0.1",
+                "latest-version": "5.1.0",
+                "lodash": "^4.17.20",
+                "md5-file": "^5.0.0",
+                "meant": "^1.0.1",
+                "memoizee": "^0.4.15",
+                "micromatch": "^4.0.2",
+                "mime": "^2.4.6",
+                "mini-css-extract-plugin": "^0.11.2",
+                "mitt": "^1.2.0",
+                "mkdirp": "^0.5.1",
+                "moment": "^2.27.0",
+                "name-all-modules-plugin": "^1.0.1",
+                "normalize-path": "^3.0.0",
+                "null-loader": "^3.0.0",
+                "opentracing": "^0.14.4",
+                "optimize-css-assets-webpack-plugin": "^5.0.3",
+                "p-defer": "^3.0.0",
+                "parseurl": "^1.3.3",
+                "physical-cpu-count": "^2.0.0",
+                "pnp-webpack-plugin": "^1.6.4",
+                "postcss-flexbugs-fixes": "^4.2.1",
+                "postcss-loader": "^3.0.0",
+                "prompts": "^2.3.2",
+                "prop-types": "^15.7.2",
+                "query-string": "^6.13.1",
+                "raw-loader": "^0.5.1",
+                "react-dev-utils": "^4.2.3",
+                "react-error-overlay": "^3.0.0",
+                "react-hot-loader": "^4.12.21",
+                "react-refresh": "^0.8.3",
+                "redux": "^4.0.5",
+                "redux-thunk": "^2.3.0",
+                "semver": "^7.3.2",
+                "shallow-compare": "^1.2.2",
+                "signal-exit": "^3.0.3",
+                "slugify": "^1.4.4",
+                "socket.io": "2.3.0",
+                "socket.io-client": "2.3.0",
+                "source-map": "^0.7.3",
+                "source-map-support": "^0.5.19",
+                "st": "^2.0.0",
+                "stack-trace": "^0.0.10",
+                "string-similarity": "^1.2.2",
+                "strip-ansi": "^5.2.0",
+                "style-loader": "^0.23.1",
+                "terser-webpack-plugin": "^2.3.8",
+                "tmp": "^0.2.1",
+                "true-case-path": "^2.2.1",
+                "type-of": "^2.0.1",
+                "url-loader": "^1.1.2",
+                "util.promisify": "^1.0.1",
+                "uuid": "3.4.0",
+                "v8-compile-cache": "^2.2.0",
+                "webpack": "^4.44.1",
+                "webpack-dev-middleware": "^3.7.2",
+                "webpack-dev-server": "^3.11.2",
+                "webpack-hot-middleware": "^2.25.0",
+                "webpack-merge": "^4.2.2",
+                "webpack-stats-plugin": "^0.3.2",
+                "webpack-virtual-modules": "^0.2.2",
+                "xstate": "^4.11.0",
+                "yaml-loader": "^0.6.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+                    "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "cliui": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+                    "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+                    "requires": {
+                        "string-width": "^4.2.0",
+                        "strip-ansi": "^6.0.0",
+                        "wrap-ansi": "^6.2.0"
+                    },
+                    "dependencies": {
+                        "strip-ansi": {
+                            "version": "6.0.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                            "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                            "requires": {
+                                "ansi-regex": "^5.0.0"
+                            }
+                        }
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "core-js": {
+                    "version": "3.9.0",
+                    "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz",
+                    "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ=="
+                },
+                "cross-spawn": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+                    "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+                    "requires": {
+                        "path-key": "^3.1.0",
+                        "shebang-command": "^2.0.0",
+                        "which": "^2.0.1"
+                    }
+                },
+                "fastq": {
+                    "version": "1.10.1",
+                    "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz",
+                    "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==",
+                    "requires": {
+                        "reusify": "^1.0.4"
+                    }
+                },
+                "gatsby-cli": {
+                    "version": "2.19.1",
+                    "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.19.1.tgz",
+                    "integrity": "sha512-lJ+0HgcTGVmEzkaPVTeqVQUxpt3oW3ad0p1hcYzViVtjkGOBxIQdD11yJiC9ZvmKi9FWW7e/tFTdrMEylFLmIA==",
+                    "requires": {
+                        "@babel/code-frame": "^7.10.4",
+                        "@hapi/joi": "^15.1.1",
+                        "@types/common-tags": "^1.8.0",
+                        "better-opn": "^2.0.0",
+                        "chalk": "^4.1.0",
+                        "clipboardy": "^2.3.0",
+                        "common-tags": "^1.8.0",
+                        "configstore": "^5.0.1",
+                        "convert-hrtime": "^3.0.0",
+                        "create-gatsby": "^0.5.1",
+                        "envinfo": "^7.7.3",
+                        "execa": "^3.4.0",
+                        "fs-exists-cached": "^1.0.0",
+                        "fs-extra": "^8.1.0",
+                        "gatsby-core-utils": "^1.10.0",
+                        "gatsby-recipes": "^0.9.1",
+                        "gatsby-telemetry": "^1.10.0",
+                        "hosted-git-info": "^3.0.6",
+                        "is-valid-path": "^0.1.1",
+                        "lodash": "^4.17.20",
+                        "meant": "^1.0.2",
+                        "node-fetch": "^2.6.1",
+                        "opentracing": "^0.14.4",
+                        "pretty-error": "^2.1.1",
+                        "progress": "^2.0.3",
+                        "prompts": "^2.3.2",
+                        "redux": "^4.0.5",
+                        "resolve-cwd": "^3.0.0",
+                        "semver": "^7.3.2",
+                        "signal-exit": "^3.0.3",
+                        "source-map": "0.7.3",
+                        "stack-trace": "^0.0.10",
+                        "strip-ansi": "^5.2.0",
+                        "update-notifier": "^5.0.1",
+                        "uuid": "3.4.0",
+                        "yargs": "^15.4.1",
+                        "yoga-layout-prebuilt": "^1.9.6",
+                        "yurnalist": "^2.1.0"
+                    },
+                    "dependencies": {
+                        "execa": {
+                            "version": "3.4.0",
+                            "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+                            "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
+                            "requires": {
+                                "cross-spawn": "^7.0.0",
+                                "get-stream": "^5.0.0",
+                                "human-signals": "^1.1.1",
+                                "is-stream": "^2.0.0",
+                                "merge-stream": "^2.0.0",
+                                "npm-run-path": "^4.0.0",
+                                "onetime": "^5.1.0",
+                                "p-finally": "^2.0.0",
+                                "signal-exit": "^3.0.2",
+                                "strip-final-newline": "^2.0.0"
+                            }
+                        }
+                    }
+                },
+                "gatsby-core-utils": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz",
+                    "integrity": "sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ==",
+                    "requires": {
+                        "ci-info": "2.0.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "node-object-hash": "^2.0.0",
+                        "proper-lockfile": "^4.1.1",
+                        "tmp": "^0.2.1",
+                        "xdg-basedir": "^4.0.0"
+                    }
+                },
+                "gatsby-plugin-utils": {
+                    "version": "0.9.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-0.9.0.tgz",
+                    "integrity": "sha512-InM8PNHtx1kF87qQOlf4pVeNA8lSIsvSjImvN6dvpUjeQqOMRN1avY0W9Trh6LKTF/keWWj975Gk8Vcr+PYyDA==",
+                    "requires": {
+                        "joi": "^17.2.1"
+                    }
+                },
+                "gatsby-telemetry": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.0.tgz",
+                    "integrity": "sha512-lGUCwAASThIK5KtFwbVnQfthcKJRosxK70BrXy7c7h3FPSdbahy8DZvpuNz6beCAets3ZDGTXVzPGtzPZI1u6Q==",
+                    "requires": {
+                        "@babel/code-frame": "^7.10.4",
+                        "@babel/runtime": "^7.12.5",
+                        "@turist/fetch": "^7.1.7",
+                        "@turist/time": "^0.0.1",
+                        "async-retry-ng": "^2.0.1",
+                        "boxen": "^4.2.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "gatsby-core-utils": "^1.10.0",
+                        "git-up": "^4.0.2",
+                        "is-docker": "^2.1.1",
+                        "lodash": "^4.17.20",
+                        "node-fetch": "^2.6.1",
+                        "uuid": "3.4.0"
+                    }
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "hosted-git-info": {
+                    "version": "3.0.8",
+                    "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
+                    "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==",
+                    "requires": {
+                        "lru-cache": "^6.0.0"
+                    }
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "is-stream": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+                    "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+                },
+                "moment": {
+                    "version": "2.29.1",
+                    "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+                    "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+                },
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                },
+                "p-finally": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+                    "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw=="
+                },
+                "path-key": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+                    "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+                },
+                "shebang-command": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+                    "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+                    "requires": {
+                        "shebang-regex": "^3.0.0"
+                    }
+                },
+                "shebang-regex": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+                    "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+                },
+                "source-map": {
+                    "version": "0.7.3",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+                    "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    },
+                    "dependencies": {
+                        "strip-ansi": {
+                            "version": "6.0.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                            "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                            "requires": {
+                                "ansi-regex": "^5.0.0"
+                            }
+                        }
+                    }
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                },
+                "which": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+                    "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+                    "requires": {
+                        "isexe": "^2.0.0"
+                    }
+                },
+                "wrap-ansi": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+                    "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+                    "requires": {
+                        "ansi-styles": "^4.0.0",
+                        "string-width": "^4.1.0",
+                        "strip-ansi": "^6.0.0"
+                    },
+                    "dependencies": {
+                        "strip-ansi": {
+                            "version": "6.0.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                            "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                            "requires": {
+                                "ansi-regex": "^5.0.0"
+                            }
+                        }
+                    }
+                },
+                "y18n": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+                    "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
+                },
+                "yargs": {
+                    "version": "15.4.1",
+                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+                    "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+                    "requires": {
+                        "cliui": "^6.0.0",
+                        "decamelize": "^1.2.0",
+                        "find-up": "^4.1.0",
+                        "get-caller-file": "^2.0.1",
+                        "require-directory": "^2.1.1",
+                        "require-main-filename": "^2.0.0",
+                        "set-blocking": "^2.0.0",
+                        "string-width": "^4.2.0",
+                        "which-module": "^2.0.0",
+                        "y18n": "^4.0.0",
+                        "yargs-parser": "^18.1.2"
+                    }
+                },
+                "yargs-parser": {
+                    "version": "18.1.3",
+                    "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+                    "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+                    "requires": {
+                        "camelcase": "^5.0.0",
+                        "decamelize": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "gatsby-core-utils": {
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.6.0.tgz",
+            "integrity": "sha512-jGaXDPbXOkP5Ct7pcOTsx0C0WTvIjSBVlHp0oBIv6rTw7DP498G9RAytqOT8z3uAf1PzWjAcUEMGNdicVucrxg==",
+            "requires": {
+                "ci-info": "2.0.0",
+                "configstore": "^5.0.1",
+                "fs-extra": "^8.1.0",
+                "node-object-hash": "^2.0.0",
+                "proper-lockfile": "^4.1.1",
+                "tmp": "^0.2.1",
+                "xdg-basedir": "^4.0.0"
+            }
+        },
+        "gatsby-graphiql-explorer": {
+            "version": "0.11.0",
+            "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.11.0.tgz",
+            "integrity": "sha512-mmxQhQSDUkbtOhQUek9a9sSg6LpiQUytNNR2hec8iklau2D4MDA5CvHTk9GUGhjdUgtnHSe/MPyZVJGmXSnYAA==",
+            "requires": {
+                "@babel/runtime": "^7.12.5"
+            }
+        },
+        "gatsby-image": {
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/gatsby-image/-/gatsby-image-2.7.0.tgz",
+            "integrity": "sha512-Ae5teH/iPF9n7NKQP62r5kDz6Rhv4YXpEsUdptRsRH6ioeykGtO1NcYjcsHWo24KrM3fd06LKU9LiGJ5pLrQgg==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "object-fit-images": "^3.2.4",
+                "prop-types": "^15.7.2"
+            }
+        },
+        "gatsby-legacy-polyfills": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-0.7.0.tgz",
+            "integrity": "sha512-fHDJeFib1iNaFuNRMWOpTmu2aw0AZ1ViIzwY2ar4kL3X3fYDL4RLnoBaw6Fcyc/sCCYHdBDSGzb/imvsddkRaA==",
+            "requires": {
+                "core-js-compat": "^3.6.5"
+            }
+        },
+        "gatsby-link": {
+            "version": "2.11.0",
+            "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.11.0.tgz",
+            "integrity": "sha512-AYXxndlSx5mnYv+/PBPdPBRvdv1LeSGE3WO8uYj2ReYDSbhiAlF3KKz30D62ErartXP0deySPtRKx4Dd3nCFYw==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "@types/reach__router": "^1.3.7",
+                "prop-types": "^15.7.2"
+            }
+        },
+        "gatsby-page-utils": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.9.0.tgz",
+            "integrity": "sha512-79zJtMV18IpChR5Zxl4VbChWgmdzIwg0CTseywnR+gSh2RDDfy81UerttpvSMQcQOv3gezeHxikT3CeopA8Jpg==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "bluebird": "^3.7.2",
+                "chokidar": "^3.5.1",
+                "fs-exists-cached": "^1.0.0",
+                "gatsby-core-utils": "^1.10.0",
+                "glob": "^7.1.6",
+                "lodash": "^4.17.20",
+                "micromatch": "^4.0.2"
+            },
+            "dependencies": {
+                "chokidar": {
+                    "version": "3.5.1",
+                    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+                    "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+                    "requires": {
+                        "anymatch": "~3.1.1",
+                        "braces": "~3.0.2",
+                        "fsevents": "~2.3.1",
+                        "glob-parent": "~5.1.0",
+                        "is-binary-path": "~2.1.0",
+                        "is-glob": "~4.0.1",
+                        "normalize-path": "~3.0.0",
+                        "readdirp": "~3.5.0"
+                    }
+                },
+                "gatsby-core-utils": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz",
+                    "integrity": "sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ==",
+                    "requires": {
+                        "ci-info": "2.0.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "node-object-hash": "^2.0.0",
+                        "proper-lockfile": "^4.1.1",
+                        "tmp": "^0.2.1",
+                        "xdg-basedir": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-plugin-manifest": {
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.8.0.tgz",
+            "integrity": "sha512-NNHMfVA28BdMI2aGmdl6ra7sDe9lUOUsVrgK5mpWfIA+VA4hYSzvbGaQ3kj50gD9WscaTmgpZEjewSlOPnGSFw==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "gatsby-core-utils": "^1.6.0",
+                "gatsby-plugin-utils": "^0.5.0",
+                "semver": "^7.3.2",
+                "sharp": "^0.26.3"
+            }
+        },
+        "gatsby-plugin-offline": {
+            "version": "2.2.10",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-2.2.10.tgz",
+            "integrity": "sha512-S+fzmu/7vPDyZyZLMpiQniQllnjgBx87k8Ii00Nea6oij9TlEYpRVTFEtJO+6P8QyF20PxoKvq0ZNmuxK9mAiw==",
+            "requires": {
+                "@babel/runtime": "^7.5.5",
+                "cheerio": "^1.0.0-rc.3",
+                "idb-keyval": "^3.2.0",
+                "lodash": "^4.17.15",
+                "slash": "^3.0.0",
+                "workbox-build": "^3.6.3"
+            }
+        },
+        "gatsby-plugin-page-creator": {
+            "version": "2.10.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.0.tgz",
+            "integrity": "sha512-lOzHJpzKEs6DM8Jxci3VozNIxcCTDTwRP5ypK5+7Qx3TUVzcpW7MMgUiwLo9G1kznN2YPe9cuoiTj5wNBjdEfA==",
+            "requires": {
+                "@babel/traverse": "^7.12.5",
+                "@sindresorhus/slugify": "^1.1.0",
+                "chokidar": "^3.5.1",
+                "fs-exists-cached": "^1.0.0",
+                "gatsby-page-utils": "^0.9.0",
+                "gatsby-telemetry": "^1.10.0",
+                "globby": "^11.0.2",
+                "lodash": "^4.17.20"
+            },
+            "dependencies": {
+                "chokidar": {
+                    "version": "3.5.1",
+                    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+                    "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+                    "requires": {
+                        "anymatch": "~3.1.1",
+                        "braces": "~3.0.2",
+                        "fsevents": "~2.3.1",
+                        "glob-parent": "~5.1.0",
+                        "is-binary-path": "~2.1.0",
+                        "is-glob": "~4.0.1",
+                        "normalize-path": "~3.0.0",
+                        "readdirp": "~3.5.0"
+                    }
+                },
+                "gatsby-core-utils": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz",
+                    "integrity": "sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ==",
+                    "requires": {
+                        "ci-info": "2.0.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "node-object-hash": "^2.0.0",
+                        "proper-lockfile": "^4.1.1",
+                        "tmp": "^0.2.1",
+                        "xdg-basedir": "^4.0.0"
+                    }
+                },
+                "gatsby-telemetry": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.0.tgz",
+                    "integrity": "sha512-lGUCwAASThIK5KtFwbVnQfthcKJRosxK70BrXy7c7h3FPSdbahy8DZvpuNz6beCAets3ZDGTXVzPGtzPZI1u6Q==",
+                    "requires": {
+                        "@babel/code-frame": "^7.10.4",
+                        "@babel/runtime": "^7.12.5",
+                        "@turist/fetch": "^7.1.7",
+                        "@turist/time": "^0.0.1",
+                        "async-retry-ng": "^2.0.1",
+                        "boxen": "^4.2.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "gatsby-core-utils": "^1.10.0",
+                        "git-up": "^4.0.2",
+                        "is-docker": "^2.1.1",
+                        "lodash": "^4.17.20",
+                        "node-fetch": "^2.6.1",
+                        "uuid": "3.4.0"
+                    }
+                },
+                "globby": {
+                    "version": "11.0.2",
+                    "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz",
+                    "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==",
+                    "requires": {
+                        "array-union": "^2.1.0",
+                        "dir-glob": "^3.0.1",
+                        "fast-glob": "^3.1.1",
+                        "ignore": "^5.1.4",
+                        "merge2": "^1.3.0",
+                        "slash": "^3.0.0"
+                    }
+                },
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                }
+            }
+        },
+        "gatsby-plugin-plausible": {
+            "version": "0.0.6",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-plausible/-/gatsby-plugin-plausible-0.0.6.tgz",
+            "integrity": "sha512-qUdPQ3haeX2DIywGZ2boMpmFAnSbWzqS9cG9/OO0mWLigA0sDLWwGkpHIAvrfepgbB9U/roLtXflctBwOIxtcQ==",
+            "requires": {
+                "@babel/runtime": "^7.9.2",
+                "minimatch": "3.0.4",
+                "react": "^16.13.1"
+            }
+        },
+        "gatsby-plugin-react-helmet": {
+            "version": "3.6.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.6.0.tgz",
+            "integrity": "sha512-nuI9UyLuxaRRGiTbAkYW5EXEKqrRJiaAnTrmXhLf5btQZSG0EGVrRFtQeN9KTuCi43czenZ2IDcbBg5yf0p1Gg==",
+            "requires": {
+                "@babel/runtime": "^7.12.5"
+            }
+        },
+        "gatsby-plugin-react-svg": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-react-svg/-/gatsby-plugin-react-svg-2.1.2.tgz",
+            "integrity": "sha512-y2vqiI/+bW8UPNL8628NwoX6kHtM4WJz6CiHPc9fhvSUa2Y8wriFJnGl1K249/9RXomOUQhl7r7JOuVhweSl1w==",
+            "requires": {
+                "svg-react-loader": "^0.4.4"
+            }
+        },
+        "gatsby-plugin-sass": {
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-sass/-/gatsby-plugin-sass-2.7.0.tgz",
+            "integrity": "sha512-PPO5NgSoUySSLq41P6FDwx9oHrrB/Kb1zgn2lYugW5U81GuFl2fxvgq3nF1pyB2Nye0RMDla+EnrM6sf4nD60A==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "sass-loader": "^7.3.1"
+            }
+        },
+        "gatsby-plugin-sharp": {
+            "version": "2.10.1",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.10.1.tgz",
+            "integrity": "sha512-w1a4waIlAUb7SpfvMstVI8S2V/R5EECqSEQ3IUFtARqbp/9eGFMlgwBBmn4AEA8bsIp3Bwvl1T2lIqZoh+jgHA==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "async": "^3.2.0",
+                "bluebird": "^3.7.2",
+                "fs-extra": "^9.0.1",
+                "gatsby-core-utils": "^1.6.0",
+                "gatsby-telemetry": "^1.6.0",
+                "got": "^10.7.0",
+                "imagemin": "^7.0.1",
+                "imagemin-mozjpeg": "^9.0.0",
+                "imagemin-pngquant": "^9.0.1",
+                "lodash": "^4.17.20",
+                "mini-svg-data-uri": "^1.2.3",
+                "potrace": "^2.1.8",
+                "probe-image-size": "^5.0.0",
+                "progress": "^2.0.3",
+                "semver": "^7.3.2",
+                "sharp": "^0.26.3",
+                "svgo": "1.3.2",
+                "uuid": "3.4.0"
+            },
+            "dependencies": {
+                "@sindresorhus/is": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz",
+                    "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg=="
+                },
+                "@szmarczak/http-timer": {
+                    "version": "4.0.5",
+                    "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz",
+                    "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==",
+                    "requires": {
+                        "defer-to-connect": "^2.0.0"
+                    }
+                },
+                "async": {
+                    "version": "3.2.0",
+                    "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
+                    "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
+                },
+                "cacheable-request": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz",
+                    "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==",
+                    "requires": {
+                        "clone-response": "^1.0.2",
+                        "get-stream": "^5.1.0",
+                        "http-cache-semantics": "^4.0.0",
+                        "keyv": "^4.0.0",
+                        "lowercase-keys": "^2.0.0",
+                        "normalize-url": "^4.1.0",
+                        "responselike": "^2.0.0"
+                    }
+                },
+                "decompress-response": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz",
+                    "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==",
+                    "requires": {
+                        "mimic-response": "^2.0.0"
+                    }
+                },
+                "defer-to-connect": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz",
+                    "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="
+                },
+                "fs-extra": {
+                    "version": "9.0.1",
+                    "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+                    "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+                    "requires": {
+                        "at-least-node": "^1.0.0",
+                        "graceful-fs": "^4.2.0",
+                        "jsonfile": "^6.0.1",
+                        "universalify": "^1.0.0"
+                    }
+                },
+                "got": {
+                    "version": "10.7.0",
+                    "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz",
+                    "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==",
+                    "requires": {
+                        "@sindresorhus/is": "^2.0.0",
+                        "@szmarczak/http-timer": "^4.0.0",
+                        "@types/cacheable-request": "^6.0.1",
+                        "cacheable-lookup": "^2.0.0",
+                        "cacheable-request": "^7.0.1",
+                        "decompress-response": "^5.0.0",
+                        "duplexer3": "^0.1.4",
+                        "get-stream": "^5.0.0",
+                        "lowercase-keys": "^2.0.0",
+                        "mimic-response": "^2.1.0",
+                        "p-cancelable": "^2.0.0",
+                        "p-event": "^4.0.0",
+                        "responselike": "^2.0.0",
+                        "to-readable-stream": "^2.0.0",
+                        "type-fest": "^0.10.0"
+                    }
+                },
+                "json-buffer": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+                    "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+                },
+                "jsonfile": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+                    "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+                    "requires": {
+                        "graceful-fs": "^4.1.6",
+                        "universalify": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "universalify": {
+                            "version": "2.0.0",
+                            "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+                            "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+                        }
+                    }
+                },
+                "keyv": {
+                    "version": "4.0.3",
+                    "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
+                    "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
+                    "requires": {
+                        "json-buffer": "3.0.1"
+                    }
+                },
+                "lowercase-keys": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+                    "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+                },
+                "mimic-response": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+                    "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
+                },
+                "normalize-url": {
+                    "version": "4.5.0",
+                    "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+                    "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
+                },
+                "p-cancelable": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz",
+                    "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="
+                },
+                "responselike": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
+                    "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==",
+                    "requires": {
+                        "lowercase-keys": "^2.0.0"
+                    }
+                },
+                "to-readable-stream": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz",
+                    "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w=="
+                },
+                "type-fest": {
+                    "version": "0.10.0",
+                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz",
+                    "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw=="
+                },
+                "universalify": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+                    "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
+                }
+            }
+        },
+        "gatsby-plugin-sitemap": {
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.8.0.tgz",
+            "integrity": "sha512-svoPY57pwNnlvhtraXbHeEJYuR899QvszOkE05oho7HIqDn7SQMtuML2eFvk6uv7TTO6b0jyZ2l4oyQffbFfNw==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "common-tags": "^1.8.0",
+                "minimatch": "^3.0.4",
+                "pify": "^3.0.0",
+                "sitemap": "^1.13.0"
+            },
+            "dependencies": {
+                "pify": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                    "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                }
+            }
+        },
+        "gatsby-plugin-typescript": {
+            "version": "2.12.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.12.0.tgz",
+            "integrity": "sha512-Gb8mPdIgAmlxb/EgH7h5ewq3nMJ+oU640AyfTCAp9GtQspRztRRKjuGceJH3gDVq8bO6wFOWxdRVYIC2KZF9mw==",
+            "requires": {
+                "@babel/core": "^7.12.3",
+                "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+                "@babel/plugin-proposal-numeric-separator": "^7.12.5",
+                "@babel/plugin-proposal-optional-chaining": "^7.12.1",
+                "@babel/preset-typescript": "^7.12.1",
+                "@babel/runtime": "^7.12.5",
+                "babel-plugin-remove-graphql-queries": "^2.16.0"
+            }
+        },
+        "gatsby-plugin-utils": {
+            "version": "0.5.0",
+            "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-0.5.0.tgz",
+            "integrity": "sha512-Wvzt970TWr+cDdFdXjFmJ5rQEk9CbbbHzGo5GHOwfphXOTwp7/oKbTZoiGBm9M9Tf9Rdz6ph18j2ixdC0fy2Jw==",
+            "requires": {
+                "joi": "^17.2.1"
+            }
+        },
+        "gatsby-react-router-scroll": {
+            "version": "3.7.0",
+            "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-3.7.0.tgz",
+            "integrity": "sha512-8sm04EQac7fccJZlllFEo349wAlNEuPVu35juuL0hgMDTyWlk4nPwPH/ACdpn2MgpEmrTSfp2yPxyzaRKVyzeQ==",
+            "requires": {
+                "@babel/runtime": "^7.12.5"
+            }
+        },
+        "gatsby-recipes": {
+            "version": "0.9.1",
+            "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.1.tgz",
+            "integrity": "sha512-L0PPLbGSJxee+sR8hpCnoZOFSuKPwKKwwTDRohGOu6CtBN9LEdwIcLvwt6/9k7XmeWB32oUTHTnRS2zG+8rBxQ==",
+            "requires": {
+                "@babel/core": "^7.12.3",
+                "@babel/generator": "^7.12.5",
+                "@babel/helper-plugin-utils": "^7.10.4",
+                "@babel/plugin-proposal-optional-chaining": "^7.12.1",
+                "@babel/plugin-transform-react-jsx": "^7.12.5",
+                "@babel/standalone": "^7.12.6",
+                "@babel/template": "^7.10.4",
+                "@babel/types": "^7.12.6",
+                "@graphql-tools/schema": "^7.0.0",
+                "@graphql-tools/utils": "^7.0.2",
+                "@hapi/hoek": "8.x.x",
+                "@hapi/joi": "^15.1.1",
+                "better-queue": "^3.8.10",
+                "chokidar": "^3.4.2",
+                "contentful-management": "^7.5.1",
+                "cors": "^2.8.5",
+                "debug": "^4.3.1",
+                "detect-port": "^1.3.0",
+                "dotenv": "^8.2.0",
+                "execa": "^4.0.2",
+                "express": "^4.17.1",
+                "express-graphql": "^0.9.0",
+                "fs-extra": "^8.1.0",
+                "gatsby-core-utils": "^1.10.0",
+                "gatsby-telemetry": "^1.10.0",
+                "glob": "^7.1.6",
+                "graphql": "^14.6.0",
+                "graphql-compose": "^6.3.8",
+                "graphql-subscriptions": "^1.1.0",
+                "graphql-type-json": "^0.3.2",
+                "hicat": "^0.8.0",
+                "is-binary-path": "^2.1.0",
+                "is-url": "^1.2.4",
+                "jest-diff": "^25.5.0",
+                "lock": "^1.0.0",
+                "lodash": "^4.17.20",
+                "mitt": "^1.2.0",
+                "mkdirp": "^0.5.1",
+                "node-fetch": "^2.5.0",
+                "pkg-dir": "^4.2.0",
+                "prettier": "^2.0.5",
+                "prop-types": "^15.6.1",
+                "remark-mdx": "^2.0.0-next.4",
+                "remark-mdxjs": "^2.0.0-next.4",
+                "remark-parse": "^6.0.3",
+                "remark-stringify": "^8.1.0",
+                "resolve-from": "^5.0.0",
+                "semver": "^7.3.2",
+                "single-trailing-newline": "^1.0.0",
+                "strip-ansi": "^6.0.0",
+                "style-to-object": "^0.3.0",
+                "unified": "^8.4.2",
+                "unist-util-remove": "^2.0.0",
+                "unist-util-visit": "^2.0.2",
+                "uuid": "3.4.0",
+                "ws": "^7.3.0",
+                "xstate": "^4.9.1",
+                "yoga-layout-prebuilt": "^1.9.6"
+            },
+            "dependencies": {
+                "@graphql-tools/utils": {
+                    "version": "7.5.0",
+                    "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.5.0.tgz",
+                    "integrity": "sha512-8f//RSqHmKRdg9A3GHlZdxzlVfF/938ZD9edXLW7EriSABg1BXu3veru9W02VqORypArb2S/Tyeyvsk2gForqA==",
+                    "requires": {
+                        "@ardatan/aggregate-error": "0.0.6",
+                        "camel-case": "4.1.2",
+                        "tslib": "~2.1.0"
+                    }
+                },
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                },
+                "gatsby-core-utils": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.0.tgz",
+                    "integrity": "sha512-uI5gJXmVHegn8E/vttoX0BaXRJPC73RzxuZDtl2U5WBEgeg+VVkKCmNVQE9Xk+Qstm2Wd6RU+QJ4LMx5ywYZhQ==",
+                    "requires": {
+                        "ci-info": "2.0.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "node-object-hash": "^2.0.0",
+                        "proper-lockfile": "^4.1.1",
+                        "tmp": "^0.2.1",
+                        "xdg-basedir": "^4.0.0"
+                    }
+                },
+                "gatsby-telemetry": {
+                    "version": "1.10.0",
+                    "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.0.tgz",
+                    "integrity": "sha512-lGUCwAASThIK5KtFwbVnQfthcKJRosxK70BrXy7c7h3FPSdbahy8DZvpuNz6beCAets3ZDGTXVzPGtzPZI1u6Q==",
+                    "requires": {
+                        "@babel/code-frame": "^7.10.4",
+                        "@babel/runtime": "^7.12.5",
+                        "@turist/fetch": "^7.1.7",
+                        "@turist/time": "^0.0.1",
+                        "async-retry-ng": "^2.0.1",
+                        "boxen": "^4.2.0",
+                        "configstore": "^5.0.1",
+                        "fs-extra": "^8.1.0",
+                        "gatsby-core-utils": "^1.10.0",
+                        "git-up": "^4.0.2",
+                        "is-docker": "^2.1.1",
+                        "lodash": "^4.17.20",
+                        "node-fetch": "^2.6.1",
+                        "uuid": "3.4.0"
+                    }
+                },
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                },
+                "prettier": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz",
+                    "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q=="
+                },
+                "resolve-from": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+                    "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                },
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "gatsby-remark-component": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-component/-/gatsby-remark-component-1.1.3.tgz",
+            "integrity": "sha512-bRJ2r7FgdH12+ahsKSFe+OWPTmjw8lBD+S0ytm+p1M9Bfmq2Qai+ROacNAp7d18vZLEhRpzznWJgSU7gEejVXg==",
+            "requires": {
+                "unist-util-visit": "^1.1.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-copy-linked-files": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-2.6.0.tgz",
+            "integrity": "sha512-MDTrATgfhycpZ6tMfxCPF7Tiypg+skXQrWAehHQdK89sIveUNPCQ+ttihYOwxvg0JZXyQ6QvaPifPqZ1qljvEw==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "cheerio": "^1.0.0-rc.3",
+                "fs-extra": "^8.1.0",
+                "is-relative-url": "^3.0.0",
+                "lodash": "^4.17.20",
+                "path-is-inside": "^1.0.2",
+                "probe-image-size": "^5.0.0",
+                "unist-util-visit": "^1.4.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-images": {
+            "version": "3.7.1",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-3.7.1.tgz",
+            "integrity": "sha512-02lUP2CK6ftlO8L/TDowgdUiaQikC7w7sL+suBXoeTvxWBafG0KUkPQ+0n0Kcqbj62e4vcphGFHxEWoAAmsbIg==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "chalk": "^4.1.0",
+                "cheerio": "^1.0.0-rc.3",
+                "gatsby-core-utils": "^1.6.0",
+                "is-relative-url": "^3.0.0",
+                "lodash": "^4.17.20",
+                "mdast-util-definitions": "^1.2.5",
+                "potrace": "^2.1.8",
+                "query-string": "^6.13.3",
+                "unist-util-select": "^1.5.0",
+                "unist-util-visit-parents": "^2.1.2"
+            },
+            "dependencies": {
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+                    "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-mathjax": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-mathjax/-/gatsby-remark-mathjax-1.0.0.tgz",
+            "integrity": "sha512-rWRuZGcUvlgNIhHkE/0xXYOR+nfDFBuJ5P8s669UqprTDlk0rfYIyrxGYmQi4Se3LBvrLAkvNQyLSQU+LT3IKA==",
+            "requires": {
+                "babel-runtime": "^6.26.0",
+                "remark-math": "^1.0.3",
+                "unist-util-visit": "^1.1.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-prismjs": {
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-prismjs/-/gatsby-remark-prismjs-3.9.0.tgz",
+            "integrity": "sha512-w6GadJ9fj5cmBcImeOhVqTKhYKBjh8DTO+yhy6QLSelDD8UIrLOmboHiCMhHXhuaqKjioXovcOQLJypeZf0orw==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "parse-numeric-range": "^0.0.2",
+                "unist-util-visit": "^1.4.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-smartypants": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-smartypants/-/gatsby-remark-smartypants-2.6.0.tgz",
+            "integrity": "sha512-cozL2fYjBIwQpI1OB8Jj1XaBSmcUhuknz1of9BFULAcR003C6u77hMo5YaZ9ieCEwHk7EfMCjKKCVddGAMgZ/w==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "retext": "^5.0.0",
+                "retext-smartypants": "^3.0.3",
+                "unist-util-visit": "^1.4.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-remark-unwrap-images": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/gatsby-remark-unwrap-images/-/gatsby-remark-unwrap-images-1.0.2.tgz",
+            "integrity": "sha512-kOatDaz6EcYJn6oEx97pim0JkzuN1epacmHuKP9kL7r3+y1dzvNQjrJMtmDZTqC6Q8LhXD2rrFhsYS3SerTHhw==",
+            "requires": {
+                "unist-util-remove": "^1.0.1",
+                "unist-util-visit": "^1.4.0"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-remove": {
+                    "version": "1.0.3",
+                    "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.3.tgz",
+                    "integrity": "sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "gatsby-source-filesystem": {
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.7.0.tgz",
+            "integrity": "sha512-SpIwHe89LLwgwNUEcHaRCe3J5+7ODgdJLh/PhJdSpmEzeHQRtLAfInNuoTMs8pJ53W+1HI/ph3/HXSAPddi/VA==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "better-queue": "^3.8.10",
+                "chokidar": "^3.4.3",
+                "file-type": "^16.0.0",
+                "fs-extra": "^8.1.0",
+                "gatsby-core-utils": "^1.6.0",
+                "got": "^9.6.0",
+                "md5-file": "^5.0.0",
+                "mime": "^2.4.6",
+                "pretty-bytes": "^5.4.1",
+                "progress": "^2.0.3",
+                "valid-url": "^1.0.9",
+                "xstate": "^4.14.0"
+            },
+            "dependencies": {
+                "file-type": {
+                    "version": "16.0.1",
+                    "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.0.1.tgz",
+                    "integrity": "sha512-rwXqMZiizJd0uXZE52KN2DtPBAV99qz9cUTHHt8pSyaQzgVYrHJGR0qt2p4N/yzHEL/tGrlB/TgawQb4Fnxxyw==",
+                    "requires": {
+                        "readable-web-to-node-stream": "^3.0.0",
+                        "strtok3": "^6.0.3",
+                        "token-types": "^2.0.0",
+                        "typedarray-to-buffer": "^3.1.5"
+                    }
+                },
+                "get-stream": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                    "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                    "requires": {
+                        "pump": "^3.0.0"
+                    }
+                },
+                "got": {
+                    "version": "9.6.0",
+                    "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+                    "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+                    "requires": {
+                        "@sindresorhus/is": "^0.14.0",
+                        "@szmarczak/http-timer": "^1.1.2",
+                        "cacheable-request": "^6.0.0",
+                        "decompress-response": "^3.3.0",
+                        "duplexer3": "^0.1.4",
+                        "get-stream": "^4.1.0",
+                        "lowercase-keys": "^1.0.1",
+                        "mimic-response": "^1.0.1",
+                        "p-cancelable": "^1.0.0",
+                        "to-readable-stream": "^1.0.0",
+                        "url-parse-lax": "^3.0.0"
+                    }
+                },
+                "pretty-bytes": {
+                    "version": "5.4.1",
+                    "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz",
+                    "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA=="
+                }
+            }
+        },
+        "gatsby-telemetry": {
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.6.0.tgz",
+            "integrity": "sha512-9bT40EqFU+oKJD0QUK6+MEwel7r8t9uI/9wlM5xU7P4qx2Ji66KJ1L0aCNgeZAHsdBF84K+J8tHnghr5A/7s7g==",
+            "requires": {
+                "@babel/code-frame": "^7.10.4",
+                "@babel/runtime": "^7.12.5",
+                "@turist/fetch": "^7.1.7",
+                "@turist/time": "^0.0.1",
+                "async-retry-ng": "^2.0.1",
+                "boxen": "^4.2.0",
+                "configstore": "^5.0.1",
+                "fs-extra": "^8.1.0",
+                "gatsby-core-utils": "^1.6.0",
+                "git-up": "^4.0.2",
+                "is-docker": "^2.1.1",
+                "lodash": "^4.17.20",
+                "node-fetch": "^2.6.1",
+                "uuid": "3.4.0"
+            },
+            "dependencies": {
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                }
+            }
+        },
+        "gatsby-transformer-remark": {
+            "version": "2.12.0",
+            "resolved": "https://registry.npmjs.org/gatsby-transformer-remark/-/gatsby-transformer-remark-2.12.0.tgz",
+            "integrity": "sha512-j9v2Feq9+9zNOVlfa7rNy/3V3ARVasJ6P+E1FOYBzZgFVN9rXmdd0Uze9difcNzyHs4ESVBrphfjHpnFvtae6Q==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "bluebird": "^3.7.2",
+                "gatsby-core-utils": "^1.6.0",
+                "gray-matter": "^4.0.2",
+                "hast-util-raw": "^4.0.0",
+                "hast-util-to-html": "^4.0.1",
+                "lodash": "^4.17.20",
+                "mdast-util-to-hast": "^3.0.4",
+                "mdast-util-to-string": "^1.1.0",
+                "mdast-util-toc": "^5.0",
+                "remark": "^10.0.1",
+                "remark-parse": "^6.0.3",
+                "remark-retext": "^3.1.3",
+                "remark-stringify": "6.0.4",
+                "retext-english": "^3.0.4",
+                "sanitize-html": "^1.27.5",
+                "underscore.string": "^3.3.5",
+                "unified": "^6.2.0",
+                "unist-util-remove-position": "^1.1.4",
+                "unist-util-select": "^1.5.0",
+                "unist-util-visit": "^1.4.1"
+            },
+            "dependencies": {
+                "dom-serializer": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
+                    "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
+                    "requires": {
+                        "domelementtype": "^2.0.1",
+                        "domhandler": "^4.0.0",
+                        "entities": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "domhandler": {
+                            "version": "4.0.0",
+                            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
+                            "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
+                            "requires": {
+                                "domelementtype": "^2.1.0"
+                            }
+                        }
+                    }
+                },
+                "domelementtype": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
+                    "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
+                },
+                "domhandler": {
+                    "version": "3.3.0",
+                    "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz",
+                    "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==",
+                    "requires": {
+                        "domelementtype": "^2.0.1"
+                    }
+                },
+                "domutils": {
+                    "version": "2.4.4",
+                    "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
+                    "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
+                    "requires": {
+                        "dom-serializer": "^1.0.1",
+                        "domelementtype": "^2.0.1",
+                        "domhandler": "^4.0.0"
+                    },
+                    "dependencies": {
+                        "domhandler": {
+                            "version": "4.0.0",
+                            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
+                            "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
+                            "requires": {
+                                "domelementtype": "^2.1.0"
+                            }
+                        }
+                    }
+                },
+                "entities": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
+                    "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
+                },
+                "htmlparser2": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz",
+                    "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==",
+                    "requires": {
+                        "domelementtype": "^2.0.1",
+                        "domhandler": "^3.0.0",
+                        "domutils": "^2.0.0",
+                        "entities": "^2.0.0"
+                    }
+                },
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "markdown-table": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
+                    "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
+                },
+                "mdast-util-compact": {
+                    "version": "1.0.4",
+                    "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz",
+                    "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==",
+                    "requires": {
+                        "unist-util-visit": "^1.1.0"
+                    }
+                },
+                "parse-entities": {
+                    "version": "1.2.2",
+                    "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
+                    "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
+                    "requires": {
+                        "character-entities": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "character-reference-invalid": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-decimal": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                },
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "remark-stringify": {
+                    "version": "6.0.4",
+                    "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz",
+                    "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
+                    "requires": {
+                        "ccount": "^1.0.0",
+                        "is-alphanumeric": "^1.0.0",
+                        "is-decimal": "^1.0.0",
+                        "is-whitespace-character": "^1.0.0",
+                        "longest-streak": "^2.0.1",
+                        "markdown-escapes": "^1.0.0",
+                        "markdown-table": "^1.1.0",
+                        "mdast-util-compact": "^1.0.0",
+                        "parse-entities": "^1.0.2",
+                        "repeat-string": "^1.5.4",
+                        "state-toggle": "^1.0.0",
+                        "stringify-entities": "^1.0.1",
+                        "unherit": "^1.0.4",
+                        "xtend": "^4.0.1"
+                    }
+                },
+                "replace-ext": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+                    "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+                },
+                "sanitize-html": {
+                    "version": "1.27.5",
+                    "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz",
+                    "integrity": "sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==",
+                    "requires": {
+                        "htmlparser2": "^4.1.0",
+                        "lodash": "^4.17.15",
+                        "parse-srcset": "^1.0.2",
+                        "postcss": "^7.0.27"
+                    }
+                },
+                "stringify-entities": {
+                    "version": "1.3.2",
+                    "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz",
+                    "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
+                    "requires": {
+                        "character-entities-html4": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                },
+                "unified": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
+                    "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
+                    "requires": {
+                        "bail": "^1.0.0",
+                        "extend": "^3.0.0",
+                        "is-plain-obj": "^1.1.0",
+                        "trough": "^1.0.0",
+                        "vfile": "^2.0.0",
+                        "x-is-string": "^0.1.0"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-stringify-position": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
+                    "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                },
+                "vfile": {
+                    "version": "2.3.0",
+                    "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
+                    "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
+                    "requires": {
+                        "is-buffer": "^1.1.4",
+                        "replace-ext": "1.0.0",
+                        "unist-util-stringify-position": "^1.0.0",
+                        "vfile-message": "^1.0.0"
+                    }
+                },
+                "vfile-message": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
+                    "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
+                    "requires": {
+                        "unist-util-stringify-position": "^1.1.1"
+                    }
+                }
+            }
+        },
+        "gatsby-transformer-sharp": {
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-2.8.0.tgz",
+            "integrity": "sha512-pxNKLKoUf6jP6NidZzuyp92wFHIJCddgmO9gmHUjfdOiNybJddY8fEx415YJov9JCk+wbaZQ/fQTq+aZ28vtkQ==",
+            "requires": {
+                "@babel/runtime": "^7.12.5",
+                "bluebird": "^3.7.2",
+                "fs-extra": "^9.0.1",
+                "potrace": "^2.1.8",
+                "probe-image-size": "^5.0.0",
+                "semver": "^7.3.2",
+                "sharp": "^0.26.3"
+            },
+            "dependencies": {
+                "fs-extra": {
+                    "version": "9.0.1",
+                    "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
+                    "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
+                    "requires": {
+                        "at-least-node": "^1.0.0",
+                        "graceful-fs": "^4.2.0",
+                        "jsonfile": "^6.0.1",
+                        "universalify": "^1.0.0"
+                    }
+                },
+                "jsonfile": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+                    "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+                    "requires": {
+                        "graceful-fs": "^4.1.6",
+                        "universalify": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "universalify": {
+                            "version": "2.0.0",
+                            "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+                            "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+                        }
+                    }
+                },
+                "universalify": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+                    "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
+                }
+            }
+        },
+        "gauge": {
+            "version": "2.7.4",
+            "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+            "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+            "requires": {
+                "aproba": "^1.0.3",
+                "console-control-strings": "^1.0.0",
+                "has-unicode": "^2.0.0",
+                "object-assign": "^4.1.0",
+                "signal-exit": "^3.0.0",
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1",
+                "wide-align": "^1.1.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+                    "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+                    "requires": {
+                        "number-is-nan": "^1.0.0"
+                    }
+                },
+                "string-width": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+                    "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+                    "requires": {
+                        "code-point-at": "^1.0.0",
+                        "is-fullwidth-code-point": "^1.0.0",
+                        "strip-ansi": "^3.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "gaze": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+            "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+            "requires": {
+                "globule": "^1.0.0"
+            }
+        },
+        "gensync": {
+            "version": "1.0.0-beta.2",
+            "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+            "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+        },
+        "get-caller-file": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+            "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+        },
+        "get-intrinsic": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
+            "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+            "requires": {
+                "function-bind": "^1.1.1",
+                "has": "^1.0.3",
+                "has-symbols": "^1.0.1"
+            }
+        },
+        "get-own-enumerable-property-symbols": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+            "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
+        },
+        "get-port": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+            "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
+        },
+        "get-proxy": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
+            "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
+            "requires": {
+                "npm-conf": "^1.1.0"
+            }
+        },
+        "get-stdin": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+            "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+        },
+        "get-stream": {
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+            "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+            "requires": {
+                "pump": "^3.0.0"
+            }
+        },
+        "get-value": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+            "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+        },
+        "getpass": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+            "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+            "requires": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "gifwrap": {
+            "version": "0.9.2",
+            "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz",
+            "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==",
+            "requires": {
+                "image-q": "^1.1.1",
+                "omggif": "^1.0.10"
+            }
+        },
+        "git-up": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz",
+            "integrity": "sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==",
+            "requires": {
+                "is-ssh": "^1.3.0",
+                "parse-url": "^5.0.0"
+            }
+        },
+        "github-from-package": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+            "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
+        },
+        "github-slugger": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz",
+            "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==",
+            "requires": {
+                "emoji-regex": ">=6.0.0 <=6.1.1"
+            },
+            "dependencies": {
+                "emoji-regex": {
+                    "version": "6.1.1",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz",
+                    "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4="
+                }
+            }
+        },
+        "glob": {
+            "version": "7.1.6",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+            "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+            "requires": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+            }
+        },
+        "glob-parent": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+            "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+            "requires": {
+                "is-glob": "^4.0.1"
+            }
+        },
+        "global": {
+            "version": "4.4.0",
+            "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+            "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
+            "requires": {
+                "min-document": "^2.19.0",
+                "process": "^0.11.10"
+            }
+        },
+        "global-dirs": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
+            "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
+            "requires": {
+                "ini": "2.0.0"
+            },
+            "dependencies": {
+                "ini": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+                    "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
+                }
+            }
+        },
+        "global-modules": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+            "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+            "requires": {
+                "global-prefix": "^1.0.1",
+                "is-windows": "^1.0.1",
+                "resolve-dir": "^1.0.0"
+            }
+        },
+        "global-prefix": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+            "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+            "requires": {
+                "expand-tilde": "^2.0.2",
+                "homedir-polyfill": "^1.0.1",
+                "ini": "^1.3.4",
+                "is-windows": "^1.0.1",
+                "which": "^1.2.14"
+            }
+        },
+        "globals": {
+            "version": "11.12.0",
+            "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+            "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+        },
+        "globby": {
+            "version": "10.0.2",
+            "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+            "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+            "requires": {
+                "@types/glob": "^7.1.1",
+                "array-union": "^2.1.0",
+                "dir-glob": "^3.0.1",
+                "fast-glob": "^3.0.3",
+                "glob": "^7.1.3",
+                "ignore": "^5.1.1",
+                "merge2": "^1.2.3",
+                "slash": "^3.0.0"
+            }
+        },
+        "globule": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz",
+            "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==",
+            "requires": {
+                "glob": "~7.1.1",
+                "lodash": "~4.17.10",
+                "minimatch": "~3.0.2"
+            }
+        },
+        "good-listener": {
+            "version": "1.2.2",
+            "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+            "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+            "optional": true,
+            "requires": {
+                "delegate": "^3.1.2"
+            }
+        },
+        "got": {
+            "version": "8.3.2",
+            "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
+            "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==",
+            "requires": {
+                "@sindresorhus/is": "^0.7.0",
+                "cacheable-request": "^2.1.1",
+                "decompress-response": "^3.3.0",
+                "duplexer3": "^0.1.4",
+                "get-stream": "^3.0.0",
+                "into-stream": "^3.1.0",
+                "is-retry-allowed": "^1.1.0",
+                "isurl": "^1.0.0-alpha5",
+                "lowercase-keys": "^1.0.0",
+                "mimic-response": "^1.0.0",
+                "p-cancelable": "^0.4.0",
+                "p-timeout": "^2.0.1",
+                "pify": "^3.0.0",
+                "safe-buffer": "^5.1.1",
+                "timed-out": "^4.0.1",
+                "url-parse-lax": "^3.0.0",
+                "url-to-options": "^1.0.1"
+            },
+            "dependencies": {
+                "@sindresorhus/is": {
+                    "version": "0.7.0",
+                    "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
+                    "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow=="
+                },
+                "cacheable-request": {
+                    "version": "2.1.4",
+                    "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
+                    "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=",
+                    "requires": {
+                        "clone-response": "1.0.2",
+                        "get-stream": "3.0.0",
+                        "http-cache-semantics": "3.8.1",
+                        "keyv": "3.0.0",
+                        "lowercase-keys": "1.0.0",
+                        "normalize-url": "2.0.1",
+                        "responselike": "1.0.2"
+                    },
+                    "dependencies": {
+                        "lowercase-keys": {
+                            "version": "1.0.0",
+                            "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+                            "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+                        }
+                    }
+                },
+                "get-stream": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+                    "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+                },
+                "http-cache-semantics": {
+                    "version": "3.8.1",
+                    "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+                    "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
+                },
+                "keyv": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
+                    "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==",
+                    "requires": {
+                        "json-buffer": "3.0.0"
+                    }
+                },
+                "normalize-url": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
+                    "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==",
+                    "requires": {
+                        "prepend-http": "^2.0.0",
+                        "query-string": "^5.0.1",
+                        "sort-keys": "^2.0.0"
+                    }
+                },
+                "p-cancelable": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz",
+                    "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ=="
+                },
+                "pify": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                    "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                },
+                "query-string": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+                    "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+                    "requires": {
+                        "decode-uri-component": "^0.2.0",
+                        "object-assign": "^4.1.0",
+                        "strict-uri-encode": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "graceful-fs": {
+            "version": "4.2.4",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+            "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+        },
+        "graphql": {
+            "version": "14.7.0",
+            "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz",
+            "integrity": "sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==",
+            "requires": {
+                "iterall": "^1.2.2"
+            }
+        },
+        "graphql-compose": {
+            "version": "6.3.8",
+            "resolved": "https://registry.npmjs.org/graphql-compose/-/graphql-compose-6.3.8.tgz",
+            "integrity": "sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA==",
+            "requires": {
+                "graphql-type-json": "^0.2.4",
+                "object-path": "^0.11.4"
+            },
+            "dependencies": {
+                "graphql-type-json": {
+                    "version": "0.2.4",
+                    "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.4.tgz",
+                    "integrity": "sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w=="
+                }
+            }
+        },
+        "graphql-config": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.2.0.tgz",
+            "integrity": "sha512-ygEKDeQNZKpm4137560n2oY3bGM0D5zyRsQVaJntKkufWdgPg6sb9/4J1zJW2y/yC1ortAbhNho09qmeJeLa9g==",
+            "requires": {
+                "@endemolshinegroup/cosmiconfig-typescript-loader": "3.0.2",
+                "@graphql-tools/graphql-file-loader": "^6.0.0",
+                "@graphql-tools/json-file-loader": "^6.0.0",
+                "@graphql-tools/load": "^6.0.0",
+                "@graphql-tools/merge": "^6.0.0",
+                "@graphql-tools/url-loader": "^6.0.0",
+                "@graphql-tools/utils": "^6.0.0",
+                "cosmiconfig": "6.0.0",
+                "cosmiconfig-toml-loader": "1.0.0",
+                "minimatch": "3.0.4",
+                "string-env-interpolation": "1.0.1",
+                "tslib": "^2.0.0"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "graphql-playground-html": {
+            "version": "1.6.29",
+            "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz",
+            "integrity": "sha512-fbF/zZKuw2sdfKp8gjTORJ/I9xBsqeEYRseWxBzuR15NHMptRTT9414IyRCs3ognZzUDr5MDJgx97SlLZCtQyA==",
+            "requires": {
+                "xss": "^1.0.6"
+            }
+        },
+        "graphql-playground-middleware-express": {
+            "version": "1.7.22",
+            "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.22.tgz",
+            "integrity": "sha512-PJLiCxLmN6Dp+dHGyHU92m9y3hB/RAkcUBWcqYl2fiP+EbpDDgNfElrsVzW60MhJe+LTV1PFqiInH2d3KNvlCQ==",
+            "requires": {
+                "graphql-playground-html": "^1.6.29"
+            }
+        },
+        "graphql-subscriptions": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.0.tgz",
+            "integrity": "sha512-uXvp729fztqwa7HFUFaAqKwNMwwOfsvu4HwOu7/35Cd44bNrMPCn97mNGN0ybuuZE36CPXBTaW/4U/xyOS4D9w==",
+            "requires": {
+                "iterall": "^1.3.0"
+            }
+        },
+        "graphql-type-json": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz",
+            "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg=="
+        },
+        "graphql-upload": {
+            "version": "11.0.0",
+            "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz",
+            "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==",
+            "requires": {
+                "busboy": "^0.3.1",
+                "fs-capacitor": "^6.1.0",
+                "http-errors": "^1.7.3",
+                "isobject": "^4.0.0",
+                "object-path": "^0.11.4"
+            },
+            "dependencies": {
+                "http-errors": {
+                    "version": "1.8.0",
+                    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
+                    "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
+                    "requires": {
+                        "depd": "~1.1.2",
+                        "inherits": "2.0.4",
+                        "setprototypeof": "1.2.0",
+                        "statuses": ">= 1.5.0 < 2",
+                        "toidentifier": "1.0.0"
+                    }
+                },
+                "isobject": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
+                    "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA=="
+                },
+                "setprototypeof": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+                    "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+                }
+            }
+        },
+        "graphql-ws": {
+            "version": "4.1.5",
+            "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.5.tgz",
+            "integrity": "sha512-yUQ1AjegD1Y9jDS699kyw7Mw+9H+rILm2HoS8N5a5B5YTH93xy3yifFhAJpKGc2wb/8yGdlVy8gTcud0TPqi6Q=="
+        },
+        "gray-matter": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz",
+            "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==",
+            "requires": {
+                "js-yaml": "^3.11.0",
+                "kind-of": "^6.0.2",
+                "section-matter": "^1.0.0",
+                "strip-bom-string": "^1.0.0"
+            }
+        },
+        "gud": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
+            "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
+        },
+        "gzip-size": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+            "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+            "requires": {
+                "duplexer": "^0.1.1"
+            }
+        },
+        "handle-thing": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+            "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
+        },
+        "har-schema": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+        },
+        "har-validator": {
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+            "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+            "requires": {
+                "ajv": "^6.12.3",
+                "har-schema": "^2.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                }
+            }
+        },
+        "has": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+            "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+            "requires": {
+                "function-bind": "^1.1.1"
+            }
+        },
+        "has-ansi": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+            "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+            "requires": {
+                "ansi-regex": "^2.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                }
+            }
+        },
+        "has-binary2": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+            "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+            "requires": {
+                "isarray": "2.0.1"
+            },
+            "dependencies": {
+                "isarray": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+                    "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+                }
+            }
+        },
+        "has-cors": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+            "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
+        },
+        "has-flag": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+            "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+        },
+        "has-symbol-support-x": {
+            "version": "1.4.2",
+            "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+            "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
+        },
+        "has-symbols": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+            "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+        },
+        "has-to-string-tag-x": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+            "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+            "requires": {
+                "has-symbol-support-x": "^1.4.1"
+            }
+        },
+        "has-unicode": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+            "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+        },
+        "has-value": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+            "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+            "requires": {
+                "get-value": "^2.0.6",
+                "has-values": "^1.0.0",
+                "isobject": "^3.0.0"
+            }
+        },
+        "has-values": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+            "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+            "requires": {
+                "is-number": "^3.0.0",
+                "kind-of": "^4.0.0"
+            },
+            "dependencies": {
+                "is-number": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                    "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    },
+                    "dependencies": {
+                        "kind-of": {
+                            "version": "3.2.2",
+                            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                            "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                            "requires": {
+                                "is-buffer": "^1.1.5"
+                            }
+                        }
+                    }
+                },
+                "kind-of": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+                    "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "has-yarn": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+            "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
+        },
+        "hash-base": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+            "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+            "requires": {
+                "inherits": "^2.0.4",
+                "readable-stream": "^3.6.0",
+                "safe-buffer": "^5.2.0"
+            }
+        },
+        "hash.js": {
+            "version": "1.1.7",
+            "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+            "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "minimalistic-assert": "^1.0.1"
+            }
+        },
+        "hasha": {
+            "version": "5.2.2",
+            "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
+            "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
+            "requires": {
+                "is-stream": "^2.0.0",
+                "type-fest": "^0.8.0"
+            },
+            "dependencies": {
+                "is-stream": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+                    "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+                }
+            }
+        },
+        "hast-to-hyperscript": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-5.0.0.tgz",
+            "integrity": "sha512-DLl3eYTz8uwwzEubDUdCChsR5t5b2ne+yvHrA2h58Suq/JnN3+Gsb9Tc4iZoCCsykmFUc6UUpwxTmQXs0akSeg==",
+            "requires": {
+                "comma-separated-tokens": "^1.0.0",
+                "property-information": "^4.0.0",
+                "space-separated-tokens": "^1.0.0",
+                "style-to-object": "^0.2.1",
+                "unist-util-is": "^2.0.0",
+                "web-namespaces": "^1.1.2"
+            },
+            "dependencies": {
+                "style-to-object": {
+                    "version": "0.2.3",
+                    "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz",
+                    "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==",
+                    "requires": {
+                        "inline-style-parser": "0.1.1"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "2.1.3",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz",
+                    "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA=="
+                }
+            }
+        },
+        "hast-util-from-parse5": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-4.0.2.tgz",
+            "integrity": "sha512-I6dtjsGtDqz4fmGSiFClFyiXdKhj5bPceS6intta7k/VDuiKz9P61C6hO6WMiNNmEm1b/EtBH8f+juvz4o0uwQ==",
+            "requires": {
+                "ccount": "^1.0.3",
+                "hastscript": "^4.0.0",
+                "property-information": "^4.0.0",
+                "web-namespaces": "^1.1.2",
+                "xtend": "^4.0.1"
+            }
+        },
+        "hast-util-is-element": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz",
+            "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ=="
+        },
+        "hast-util-parse-selector": {
+            "version": "2.2.5",
+            "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
+            "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ=="
+        },
+        "hast-util-raw": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-4.0.0.tgz",
+            "integrity": "sha512-5xYHyEJMCf8lX/NT4iA5z6N43yoFsrJqXJ5GWwAbLn815URbIz+UNNFEgid33F9paZuDlqVKvB+K3Aqu5+DdSw==",
+            "requires": {
+                "hast-util-from-parse5": "^4.0.2",
+                "hast-util-to-parse5": "^4.0.1",
+                "html-void-elements": "^1.0.1",
+                "parse5": "^5.0.0",
+                "unist-util-position": "^3.0.0",
+                "web-namespaces": "^1.0.0",
+                "xtend": "^4.0.1",
+                "zwitch": "^1.0.0"
+            },
+            "dependencies": {
+                "parse5": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+                    "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="
+                }
+            }
+        },
+        "hast-util-sanitize": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-1.3.1.tgz",
+            "integrity": "sha512-AIeKHuHx0Wk45nSkGVa2/ujQYTksnDl8gmmKo/mwQi7ag7IBZ8cM3nJ2G86SajbjGP/HRpud6kMkPtcM2i0Tlw==",
+            "requires": {
+                "xtend": "^4.0.1"
+            }
+        },
+        "hast-util-to-html": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-4.0.1.tgz",
+            "integrity": "sha512-2emzwyf0xEsc4TBIPmDJmBttIw8R4SXAJiJZoiRR/s47ODYWgOqNoDbf2SJAbMbfNdFWMiCSOrI3OVnX6Qq2Mg==",
+            "requires": {
+                "ccount": "^1.0.0",
+                "comma-separated-tokens": "^1.0.1",
+                "hast-util-is-element": "^1.0.0",
+                "hast-util-whitespace": "^1.0.0",
+                "html-void-elements": "^1.0.0",
+                "property-information": "^4.0.0",
+                "space-separated-tokens": "^1.0.0",
+                "stringify-entities": "^1.0.1",
+                "unist-util-is": "^2.0.0",
+                "xtend": "^4.0.1"
+            },
+            "dependencies": {
+                "stringify-entities": {
+                    "version": "1.3.2",
+                    "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz",
+                    "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
+                    "requires": {
+                        "character-entities-html4": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "2.1.3",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz",
+                    "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA=="
+                }
+            }
+        },
+        "hast-util-to-parse5": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-4.0.1.tgz",
+            "integrity": "sha512-U/61W+fsNfBpCyJBB5Pt3l5ypIfgXqEyW9pyrtxF7XrqDJHzcFrYpnC94d0JDYjvobLpYCzcU9srhMRPEO1YXw==",
+            "requires": {
+                "hast-to-hyperscript": "^5.0.0",
+                "property-information": "^4.0.0",
+                "web-namespaces": "^1.0.0",
+                "xtend": "^4.0.1",
+                "zwitch": "^1.0.0"
+            }
+        },
+        "hast-util-whitespace": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz",
+            "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A=="
+        },
+        "hastscript": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-4.1.0.tgz",
+            "integrity": "sha512-bOTn9hEfzewvHyXdbYGKqOr/LOz+2zYhKbC17U2YAjd16mnjqB1BQ0nooM/RdMy/htVyli0NAznXiBtwDi1cmQ==",
+            "requires": {
+                "comma-separated-tokens": "^1.0.0",
+                "hast-util-parse-selector": "^2.2.0",
+                "property-information": "^4.0.0",
+                "space-separated-tokens": "^1.0.0"
+            }
+        },
+        "hex-color-regex": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+            "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
+        },
+        "hicat": {
+            "version": "0.8.0",
+            "resolved": "https://registry.npmjs.org/hicat/-/hicat-0.8.0.tgz",
+            "integrity": "sha512-om8L9O5XwqeSdwl5NtHgrzK3wcF4fT9T4gb/NktoH8EyoZipas/tvUZLV48xT7fQfMYr9qvb0WEutqdf0LWSqA==",
+            "requires": {
+                "highlight.js": "^10.4.1",
+                "minimist": "^1.2.5"
+            }
+        },
+        "highlight.js": {
+            "version": "10.6.0",
+            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.6.0.tgz",
+            "integrity": "sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ=="
+        },
+        "hmac-drbg": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+            "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+            "requires": {
+                "hash.js": "^1.0.3",
+                "minimalistic-assert": "^1.0.0",
+                "minimalistic-crypto-utils": "^1.0.1"
+            }
+        },
+        "hoek": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+            "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
+        },
+        "hoist-non-react-statics": {
+            "version": "3.3.2",
+            "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+            "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+            "requires": {
+                "react-is": "^16.7.0"
+            }
+        },
+        "homedir-polyfill": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+            "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+            "requires": {
+                "parse-passwd": "^1.0.0"
+            }
+        },
+        "hosted-git-info": {
+            "version": "2.8.8",
+            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+            "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
+        },
+        "hpack.js": {
+            "version": "2.1.6",
+            "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+            "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+            "requires": {
+                "inherits": "^2.0.1",
+                "obuf": "^1.0.0",
+                "readable-stream": "^2.0.1",
+                "wbuf": "^1.1.0"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "hsl-regex": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+            "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4="
+        },
+        "hsla-regex": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+            "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg="
+        },
+        "html-comment-regex": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+            "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ=="
+        },
+        "html-entities": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+            "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA=="
+        },
+        "html-void-elements": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
+            "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w=="
+        },
+        "htmlparser2": {
+            "version": "3.10.1",
+            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+            "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+            "requires": {
+                "domelementtype": "^1.3.1",
+                "domhandler": "^2.3.0",
+                "domutils": "^1.5.1",
+                "entities": "^1.1.1",
+                "inherits": "^2.0.1",
+                "readable-stream": "^3.1.1"
+            }
+        },
+        "http-cache-semantics": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+            "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
+        },
+        "http-deceiver": {
+            "version": "1.2.7",
+            "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+            "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
+        },
+        "http-errors": {
+            "version": "1.7.2",
+            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+            "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+            "requires": {
+                "depd": "~1.1.2",
+                "inherits": "2.0.3",
+                "setprototypeof": "1.1.1",
+                "statuses": ">= 1.5.0 < 2",
+                "toidentifier": "1.0.0"
+            },
+            "dependencies": {
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+                }
+            }
+        },
+        "http-parser-js": {
+            "version": "0.5.3",
+            "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz",
+            "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg=="
+        },
+        "http-proxy": {
+            "version": "1.18.1",
+            "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+            "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+            "requires": {
+                "eventemitter3": "^4.0.0",
+                "follow-redirects": "^1.0.0",
+                "requires-port": "^1.0.0"
+            }
+        },
+        "http-proxy-middleware": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+            "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+            "requires": {
+                "http-proxy": "^1.17.0",
+                "is-glob": "^4.0.0",
+                "lodash": "^4.17.11",
+                "micromatch": "^3.1.10"
+            },
+            "dependencies": {
+                "braces": {
+                    "version": "2.3.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                    "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                    "requires": {
+                        "arr-flatten": "^1.1.0",
+                        "array-unique": "^0.3.2",
+                        "extend-shallow": "^2.0.1",
+                        "fill-range": "^4.0.0",
+                        "isobject": "^3.0.1",
+                        "repeat-element": "^1.1.2",
+                        "snapdragon": "^0.8.1",
+                        "snapdragon-node": "^2.0.1",
+                        "split-string": "^3.0.2",
+                        "to-regex": "^3.0.1"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "fill-range": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                    "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                    "requires": {
+                        "extend-shallow": "^2.0.1",
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1",
+                        "to-regex-range": "^2.1.0"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "is-number": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                    "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    },
+                    "dependencies": {
+                        "kind-of": {
+                            "version": "3.2.2",
+                            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                            "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                            "requires": {
+                                "is-buffer": "^1.1.5"
+                            }
+                        }
+                    }
+                },
+                "micromatch": {
+                    "version": "3.1.10",
+                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                    "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                    "requires": {
+                        "arr-diff": "^4.0.0",
+                        "array-unique": "^0.3.2",
+                        "braces": "^2.3.1",
+                        "define-property": "^2.0.2",
+                        "extend-shallow": "^3.0.2",
+                        "extglob": "^2.0.4",
+                        "fragment-cache": "^0.2.1",
+                        "kind-of": "^6.0.2",
+                        "nanomatch": "^1.2.9",
+                        "object.pick": "^1.3.0",
+                        "regex-not": "^1.0.0",
+                        "snapdragon": "^0.8.1",
+                        "to-regex": "^3.0.2"
+                    }
+                },
+                "to-regex-range": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                    "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                    "requires": {
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1"
+                    }
+                }
+            }
+        },
+        "http-signature": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+            "requires": {
+                "assert-plus": "^1.0.0",
+                "jsprim": "^1.2.2",
+                "sshpk": "^1.7.0"
+            }
+        },
+        "https-browserify": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+            "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
+        },
+        "human-signals": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+            "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
+        },
+        "iconv-lite": {
+            "version": "0.6.2",
+            "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
+            "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
+            "requires": {
+                "safer-buffer": ">= 2.1.2 < 3.0.0"
+            }
+        },
+        "icss-replace-symbols": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+            "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0="
+        },
+        "icss-utils": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+            "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+            "requires": {
+                "postcss": "^6.0.1"
+            }
+        },
+        "idb-keyval": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-3.2.0.tgz",
+            "integrity": "sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ=="
+        },
+        "ieee754": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+            "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+        },
+        "iferr": {
+            "version": "0.1.5",
+            "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+            "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
+        },
+        "ignore": {
+            "version": "5.1.8",
+            "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+            "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="
+        },
+        "image-q": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz",
+            "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY="
+        },
+        "imagemin": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz",
+            "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==",
+            "requires": {
+                "file-type": "^12.0.0",
+                "globby": "^10.0.0",
+                "graceful-fs": "^4.2.2",
+                "junk": "^3.1.0",
+                "make-dir": "^3.0.0",
+                "p-pipe": "^3.0.0",
+                "replace-ext": "^1.0.0"
+            }
+        },
+        "imagemin-mozjpeg": {
+            "version": "9.0.0",
+            "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-9.0.0.tgz",
+            "integrity": "sha512-TwOjTzYqCFRgROTWpVSt5UTT0JeCuzF1jswPLKALDd89+PmrJ2PdMMYeDLYZ1fs9cTovI9GJd68mRSnuVt691w==",
+            "requires": {
+                "execa": "^4.0.0",
+                "is-jpg": "^2.0.0",
+                "mozjpeg": "^7.0.0"
+            }
+        },
+        "imagemin-pngquant": {
+            "version": "9.0.1",
+            "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz",
+            "integrity": "sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA==",
+            "requires": {
+                "execa": "^4.0.0",
+                "is-png": "^2.0.0",
+                "is-stream": "^2.0.0",
+                "ow": "^0.17.0",
+                "pngquant-bin": "^6.0.0"
+            },
+            "dependencies": {
+                "is-stream": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+                    "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
+                }
+            }
+        },
+        "import-cwd": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+            "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+            "requires": {
+                "import-from": "^2.1.0"
+            },
+            "dependencies": {
+                "import-from": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+                    "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+                    "requires": {
+                        "resolve-from": "^3.0.0"
+                    }
+                },
+                "resolve-from": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+                    "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+                }
+            }
+        },
+        "import-fresh": {
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+            "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+            "requires": {
+                "parent-module": "^1.0.0",
+                "resolve-from": "^4.0.0"
+            }
+        },
+        "import-from": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
+            "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
+            "requires": {
+                "resolve-from": "^5.0.0"
+            },
+            "dependencies": {
+                "resolve-from": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+                    "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+                }
+            }
+        },
+        "import-lazy": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+            "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
+        },
+        "import-local": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+            "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+            "requires": {
+                "pkg-dir": "^3.0.0",
+                "resolve-cwd": "^2.0.0"
+            },
+            "dependencies": {
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+                    "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "requires": {
+                        "locate-path": "^3.0.0"
+                    }
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+                    "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "requires": {
+                        "p-locate": "^3.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+                    "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "requires": {
+                        "p-limit": "^2.0.0"
+                    }
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                },
+                "pkg-dir": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+                    "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+                    "requires": {
+                        "find-up": "^3.0.0"
+                    }
+                },
+                "resolve-cwd": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+                    "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+                    "requires": {
+                        "resolve-from": "^3.0.0"
+                    }
+                },
+                "resolve-from": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+                    "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+                }
+            }
+        },
+        "imurmurhash": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+            "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+        },
+        "in-publish": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
+            "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
+        },
+        "indent-string": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+            "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
+        },
+        "indexes-of": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+            "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
+        },
+        "indexof": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+            "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+        },
+        "infer-owner": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+            "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="
+        },
+        "inflight": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+            "requires": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+            }
+        },
+        "inherits": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+        },
+        "ini": {
+            "version": "1.3.8",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+        },
+        "inline-style-parser": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+            "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
+        },
+        "inquirer": {
+            "version": "7.3.3",
+            "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+            "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+            "requires": {
+                "ansi-escapes": "^4.2.1",
+                "chalk": "^4.1.0",
+                "cli-cursor": "^3.1.0",
+                "cli-width": "^3.0.0",
+                "external-editor": "^3.0.3",
+                "figures": "^3.0.0",
+                "lodash": "^4.17.19",
+                "mute-stream": "0.0.8",
+                "run-async": "^2.4.0",
+                "rxjs": "^6.6.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0",
+                "through": "^2.3.6"
+            },
+            "dependencies": {
+                "ansi-escapes": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+                    "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+                    "requires": {
+                        "type-fest": "^0.11.0"
+                    }
+                },
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+                    "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                },
+                "type-fest": {
+                    "version": "0.11.0",
+                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+                    "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
+                }
+            }
+        },
+        "internal-ip": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+            "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+            "requires": {
+                "default-gateway": "^4.2.0",
+                "ipaddr.js": "^1.9.0"
+            }
+        },
+        "internal-slot": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+            "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+            "requires": {
+                "get-intrinsic": "^1.1.0",
+                "has": "^1.0.3",
+                "side-channel": "^1.0.4"
+            },
+            "dependencies": {
+                "get-intrinsic": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+                    "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+                    "requires": {
+                        "function-bind": "^1.1.1",
+                        "has": "^1.0.3",
+                        "has-symbols": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "into-stream": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz",
+            "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=",
+            "requires": {
+                "from2": "^2.1.1",
+                "p-is-promise": "^1.1.0"
+            }
+        },
+        "invariant": {
+            "version": "2.2.4",
+            "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+            "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+            "requires": {
+                "loose-envify": "^1.0.0"
+            }
+        },
+        "ip": {
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+            "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+        },
+        "ip-regex": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+            "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk="
+        },
+        "ipaddr.js": {
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+            "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+        },
+        "is-absolute-url": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+            "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q=="
+        },
+        "is-accessor-descriptor": {
+            "version": "0.1.6",
+            "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+            "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "is-alphabetical": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+            "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg=="
+        },
+        "is-alphanumeric": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
+            "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ="
+        },
+        "is-alphanumerical": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+            "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+            "requires": {
+                "is-alphabetical": "^1.0.0",
+                "is-decimal": "^1.0.0"
+            }
+        },
+        "is-arguments": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
+            "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
+            "requires": {
+                "call-bind": "^1.0.0"
+            }
+        },
+        "is-arrayish": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+            "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+        },
+        "is-binary-path": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+            "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+            "requires": {
+                "binary-extensions": "^2.0.0"
+            }
+        },
+        "is-buffer": {
+            "version": "1.1.6",
+            "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+            "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+        },
+        "is-callable": {
+            "version": "1.2.2",
+            "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
+            "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="
+        },
+        "is-ci": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+            "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+            "requires": {
+                "ci-info": "^2.0.0"
+            }
+        },
+        "is-color-stop": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+            "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+            "requires": {
+                "css-color-names": "^0.0.4",
+                "hex-color-regex": "^1.1.0",
+                "hsl-regex": "^1.0.0",
+                "hsla-regex": "^1.0.0",
+                "rgb-regex": "^1.0.1",
+                "rgba-regex": "^1.0.0"
+            }
+        },
+        "is-core-module": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
+            "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
+            "requires": {
+                "has": "^1.0.3"
+            }
+        },
+        "is-data-descriptor": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+            "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "is-date-object": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+            "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
+        },
+        "is-decimal": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+            "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw=="
+        },
+        "is-descriptor": {
+            "version": "0.1.6",
+            "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+            "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+            "requires": {
+                "is-accessor-descriptor": "^0.1.6",
+                "is-data-descriptor": "^0.1.4",
+                "kind-of": "^5.0.0"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+                    "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+                }
+            }
+        },
+        "is-directory": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+            "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
+        },
+        "is-docker": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
+            "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw=="
+        },
+        "is-extendable": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+            "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+        },
+        "is-extglob": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+            "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+        },
+        "is-finite": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+            "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
+        },
+        "is-fullwidth-code-point": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+            "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+        },
+        "is-function": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
+            "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
+        },
+        "is-glob": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+            "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+            "requires": {
+                "is-extglob": "^2.1.1"
+            }
+        },
+        "is-hexadecimal": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+            "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw=="
+        },
+        "is-installed-globally": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+            "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+            "requires": {
+                "global-dirs": "^3.0.0",
+                "is-path-inside": "^3.0.2"
+            }
+        },
+        "is-invalid-path": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
+            "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
+            "requires": {
+                "is-glob": "^2.0.0"
+            },
+            "dependencies": {
+                "is-extglob": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+                    "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+                },
+                "is-glob": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+                    "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+                    "requires": {
+                        "is-extglob": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "is-jpg": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz",
+            "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc="
+        },
+        "is-natural-number": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
+            "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg="
+        },
+        "is-negative-zero": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+            "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+        },
+        "is-npm": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
+            "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA=="
+        },
+        "is-number": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+            "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+        },
+        "is-obj": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+            "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
+        },
+        "is-object": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
+            "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA=="
+        },
+        "is-path-cwd": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+            "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="
+        },
+        "is-path-in-cwd": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+            "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+            "requires": {
+                "is-path-inside": "^2.1.0"
+            },
+            "dependencies": {
+                "is-path-inside": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+                    "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+                    "requires": {
+                        "path-is-inside": "^1.0.2"
+                    }
+                }
+            }
+        },
+        "is-path-inside": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
+            "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg=="
+        },
+        "is-plain-obj": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+            "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+        },
+        "is-plain-object": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+            "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+            "requires": {
+                "isobject": "^3.0.1"
+            }
+        },
+        "is-png": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/is-png/-/is-png-2.0.0.tgz",
+            "integrity": "sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g=="
+        },
+        "is-promise": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+            "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="
+        },
+        "is-regex": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+            "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+            "requires": {
+                "has-symbols": "^1.0.1"
+            }
+        },
+        "is-regexp": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+            "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+        },
+        "is-relative": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+            "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+            "requires": {
+                "is-unc-path": "^1.0.0"
+            }
+        },
+        "is-relative-url": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz",
+            "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==",
+            "requires": {
+                "is-absolute-url": "^3.0.0"
+            }
+        },
+        "is-resolvable": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+            "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
+        },
+        "is-retry-allowed": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+            "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
+        },
+        "is-root": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
+            "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU="
+        },
+        "is-ssh": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz",
+            "integrity": "sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==",
+            "requires": {
+                "protocols": "^1.1.0"
+            }
+        },
+        "is-stream": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+            "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+        },
+        "is-string": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
+            "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ=="
+        },
+        "is-svg": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
+            "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+            "requires": {
+                "html-comment-regex": "^1.1.0"
+            }
+        },
+        "is-symbol": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+            "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+            "requires": {
+                "has-symbols": "^1.0.1"
+            }
+        },
+        "is-typedarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+        },
+        "is-unc-path": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+            "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+            "requires": {
+                "unc-path-regex": "^0.1.2"
+            }
+        },
+        "is-url": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
+            "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
+        },
+        "is-utf8": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+            "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+        },
+        "is-valid-path": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
+            "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=",
+            "requires": {
+                "is-invalid-path": "^0.1.0"
+            }
+        },
+        "is-whitespace-character": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+            "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w=="
+        },
+        "is-windows": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+            "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+        },
+        "is-word-character": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+            "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA=="
+        },
+        "is-wsl": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+            "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+            "requires": {
+                "is-docker": "^2.0.0"
+            }
+        },
+        "is-yarn-global": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+            "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
+        },
+        "isarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+        },
+        "isemail": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
+            "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
+            "requires": {
+                "punycode": "2.x.x"
+            }
+        },
+        "isexe": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+            "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+        },
+        "isobject": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+            "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+        },
+        "isomorphic-fetch": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+            "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+            "requires": {
+                "node-fetch": "^1.0.1",
+                "whatwg-fetch": ">=0.10.0"
+            }
+        },
+        "isomorphic-ws": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
+            "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="
+        },
+        "isstream": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+            "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+        },
+        "isurl": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+            "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+            "requires": {
+                "has-to-string-tag-x": "^1.2.0",
+                "is-object": "^1.0.1"
+            }
+        },
+        "iterall": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+            "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg=="
+        },
+        "jest-diff": {
+            "version": "25.5.0",
+            "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+            "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
+            "requires": {
+                "chalk": "^3.0.0",
+                "diff-sequences": "^25.2.6",
+                "jest-get-type": "^25.2.6",
+                "pretty-format": "^25.5.0"
+            },
+            "dependencies": {
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "chalk": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+                    "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "jest-get-type": {
+            "version": "25.2.6",
+            "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+            "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig=="
+        },
+        "jest-worker": {
+            "version": "24.9.0",
+            "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+            "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+            "requires": {
+                "merge-stream": "^2.0.0",
+                "supports-color": "^6.1.0"
+            },
+            "dependencies": {
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "jimp": {
+            "version": "0.14.0",
+            "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.14.0.tgz",
+            "integrity": "sha512-8BXU+J8+SPmwwyq9ELihpSV4dWPTiOKBWCEgtkbnxxAVMjXdf3yGmyaLSshBfXc8sP/JQ9OZj5R8nZzz2wPXgA==",
+            "requires": {
+                "@babel/runtime": "^7.7.2",
+                "@jimp/custom": "^0.14.0",
+                "@jimp/plugins": "^0.14.0",
+                "@jimp/types": "^0.14.0",
+                "regenerator-runtime": "^0.13.3"
+            }
+        },
+        "joi": {
+            "version": "17.3.0",
+            "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz",
+            "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==",
+            "requires": {
+                "@hapi/hoek": "^9.0.0",
+                "@hapi/topo": "^5.0.0",
+                "@sideway/address": "^4.1.0",
+                "@sideway/formula": "^3.0.0",
+                "@sideway/pinpoint": "^2.0.0"
+            },
+            "dependencies": {
+                "@hapi/hoek": {
+                    "version": "9.1.0",
+                    "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz",
+                    "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw=="
+                },
+                "@hapi/topo": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz",
+                    "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==",
+                    "requires": {
+                        "@hapi/hoek": "^9.0.0"
+                    }
+                }
+            }
+        },
+        "jpeg-js": {
+            "version": "0.4.2",
+            "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz",
+            "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw=="
+        },
+        "js-base64": {
+            "version": "2.6.4",
+            "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+            "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
+        },
+        "js-tokens": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+            "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+        },
+        "js-yaml": {
+            "version": "3.14.1",
+            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+            "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+            "requires": {
+                "argparse": "^1.0.7",
+                "esprima": "^4.0.0"
+            },
+            "dependencies": {
+                "esprima": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+                    "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+                }
+            }
+        },
+        "jsbn": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+            "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+        },
+        "jsesc": {
+            "version": "2.5.2",
+            "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+            "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+        },
+        "json-buffer": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+            "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+        },
+        "json-loader": {
+            "version": "0.5.7",
+            "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+            "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
+        },
+        "json-parse-better-errors": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+            "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+        },
+        "json-parse-even-better-errors": {
+            "version": "2.3.1",
+            "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+            "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+        },
+        "json-parser": {
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz",
+            "integrity": "sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc=",
+            "requires": {
+                "esprima": "^2.7.0"
+            }
+        },
+        "json-schema": {
+            "version": "0.2.3",
+            "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+            "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+        },
+        "json-schema-traverse": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+            "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+        },
+        "json-stable-stringify": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+            "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+            "requires": {
+                "jsonify": "~0.0.0"
+            }
+        },
+        "json-stable-stringify-without-jsonify": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+            "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+        },
+        "json-stringify-safe": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+        },
+        "json3": {
+            "version": "3.3.3",
+            "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+            "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA=="
+        },
+        "json5": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+            "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+            "requires": {
+                "minimist": "^1.2.5"
+            }
+        },
+        "jsonfile": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+            "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+            "requires": {
+                "graceful-fs": "^4.1.6"
+            }
+        },
+        "jsonify": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+            "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+        },
+        "jsprim": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+            "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+            "requires": {
+                "assert-plus": "1.0.0",
+                "extsprintf": "1.3.0",
+                "json-schema": "0.2.3",
+                "verror": "1.10.0"
+            }
+        },
+        "jsx-ast-utils": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",
+            "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==",
+            "requires": {
+                "array-includes": "^3.1.2",
+                "object.assign": "^4.1.2"
+            }
+        },
+        "juniper-js": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/juniper-js/-/juniper-js-0.1.0.tgz",
+            "integrity": "sha512-PPwiEztMMfg5dsFZ0v0c1AA2ZFp8ionZNHnJcX7jcdDGKK2KcCB4qG33jtAiEnEEbNuoPq2wxVQBUDdCXvPj+w=="
+        },
+        "junk": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
+            "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ=="
+        },
+        "keyv": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+            "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+            "requires": {
+                "json-buffer": "3.0.0"
+            }
+        },
+        "killable": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+            "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg=="
+        },
+        "kind-of": {
+            "version": "6.0.3",
+            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+            "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+        },
+        "kleur": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+            "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
+        },
+        "language-subtag-registry": {
+            "version": "0.3.21",
+            "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
+            "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg=="
+        },
+        "language-tags": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+            "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+            "requires": {
+                "language-subtag-registry": "~0.3.2"
+            }
+        },
+        "last-call-webpack-plugin": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
+            "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==",
+            "requires": {
+                "lodash": "^4.17.5",
+                "webpack-sources": "^1.1.0"
+            }
+        },
+        "latest-version": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+            "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+            "requires": {
+                "package-json": "^6.3.0"
+            }
+        },
+        "levn": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+            "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+            "requires": {
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2"
+            }
+        },
+        "lines-and-columns": {
+            "version": "1.1.6",
+            "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+            "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
+        },
+        "load-bmfont": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz",
+            "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
+            "requires": {
+                "buffer-equal": "0.0.1",
+                "mime": "^1.3.4",
+                "parse-bmfont-ascii": "^1.0.3",
+                "parse-bmfont-binary": "^1.0.5",
+                "parse-bmfont-xml": "^1.1.4",
+                "phin": "^2.9.1",
+                "xhr": "^2.0.1",
+                "xtend": "^4.0.0"
+            },
+            "dependencies": {
+                "mime": {
+                    "version": "1.6.0",
+                    "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+                    "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+                }
+            }
+        },
+        "load-json-file": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+            "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+            "requires": {
+                "graceful-fs": "^4.1.2",
+                "parse-json": "^2.2.0",
+                "pify": "^2.0.0",
+                "strip-bom": "^3.0.0"
+            },
+            "dependencies": {
+                "parse-json": {
+                    "version": "2.2.0",
+                    "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                    "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                    "requires": {
+                        "error-ex": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "load-script": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz",
+            "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ="
+        },
+        "loader-fs-cache": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
+            "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==",
+            "requires": {
+                "find-cache-dir": "^0.1.1",
+                "mkdirp": "^0.5.1"
+            },
+            "dependencies": {
+                "find-cache-dir": {
+                    "version": "0.1.1",
+                    "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+                    "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+                    "requires": {
+                        "commondir": "^1.0.1",
+                        "mkdirp": "^0.5.1",
+                        "pkg-dir": "^1.0.0"
+                    }
+                },
+                "find-up": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                    "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                    "requires": {
+                        "path-exists": "^2.0.0",
+                        "pinkie-promise": "^2.0.0"
+                    }
+                },
+                "path-exists": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                    "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                    "requires": {
+                        "pinkie-promise": "^2.0.0"
+                    }
+                },
+                "pkg-dir": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+                    "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+                    "requires": {
+                        "find-up": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "loader-runner": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+            "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
+        },
+        "loader-utils": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+            "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+            "requires": {
+                "big.js": "^5.2.2",
+                "emojis-list": "^3.0.0",
+                "json5": "^1.0.1"
+            },
+            "dependencies": {
+                "json5": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "requires": {
+                        "minimist": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "localstorage-polyfill": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz",
+            "integrity": "sha1-SzCD1LxR0jtBWFN+ZoFhN0E/0xo="
+        },
+        "locate-path": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+            "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+            "requires": {
+                "p-locate": "^4.1.0"
+            }
+        },
+        "lock": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz",
+            "integrity": "sha1-UxV0mdFlOxNspmRRBx/KYVcD+lU="
+        },
+        "lodash": {
+            "version": "4.17.20",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+            "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+        },
+        "lodash._reinterpolate": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+            "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+        },
+        "lodash.clonedeep": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+            "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
+        },
+        "lodash.deburr": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
+            "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s="
+        },
+        "lodash.escaperegexp": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+            "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c="
+        },
+        "lodash.every": {
+            "version": "4.6.0",
+            "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz",
+            "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc="
+        },
+        "lodash.flatten": {
+            "version": "4.4.0",
+            "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+            "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
+        },
+        "lodash.flattendeep": {
+            "version": "4.4.0",
+            "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+            "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI="
+        },
+        "lodash.foreach": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
+            "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM="
+        },
+        "lodash.get": {
+            "version": "4.4.2",
+            "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+            "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+        },
+        "lodash.isplainobject": {
+            "version": "4.0.6",
+            "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+            "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+        },
+        "lodash.isstring": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+            "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+        },
+        "lodash.map": {
+            "version": "4.6.0",
+            "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
+            "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM="
+        },
+        "lodash.maxby": {
+            "version": "4.6.0",
+            "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz",
+            "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0="
+        },
+        "lodash.memoize": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+            "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+        },
+        "lodash.mergewith": {
+            "version": "4.6.2",
+            "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+            "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ=="
+        },
+        "lodash.template": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+            "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+            "requires": {
+                "lodash._reinterpolate": "^3.0.0",
+                "lodash.templatesettings": "^4.0.0"
+            }
+        },
+        "lodash.templatesettings": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+            "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+            "requires": {
+                "lodash._reinterpolate": "^3.0.0"
+            }
+        },
+        "lodash.uniq": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+            "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+        },
+        "lodash.without": {
+            "version": "4.4.0",
+            "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz",
+            "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw="
+        },
+        "logalot": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
+            "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
+            "requires": {
+                "figures": "^1.3.5",
+                "squeak": "^1.0.0"
+            },
+            "dependencies": {
+                "figures": {
+                    "version": "1.7.0",
+                    "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+                    "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+                    "requires": {
+                        "escape-string-regexp": "^1.0.5",
+                        "object-assign": "^4.1.0"
+                    }
+                }
+            }
+        },
+        "loglevel": {
+            "version": "1.7.1",
+            "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz",
+            "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw=="
+        },
+        "longest": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+            "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+        },
+        "longest-streak": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz",
+            "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg=="
+        },
+        "loose-envify": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+            "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+            "requires": {
+                "js-tokens": "^3.0.0 || ^4.0.0"
+            }
+        },
+        "lower-case": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+            "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+            "requires": {
+                "tslib": "^2.0.3"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "lowercase-keys": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+            "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+        },
+        "lpad-align": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
+            "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=",
+            "requires": {
+                "get-stdin": "^4.0.1",
+                "indent-string": "^2.1.0",
+                "longest": "^1.0.0",
+                "meow": "^3.3.0"
+            },
+            "dependencies": {
+                "indent-string": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                    "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                    "requires": {
+                        "repeating": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "lru-cache": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+            "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+            "requires": {
+                "yallist": "^4.0.0"
+            }
+        },
+        "lru-queue": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
+            "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
+            "requires": {
+                "es5-ext": "~0.10.2"
+            }
+        },
+        "make-dir": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+            "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+            "requires": {
+                "semver": "^6.0.0"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                }
+            }
+        },
+        "make-error": {
+            "version": "1.3.6",
+            "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+            "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+        },
+        "map-cache": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+            "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+        },
+        "map-obj": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+            "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+        },
+        "map-visit": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+            "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+            "requires": {
+                "object-visit": "^1.0.0"
+            }
+        },
+        "markdown-escapes": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+            "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg=="
+        },
+        "markdown-table": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
+            "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
+            "requires": {
+                "repeat-string": "^1.0.0"
+            }
+        },
+        "marked": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz",
+            "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw=="
+        },
+        "mathjax": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.1.2.tgz",
+            "integrity": "sha512-BojKspBv4nNWzO1wC6VEI+g9gHDOhkaGHGgLxXkasdU4pwjdO5AXD5M/wcLPkXYPjZ/N+6sU8rjQTlyvN2cWiQ=="
+        },
+        "md5-file": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz",
+            "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw=="
+        },
+        "md5.js": {
+            "version": "1.3.5",
+            "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+            "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+            "requires": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.1.2"
+            }
+        },
+        "mdast-util-compact": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
+            "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
+            "requires": {
+                "unist-util-visit": "^2.0.0"
+            }
+        },
+        "mdast-util-definitions": {
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz",
+            "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==",
+            "requires": {
+                "unist-util-visit": "^1.0.0"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "mdast-util-to-hast": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-3.0.4.tgz",
+            "integrity": "sha512-/eIbly2YmyVgpJNo+bFLLMCI1XgolO/Ffowhf+pHDq3X4/V6FntC9sGQCDLM147eTS+uSXv5dRzJyFn+o0tazA==",
+            "requires": {
+                "collapse-white-space": "^1.0.0",
+                "detab": "^2.0.0",
+                "mdast-util-definitions": "^1.2.0",
+                "mdurl": "^1.0.1",
+                "trim": "0.0.1",
+                "trim-lines": "^1.0.0",
+                "unist-builder": "^1.0.1",
+                "unist-util-generated": "^1.1.0",
+                "unist-util-position": "^3.0.0",
+                "unist-util-visit": "^1.1.0",
+                "xtend": "^4.0.1"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "mdast-util-to-nlcst": {
+            "version": "3.2.3",
+            "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz",
+            "integrity": "sha512-hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==",
+            "requires": {
+                "nlcst-to-string": "^2.0.0",
+                "repeat-string": "^1.5.2",
+                "unist-util-position": "^3.0.0",
+                "vfile-location": "^2.0.0"
+            }
+        },
+        "mdast-util-to-string": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
+            "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A=="
+        },
+        "mdast-util-toc": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-5.1.0.tgz",
+            "integrity": "sha512-csimbRIVkiqc+PpFeKDGQ/Ck2N4f9FYH3zzBMMJzcxoKL8m+cM0n94xXm0I9eaxHnKdY9n145SGTdyJC7i273g==",
+            "requires": {
+                "@types/mdast": "^3.0.3",
+                "@types/unist": "^2.0.3",
+                "extend": "^3.0.2",
+                "github-slugger": "^1.2.1",
+                "mdast-util-to-string": "^2.0.0",
+                "unist-util-is": "^4.0.0",
+                "unist-util-visit": "^2.0.0"
+            },
+            "dependencies": {
+                "mdast-util-to-string": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz",
+                    "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w=="
+                }
+            }
+        },
+        "mdn-data": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+            "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
+        },
+        "mdurl": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+            "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+        },
+        "meant": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.3.tgz",
+            "integrity": "sha512-88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw=="
+        },
+        "media-typer": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+            "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+        },
+        "memoizee": {
+            "version": "0.4.15",
+            "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
+            "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
+            "requires": {
+                "d": "^1.0.1",
+                "es5-ext": "^0.10.53",
+                "es6-weak-map": "^2.0.3",
+                "event-emitter": "^0.3.5",
+                "is-promise": "^2.2.2",
+                "lru-queue": "^0.1.0",
+                "next-tick": "^1.1.0",
+                "timers-ext": "^0.1.7"
+            },
+            "dependencies": {
+                "is-promise": {
+                    "version": "2.2.2",
+                    "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+                    "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+                }
+            }
+        },
+        "memory-fs": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+            "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+            "requires": {
+                "errno": "^0.1.3",
+                "readable-stream": "^2.0.1"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "meow": {
+            "version": "3.7.0",
+            "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+            "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+            "requires": {
+                "camelcase-keys": "^2.0.0",
+                "decamelize": "^1.1.2",
+                "loud-rejection": "^1.0.0",
+                "map-obj": "^1.0.1",
+                "minimist": "^1.1.3",
+                "normalize-package-data": "^2.3.4",
+                "object-assign": "^4.0.1",
+                "read-pkg-up": "^1.0.1",
+                "redent": "^1.0.0",
+                "trim-newlines": "^1.0.0"
+            },
+            "dependencies": {
+                "find-up": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+                    "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+                    "requires": {
+                        "path-exists": "^2.0.0",
+                        "pinkie-promise": "^2.0.0"
+                    }
+                },
+                "load-json-file": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+                    "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+                    "requires": {
+                        "graceful-fs": "^4.1.2",
+                        "parse-json": "^2.2.0",
+                        "pify": "^2.0.0",
+                        "pinkie-promise": "^2.0.0",
+                        "strip-bom": "^2.0.0"
+                    }
+                },
+                "loud-rejection": {
+                    "version": "1.6.0",
+                    "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+                    "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+                    "requires": {
+                        "currently-unhandled": "^0.4.1",
+                        "signal-exit": "^3.0.0"
+                    }
+                },
+                "parse-json": {
+                    "version": "2.2.0",
+                    "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+                    "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+                    "requires": {
+                        "error-ex": "^1.2.0"
+                    }
+                },
+                "path-exists": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+                    "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+                    "requires": {
+                        "pinkie-promise": "^2.0.0"
+                    }
+                },
+                "path-type": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+                    "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+                    "requires": {
+                        "graceful-fs": "^4.1.2",
+                        "pify": "^2.0.0",
+                        "pinkie-promise": "^2.0.0"
+                    }
+                },
+                "read-pkg": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+                    "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+                    "requires": {
+                        "load-json-file": "^1.0.0",
+                        "normalize-package-data": "^2.3.2",
+                        "path-type": "^1.0.0"
+                    }
+                },
+                "read-pkg-up": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+                    "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+                    "requires": {
+                        "find-up": "^1.0.0",
+                        "read-pkg": "^1.0.0"
+                    }
+                },
+                "strip-bom": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+                    "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+                    "requires": {
+                        "is-utf8": "^0.2.0"
+                    }
+                }
+            }
+        },
+        "merge-descriptors": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+            "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+        },
+        "merge-stream": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+            "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+        },
+        "merge2": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+            "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+        },
+        "methods": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+            "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+        },
+        "micromatch": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+            "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+            "requires": {
+                "braces": "^3.0.1",
+                "picomatch": "^2.0.5"
+            },
+            "dependencies": {
+                "braces": {
+                    "version": "3.0.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+                    "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+                    "requires": {
+                        "fill-range": "^7.0.1"
+                    }
+                },
+                "fill-range": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+                    "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+                    "requires": {
+                        "to-regex-range": "^5.0.1"
+                    }
+                },
+                "is-number": {
+                    "version": "7.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+                    "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+                },
+                "to-regex-range": {
+                    "version": "5.0.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+                    "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+                    "requires": {
+                        "is-number": "^7.0.0"
+                    }
+                }
+            }
+        },
+        "miller-rabin": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+            "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+            "requires": {
+                "bn.js": "^4.0.0",
+                "brorand": "^1.0.1"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "mime": {
+            "version": "2.4.6",
+            "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+            "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
+        },
+        "mime-db": {
+            "version": "1.44.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+        },
+        "mime-types": {
+            "version": "2.1.27",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+            "requires": {
+                "mime-db": "1.44.0"
+            }
+        },
+        "mimic-fn": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+            "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+        },
+        "mimic-response": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+            "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+        },
+        "min-document": {
+            "version": "2.19.0",
+            "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+            "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+            "requires": {
+                "dom-walk": "^0.1.0"
+            }
+        },
+        "min-indent": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+            "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
+        },
+        "mini-css-extract-plugin": {
+            "version": "0.11.3",
+            "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz",
+            "integrity": "sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==",
+            "requires": {
+                "loader-utils": "^1.1.0",
+                "normalize-url": "1.9.1",
+                "schema-utils": "^1.0.0",
+                "webpack-sources": "^1.1.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "normalize-url": {
+                    "version": "1.9.1",
+                    "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+                    "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+                    "requires": {
+                        "object-assign": "^4.0.1",
+                        "prepend-http": "^1.0.0",
+                        "query-string": "^4.1.0",
+                        "sort-keys": "^1.0.0"
+                    }
+                },
+                "prepend-http": {
+                    "version": "1.0.4",
+                    "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+                    "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+                },
+                "query-string": {
+                    "version": "4.3.4",
+                    "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+                    "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+                    "requires": {
+                        "object-assign": "^4.1.0",
+                        "strict-uri-encode": "^1.0.0"
+                    }
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                },
+                "sort-keys": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+                    "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+                    "requires": {
+                        "is-plain-obj": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "mini-svg-data-uri": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.2.3.tgz",
+            "integrity": "sha512-zd6KCAyXgmq6FV1mR10oKXYtvmA9vRoB6xPSTUJTbFApCtkefDnYueVR1gkof3KcdLZo1Y8mjF2DFmQMIxsHNQ=="
+        },
+        "minimalistic-assert": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+            "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+        },
+        "minimalistic-crypto-utils": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+            "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+        },
+        "minimatch": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+            "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+            "requires": {
+                "brace-expansion": "^1.1.7"
+            }
+        },
+        "minimist": {
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+        },
+        "minipass": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+            "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+            "requires": {
+                "yallist": "^4.0.0"
+            }
+        },
+        "minipass-collect": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+            "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+            "requires": {
+                "minipass": "^3.0.0"
+            }
+        },
+        "minipass-flush": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+            "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+            "requires": {
+                "minipass": "^3.0.0"
+            }
+        },
+        "minipass-pipeline": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+            "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+            "requires": {
+                "minipass": "^3.0.0"
+            }
+        },
+        "mississippi": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+            "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+            "requires": {
+                "concat-stream": "^1.5.0",
+                "duplexify": "^3.4.2",
+                "end-of-stream": "^1.1.0",
+                "flush-write-stream": "^1.0.0",
+                "from2": "^2.1.0",
+                "parallel-transform": "^1.1.0",
+                "pump": "^3.0.0",
+                "pumpify": "^1.3.3",
+                "stream-each": "^1.1.0",
+                "through2": "^2.0.0"
+            }
+        },
+        "mitt": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz",
+            "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw=="
+        },
+        "mixin-deep": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+            "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+            "requires": {
+                "for-in": "^1.0.2",
+                "is-extendable": "^1.0.1"
+            },
+            "dependencies": {
+                "is-extendable": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+                    "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+                    "requires": {
+                        "is-plain-object": "^2.0.4"
+                    }
+                }
+            }
+        },
+        "mkdirp": {
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+            "requires": {
+                "minimist": "^1.2.5"
+            }
+        },
+        "mkdirp-classic": {
+            "version": "0.5.3",
+            "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+            "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+        },
+        "moment": {
+            "version": "2.21.0",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz",
+            "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ=="
+        },
+        "move-concurrently": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+            "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+            "requires": {
+                "aproba": "^1.1.1",
+                "copy-concurrently": "^1.0.0",
+                "fs-write-stream-atomic": "^1.0.8",
+                "mkdirp": "^0.5.1",
+                "rimraf": "^2.5.4",
+                "run-queue": "^1.0.3"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                }
+            }
+        },
+        "mozjpeg": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.0.0.tgz",
+            "integrity": "sha512-mH7atSbIusVTO3A4H43sEdmveN3aWn54k6V0edefzCEvOsTrbjg5murY2TsNznaztWnIgaRbWxeLVp4IgKdedQ==",
+            "requires": {
+                "bin-build": "^3.0.0",
+                "bin-wrapper": "^4.0.0",
+                "logalot": "^2.1.0"
+            }
+        },
+        "ms": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+            "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+        },
+        "msal": {
+            "version": "1.4.6",
+            "resolved": "https://registry.npmjs.org/msal/-/msal-1.4.6.tgz",
+            "integrity": "sha512-tPwgKoWBRf+d2YG4CgCm2C9MiRUwzdn2aOwlLtaBCj3ekM1afkWMKbAsbKuuWSdoMPhhxrvALIOV0FfX3WKJlg==",
+            "requires": {
+                "tslib": "^1.9.3"
+            }
+        },
+        "multicast-dns": {
+            "version": "6.2.3",
+            "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+            "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+            "requires": {
+                "dns-packet": "^1.3.1",
+                "thunky": "^1.0.2"
+            }
+        },
+        "multicast-dns-service-types": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+            "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
+        },
+        "mute-stream": {
+            "version": "0.0.8",
+            "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+            "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+        },
+        "name-all-modules-plugin": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz",
+            "integrity": "sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w="
+        },
+        "nan": {
+            "version": "2.14.2",
+            "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+            "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
+        },
+        "nanomatch": {
+            "version": "1.2.13",
+            "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+            "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+            "requires": {
+                "arr-diff": "^4.0.0",
+                "array-unique": "^0.3.2",
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "fragment-cache": "^0.2.1",
+                "is-windows": "^1.0.2",
+                "kind-of": "^6.0.2",
+                "object.pick": "^1.3.0",
+                "regex-not": "^1.0.0",
+                "snapdragon": "^0.8.1",
+                "to-regex": "^3.0.1"
+            }
+        },
+        "napi-build-utils": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+            "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+        },
+        "native-url": {
+            "version": "0.2.6",
+            "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz",
+            "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==",
+            "requires": {
+                "querystring": "^0.2.0"
+            }
+        },
+        "natural-compare": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+            "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+        },
+        "negotiator": {
+            "version": "0.6.2",
+            "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+            "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+        },
+        "neo-async": {
+            "version": "2.6.2",
+            "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+            "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+        },
+        "next-tick": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+            "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+        },
+        "nice-try": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+            "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+        },
+        "nlcst-to-string": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz",
+            "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg=="
+        },
+        "no-case": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+            "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+            "requires": {
+                "lower-case": "^2.0.2",
+                "tslib": "^2.0.3"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "node-abi": {
+            "version": "2.19.3",
+            "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz",
+            "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==",
+            "requires": {
+                "semver": "^5.4.1"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "node-addon-api": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz",
+            "integrity": "sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg=="
+        },
+        "node-eta": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz",
+            "integrity": "sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g="
+        },
+        "node-fetch": {
+            "version": "1.7.3",
+            "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+            "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+            "requires": {
+                "encoding": "^0.1.11",
+                "is-stream": "^1.0.1"
+            }
+        },
+        "node-forge": {
+            "version": "0.10.0",
+            "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+            "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="
+        },
+        "node-gyp": {
+            "version": "3.8.0",
+            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+            "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+            "requires": {
+                "fstream": "^1.0.0",
+                "glob": "^7.0.3",
+                "graceful-fs": "^4.1.2",
+                "mkdirp": "^0.5.0",
+                "nopt": "2 || 3",
+                "npmlog": "0 || 1 || 2 || 3 || 4",
+                "osenv": "0",
+                "request": "^2.87.0",
+                "rimraf": "2",
+                "semver": "~5.3.0",
+                "tar": "^2.0.0",
+                "which": "1"
+            },
+            "dependencies": {
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "semver": {
+                    "version": "5.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+                    "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+                }
+            }
+        },
+        "node-libs-browser": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+            "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+            "requires": {
+                "assert": "^1.1.1",
+                "browserify-zlib": "^0.2.0",
+                "buffer": "^4.3.0",
+                "console-browserify": "^1.1.0",
+                "constants-browserify": "^1.0.0",
+                "crypto-browserify": "^3.11.0",
+                "domain-browser": "^1.1.1",
+                "events": "^3.0.0",
+                "https-browserify": "^1.0.0",
+                "os-browserify": "^0.3.0",
+                "path-browserify": "0.0.1",
+                "process": "^0.11.10",
+                "punycode": "^1.2.4",
+                "querystring-es3": "^0.2.0",
+                "readable-stream": "^2.3.3",
+                "stream-browserify": "^2.0.1",
+                "stream-http": "^2.7.2",
+                "string_decoder": "^1.0.0",
+                "timers-browserify": "^2.0.4",
+                "tty-browserify": "0.0.0",
+                "url": "^0.11.0",
+                "util": "^0.11.0",
+                "vm-browserify": "^1.0.1"
+            },
+            "dependencies": {
+                "buffer": {
+                    "version": "4.9.2",
+                    "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+                    "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+                    "requires": {
+                        "base64-js": "^1.0.2",
+                        "ieee754": "^1.1.4",
+                        "isarray": "^1.0.0"
+                    }
+                },
+                "punycode": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+                    "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+                },
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    },
+                    "dependencies": {
+                        "string_decoder": {
+                            "version": "1.1.1",
+                            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                            "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                            "requires": {
+                                "safe-buffer": "~5.1.0"
+                            }
+                        }
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                }
+            }
+        },
+        "node-object-hash": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz",
+            "integrity": "sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ=="
+        },
+        "node-releases": {
+            "version": "1.1.67",
+            "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz",
+            "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg=="
+        },
+        "node-sass": {
+            "version": "4.14.1",
+            "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
+            "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
+            "requires": {
+                "async-foreach": "^0.1.3",
+                "chalk": "^1.1.1",
+                "cross-spawn": "^3.0.0",
+                "gaze": "^1.0.0",
+                "get-stdin": "^4.0.1",
+                "glob": "^7.0.3",
+                "in-publish": "^2.0.0",
+                "lodash": "^4.17.15",
+                "meow": "^3.7.0",
+                "mkdirp": "^0.5.1",
+                "nan": "^2.13.2",
+                "node-gyp": "^3.8.0",
+                "npmlog": "^4.0.0",
+                "request": "^2.88.0",
+                "sass-graph": "2.2.5",
+                "stdout-stream": "^1.4.0",
+                "true-case-path": "^1.0.2"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "ansi-styles": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+                },
+                "chalk": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+                    "requires": {
+                        "ansi-styles": "^2.2.1",
+                        "escape-string-regexp": "^1.0.2",
+                        "has-ansi": "^2.0.0",
+                        "strip-ansi": "^3.0.0",
+                        "supports-color": "^2.0.0"
+                    }
+                },
+                "cross-spawn": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+                    "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+                    "requires": {
+                        "lru-cache": "^4.0.1",
+                        "which": "^1.2.9"
+                    }
+                },
+                "lru-cache": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+                    "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+                    "requires": {
+                        "pseudomap": "^1.0.2",
+                        "yallist": "^2.1.2"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+                },
+                "true-case-path": {
+                    "version": "1.0.3",
+                    "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+                    "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+                    "requires": {
+                        "glob": "^7.1.2"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "noms": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz",
+            "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=",
+            "requires": {
+                "inherits": "^2.0.1",
+                "readable-stream": "~1.0.31"
+            },
+            "dependencies": {
+                "isarray": {
+                    "version": "0.0.1",
+                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                    "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+                },
+                "readable-stream": {
+                    "version": "1.0.34",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+                    "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.1",
+                        "isarray": "0.0.1",
+                        "string_decoder": "~0.10.x"
+                    }
+                },
+                "string_decoder": {
+                    "version": "0.10.31",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                    "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+                }
+            }
+        },
+        "noop-logger": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+            "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
+        },
+        "nopt": {
+            "version": "3.0.6",
+            "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+            "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+            "requires": {
+                "abbrev": "1"
+            }
+        },
+        "normalize-package-data": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+            "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+            "requires": {
+                "hosted-git-info": "^2.1.4",
+                "resolve": "^1.10.0",
+                "semver": "2 || 3 || 4 || 5",
+                "validate-npm-package-license": "^3.0.1"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "normalize-path": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+            "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+        },
+        "normalize-range": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+            "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
+        },
+        "normalize-url": {
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+            "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg=="
+        },
+        "nothing-mock": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/nothing-mock/-/nothing-mock-1.0.2.tgz",
+            "integrity": "sha512-7/Ss8rzSY78UX0cbPB8Qj7X6IHV+QO7T0Rq2nYbpd7HymBCE0HIWSjoTjqbSVV8JSuuD50oVObwZDfvnwOT/NQ==",
+            "dev": true
+        },
+        "npm-conf": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
+            "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
+            "requires": {
+                "config-chain": "^1.1.11",
+                "pify": "^3.0.0"
+            },
+            "dependencies": {
+                "pify": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+                    "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+                }
+            }
+        },
+        "npm-run-path": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+            "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+            "requires": {
+                "path-key": "^3.0.0"
+            },
+            "dependencies": {
+                "path-key": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+                    "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+                }
+            }
+        },
+        "npmlog": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+            "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+            "requires": {
+                "are-we-there-yet": "~1.1.2",
+                "console-control-strings": "~1.1.0",
+                "gauge": "~2.7.3",
+                "set-blocking": "~2.0.0"
+            }
+        },
+        "nth-check": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+            "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+            "requires": {
+                "boolbase": "~1.0.0"
+            }
+        },
+        "null-loader": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz",
+            "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==",
+            "requires": {
+                "loader-utils": "^1.2.3",
+                "schema-utils": "^1.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                }
+            }
+        },
+        "num2fraction": {
+            "version": "1.2.2",
+            "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+            "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
+        },
+        "number-is-nan": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+            "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+        },
+        "oauth-sign": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+        },
+        "object-assign": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+            "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+        },
+        "object-component": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+            "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
+        },
+        "object-copy": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+            "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+            "requires": {
+                "copy-descriptor": "^0.1.0",
+                "define-property": "^0.2.5",
+                "kind-of": "^3.0.3"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "object-fit-images": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz",
+            "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg=="
+        },
+        "object-hash": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
+            "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
+        },
+        "object-inspect": {
+            "version": "1.9.0",
+            "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
+            "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw=="
+        },
+        "object-is": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz",
+            "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3"
+            }
+        },
+        "object-keys": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+            "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+        },
+        "object-path": {
+            "version": "0.11.5",
+            "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz",
+            "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg=="
+        },
+        "object-visit": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+            "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+            "requires": {
+                "isobject": "^3.0.0"
+            }
+        },
+        "object.assign": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+            "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "has-symbols": "^1.0.1",
+                "object-keys": "^1.1.1"
+            }
+        },
+        "object.entries": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
+            "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "has": "^1.0.3"
+            }
+        },
+        "object.fromentries": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz",
+            "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "has": "^1.0.3"
+            }
+        },
+        "object.getownpropertydescriptors": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz",
+            "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1"
+            }
+        },
+        "object.pick": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+            "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+            "requires": {
+                "isobject": "^3.0.1"
+            }
+        },
+        "object.values": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz",
+            "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "has": "^1.0.3"
+            }
+        },
+        "obuf": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+            "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
+        },
+        "omggif": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
+            "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
+        },
+        "on-finished": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+            "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+            "requires": {
+                "ee-first": "1.1.1"
+            }
+        },
+        "on-headers": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+            "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+        },
+        "once": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+            "requires": {
+                "wrappy": "1"
+            }
+        },
+        "onetime": {
+            "version": "5.1.2",
+            "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+            "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+            "requires": {
+                "mimic-fn": "^2.1.0"
+            }
+        },
+        "open": {
+            "version": "7.4.2",
+            "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
+            "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+            "requires": {
+                "is-docker": "^2.0.0",
+                "is-wsl": "^2.1.1"
+            }
+        },
+        "opentracing": {
+            "version": "0.14.5",
+            "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.5.tgz",
+            "integrity": "sha512-XLKtEfHxqrWyF1fzxznsv78w3csW41ucHnjiKnfzZLD5FN8UBDZZL1i4q0FR29zjxXhm+2Hop+5Vr/b8tKIvEg=="
+        },
+        "opn": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
+            "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
+            "requires": {
+                "is-wsl": "^1.1.0"
+            },
+            "dependencies": {
+                "is-wsl": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+                    "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+                }
+            }
+        },
+        "optimize-css-assets-webpack-plugin": {
+            "version": "5.0.4",
+            "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz",
+            "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==",
+            "requires": {
+                "cssnano": "^4.1.10",
+                "last-call-webpack-plugin": "^3.0.0"
+            }
+        },
+        "optionator": {
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+            "requires": {
+                "deep-is": "~0.1.3",
+                "fast-levenshtein": "~2.0.6",
+                "levn": "~0.3.0",
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2",
+                "word-wrap": "~1.2.3"
+            }
+        },
+        "original": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+            "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+            "requires": {
+                "url-parse": "^1.4.3"
+            }
+        },
+        "os-browserify": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+            "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
+        },
+        "os-filter-obj": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz",
+            "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==",
+            "requires": {
+                "arch": "^2.1.0"
+            }
+        },
+        "os-homedir": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+            "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+        },
+        "os-tmpdir": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+            "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+        },
+        "osenv": {
+            "version": "0.1.5",
+            "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+            "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+            "requires": {
+                "os-homedir": "^1.0.0",
+                "os-tmpdir": "^1.0.0"
+            }
+        },
+        "ow": {
+            "version": "0.17.0",
+            "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz",
+            "integrity": "sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA==",
+            "requires": {
+                "type-fest": "^0.11.0"
+            },
+            "dependencies": {
+                "type-fest": {
+                    "version": "0.11.0",
+                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+                    "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
+                }
+            }
+        },
+        "p-cancelable": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+            "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
+        },
+        "p-defer": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
+            "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw=="
+        },
+        "p-event": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz",
+            "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==",
+            "requires": {
+                "p-timeout": "^3.1.0"
+            },
+            "dependencies": {
+                "p-timeout": {
+                    "version": "3.2.0",
+                    "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+                    "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+                    "requires": {
+                        "p-finally": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "p-finally": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+            "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+        },
+        "p-is-promise": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
+            "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
+        },
+        "p-limit": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+            "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+            "requires": {
+                "p-try": "^2.0.0"
+            }
+        },
+        "p-locate": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+            "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+            "requires": {
+                "p-limit": "^2.2.0"
+            }
+        },
+        "p-map": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+            "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+            "requires": {
+                "aggregate-error": "^3.0.0"
+            }
+        },
+        "p-map-series": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz",
+            "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=",
+            "requires": {
+                "p-reduce": "^1.0.0"
+            }
+        },
+        "p-pipe": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz",
+            "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw=="
+        },
+        "p-reduce": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
+            "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo="
+        },
+        "p-retry": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+            "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+            "requires": {
+                "retry": "^0.12.0"
+            }
+        },
+        "p-timeout": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
+            "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
+            "requires": {
+                "p-finally": "^1.0.0"
+            }
+        },
+        "p-try": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+            "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+        },
+        "package-json": {
+            "version": "6.5.0",
+            "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+            "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+            "requires": {
+                "got": "^9.6.0",
+                "registry-auth-token": "^4.0.0",
+                "registry-url": "^5.0.0",
+                "semver": "^6.2.0"
+            },
+            "dependencies": {
+                "get-stream": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+                    "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+                    "requires": {
+                        "pump": "^3.0.0"
+                    }
+                },
+                "got": {
+                    "version": "9.6.0",
+                    "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+                    "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+                    "requires": {
+                        "@sindresorhus/is": "^0.14.0",
+                        "@szmarczak/http-timer": "^1.1.2",
+                        "cacheable-request": "^6.0.0",
+                        "decompress-response": "^3.3.0",
+                        "duplexer3": "^0.1.4",
+                        "get-stream": "^4.1.0",
+                        "lowercase-keys": "^1.0.1",
+                        "mimic-response": "^1.0.1",
+                        "p-cancelable": "^1.0.0",
+                        "to-readable-stream": "^1.0.0",
+                        "url-parse-lax": "^3.0.0"
+                    }
+                },
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                }
+            }
+        },
+        "pako": {
+            "version": "1.0.11",
+            "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+            "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+        },
+        "parallel-transform": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+            "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+            "requires": {
+                "cyclist": "^1.0.1",
+                "inherits": "^2.0.3",
+                "readable-stream": "^2.1.5"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "parent-module": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+            "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+            "requires": {
+                "callsites": "^3.0.0"
+            }
+        },
+        "parse-asn1": {
+            "version": "5.1.6",
+            "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+            "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+            "requires": {
+                "asn1.js": "^5.2.0",
+                "browserify-aes": "^1.0.0",
+                "evp_bytestokey": "^1.0.0",
+                "pbkdf2": "^3.0.3",
+                "safe-buffer": "^5.1.1"
+            }
+        },
+        "parse-bmfont-ascii": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
+            "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU="
+        },
+        "parse-bmfont-binary": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
+            "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY="
+        },
+        "parse-bmfont-xml": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
+            "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
+            "requires": {
+                "xml-parse-from-string": "^1.0.0",
+                "xml2js": "^0.4.5"
+            }
+        },
+        "parse-english": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-4.2.0.tgz",
+            "integrity": "sha512-jw5N6wZUZViIw3VLG/FUSeL3vDhfw5Q2g4E3nYC69Mm5ANbh9ZWd+eligQbeUoyObZM8neynTn3l14e09pjEWg==",
+            "requires": {
+                "nlcst-to-string": "^2.0.0",
+                "parse-latin": "^4.0.0",
+                "unist-util-modify-children": "^2.0.0",
+                "unist-util-visit-children": "^1.0.0"
+            }
+        },
+        "parse-entities": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+            "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+            "requires": {
+                "character-entities": "^1.0.0",
+                "character-entities-legacy": "^1.0.0",
+                "character-reference-invalid": "^1.0.0",
+                "is-alphanumerical": "^1.0.0",
+                "is-decimal": "^1.0.0",
+                "is-hexadecimal": "^1.0.0"
+            }
+        },
+        "parse-headers": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz",
+            "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA=="
+        },
+        "parse-json": {
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+            "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+            "requires": {
+                "@babel/code-frame": "^7.0.0",
+                "error-ex": "^1.3.1",
+                "json-parse-even-better-errors": "^2.3.0",
+                "lines-and-columns": "^1.1.6"
+            }
+        },
+        "parse-latin": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-4.3.0.tgz",
+            "integrity": "sha512-TYKL+K98dcAWoCw/Ac1yrPviU8Trk+/gmjQVaoWEFDZmVD4KRg6c/80xKqNNFQObo2mTONgF8trzAf2UTwKafw==",
+            "requires": {
+                "nlcst-to-string": "^2.0.0",
+                "unist-util-modify-children": "^2.0.0",
+                "unist-util-visit-children": "^1.0.0"
+            }
+        },
+        "parse-numeric-range": {
+            "version": "0.0.2",
+            "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz",
+            "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ="
+        },
+        "parse-passwd": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+            "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
+        },
+        "parse-path": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz",
+            "integrity": "sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w==",
+            "requires": {
+                "is-ssh": "^1.3.0",
+                "protocols": "^1.4.0"
+            }
+        },
+        "parse-srcset": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+            "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE="
+        },
+        "parse-url": {
+            "version": "5.0.2",
+            "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz",
+            "integrity": "sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA==",
+            "requires": {
+                "is-ssh": "^1.3.0",
+                "normalize-url": "^3.3.0",
+                "parse-path": "^4.0.0",
+                "protocols": "^1.4.0"
+            }
+        },
+        "parse5": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
+            "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "parseqs": {
+            "version": "0.0.5",
+            "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+            "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+            "requires": {
+                "better-assert": "~1.0.0"
+            }
+        },
+        "parseuri": {
+            "version": "0.0.5",
+            "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+            "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+            "requires": {
+                "better-assert": "~1.0.0"
+            }
+        },
+        "parseurl": {
+            "version": "1.3.3",
+            "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+            "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+        },
+        "pascal-case": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+            "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+            "requires": {
+                "no-case": "^3.0.4",
+                "tslib": "^2.0.3"
+            },
+            "dependencies": {
+                "tslib": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+                    "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+                }
+            }
+        },
+        "pascalcase": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+            "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+        },
+        "password-prompt": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz",
+            "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==",
+            "requires": {
+                "ansi-escapes": "^3.1.0",
+                "cross-spawn": "^6.0.5"
+            }
+        },
+        "path-browserify": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+            "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
+        },
+        "path-dirname": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+            "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+        },
+        "path-exists": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+            "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+        },
+        "path-is-absolute": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+        },
+        "path-is-inside": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+            "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
+        },
+        "path-key": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+            "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+        },
+        "path-parse": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+        },
+        "path-posix": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz",
+            "integrity": "sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8="
+        },
+        "path-to-regexp": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+            "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+        },
+        "path-type": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+            "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+        },
+        "pbkdf2": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
+            "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+            "requires": {
+                "create-hash": "^1.1.2",
+                "create-hmac": "^1.1.4",
+                "ripemd160": "^2.0.1",
+                "safe-buffer": "^5.0.1",
+                "sha.js": "^2.4.8"
+            }
+        },
+        "peek-readable": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz",
+            "integrity": "sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA=="
+        },
+        "pend": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+            "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+        },
+        "performance-now": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+        },
+        "phin": {
+            "version": "2.9.3",
+            "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
+            "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA=="
+        },
+        "physical-cpu-count": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz",
+            "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA="
+        },
+        "picomatch": {
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+            "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
+        },
+        "pify": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+            "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+        },
+        "pinkie": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+            "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+        },
+        "pinkie-promise": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+            "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+            "requires": {
+                "pinkie": "^2.0.0"
+            }
+        },
+        "pixelmatch": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
+            "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
+            "requires": {
+                "pngjs": "^3.0.0"
+            }
+        },
+        "pkg-dir": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+            "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+            "requires": {
+                "find-up": "^4.0.0"
+            }
+        },
+        "pngjs": {
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+            "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+        },
+        "pngquant-bin": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.0.tgz",
+            "integrity": "sha512-oXWAS9MQ9iiDAJRdAZ9KO1mC5UwhzKkJsmetiu0iqIjJuW7JsuLhmc4JdRm7uJkIWRzIAou/Vq2VcjfJwz30Ow==",
+            "requires": {
+                "bin-build": "^3.0.0",
+                "bin-wrapper": "^4.0.1",
+                "execa": "^4.0.0",
+                "logalot": "^2.0.0"
+            }
+        },
+        "pnp-webpack-plugin": {
+            "version": "1.6.4",
+            "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+            "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
+            "requires": {
+                "ts-pnp": "^1.1.6"
+            }
+        },
+        "portfinder": {
+            "version": "1.0.28",
+            "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
+            "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
+            "requires": {
+                "async": "^2.6.2",
+                "debug": "^3.1.1",
+                "mkdirp": "^0.5.5"
+            },
+            "dependencies": {
+                "async": {
+                    "version": "2.6.3",
+                    "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+                    "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+                    "requires": {
+                        "lodash": "^4.17.14"
+                    }
+                }
+            }
+        },
+        "posix-character-classes": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+            "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+        },
+        "postcss": {
+            "version": "6.0.23",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+            "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+            "requires": {
+                "chalk": "^2.4.1",
+                "source-map": "^0.6.1",
+                "supports-color": "^5.4.0"
+            }
+        },
+        "postcss-calc": {
+            "version": "7.0.5",
+            "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+            "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+            "requires": {
+                "postcss": "^7.0.27",
+                "postcss-selector-parser": "^6.0.2",
+                "postcss-value-parser": "^4.0.2"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-colormin": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+            "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "color": "^3.0.0",
+                "has": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-convert-values": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+            "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+            "requires": {
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-discard-comments": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+            "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-discard-duplicates": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+            "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-discard-empty": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+            "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-discard-overridden": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+            "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-flexbugs-fixes": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz",
+            "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==",
+            "requires": {
+                "postcss": "^7.0.26"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-load-config": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
+            "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
+            "requires": {
+                "cosmiconfig": "^5.0.0",
+                "import-cwd": "^2.0.0"
+            },
+            "dependencies": {
+                "cosmiconfig": {
+                    "version": "5.2.1",
+                    "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+                    "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+                    "requires": {
+                        "import-fresh": "^2.0.0",
+                        "is-directory": "^0.3.1",
+                        "js-yaml": "^3.13.1",
+                        "parse-json": "^4.0.0"
+                    }
+                },
+                "import-fresh": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+                    "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+                    "requires": {
+                        "caller-path": "^2.0.0",
+                        "resolve-from": "^3.0.0"
+                    }
+                },
+                "parse-json": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+                    "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+                    "requires": {
+                        "error-ex": "^1.3.1",
+                        "json-parse-better-errors": "^1.0.1"
+                    }
+                },
+                "resolve-from": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+                    "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+                }
+            }
+        },
+        "postcss-loader": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+            "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+            "requires": {
+                "loader-utils": "^1.1.0",
+                "postcss": "^7.0.0",
+                "postcss-load-config": "^2.0.0",
+                "schema-utils": "^1.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-merge-longhand": {
+            "version": "4.0.11",
+            "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+            "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+            "requires": {
+                "css-color-names": "0.0.4",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0",
+                "stylehacks": "^4.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-merge-rules": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+            "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "caniuse-api": "^3.0.0",
+                "cssnano-util-same-parent": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-selector-parser": "^3.0.0",
+                "vendors": "^1.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-selector-parser": {
+                    "version": "3.1.2",
+                    "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+                    "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+                    "requires": {
+                        "dot-prop": "^5.2.0",
+                        "indexes-of": "^1.0.1",
+                        "uniq": "^1.0.1"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-minify-font-values": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+            "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+            "requires": {
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-minify-gradients": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+            "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+            "requires": {
+                "cssnano-util-get-arguments": "^4.0.0",
+                "is-color-stop": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-minify-params": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+            "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+            "requires": {
+                "alphanum-sort": "^1.0.0",
+                "browserslist": "^4.0.0",
+                "cssnano-util-get-arguments": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0",
+                "uniqs": "^2.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-minify-selectors": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+            "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+            "requires": {
+                "alphanum-sort": "^1.0.0",
+                "has": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-selector-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-selector-parser": {
+                    "version": "3.1.2",
+                    "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+                    "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+                    "requires": {
+                        "dot-prop": "^5.2.0",
+                        "indexes-of": "^1.0.1",
+                        "uniq": "^1.0.1"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-modules-extract-imports": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
+            "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
+            "requires": {
+                "postcss": "^6.0.1"
+            }
+        },
+        "postcss-modules-local-by-default": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+            "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+            "requires": {
+                "css-selector-tokenizer": "^0.7.0",
+                "postcss": "^6.0.1"
+            }
+        },
+        "postcss-modules-scope": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+            "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+            "requires": {
+                "css-selector-tokenizer": "^0.7.0",
+                "postcss": "^6.0.1"
+            }
+        },
+        "postcss-modules-values": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+            "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+            "requires": {
+                "icss-replace-symbols": "^1.1.0",
+                "postcss": "^6.0.1"
+            }
+        },
+        "postcss-normalize-charset": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+            "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+            "requires": {
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-display-values": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+            "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+            "requires": {
+                "cssnano-util-get-match": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-positions": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+            "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+            "requires": {
+                "cssnano-util-get-arguments": "^4.0.0",
+                "has": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-repeat-style": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+            "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+            "requires": {
+                "cssnano-util-get-arguments": "^4.0.0",
+                "cssnano-util-get-match": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-string": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+            "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+            "requires": {
+                "has": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-timing-functions": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+            "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+            "requires": {
+                "cssnano-util-get-match": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-unicode": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+            "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-url": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+            "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+            "requires": {
+                "is-absolute-url": "^2.0.0",
+                "normalize-url": "^3.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "is-absolute-url": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+                    "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
+                },
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-normalize-whitespace": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+            "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+            "requires": {
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-ordered-values": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+            "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+            "requires": {
+                "cssnano-util-get-arguments": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-reduce-initial": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+            "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "caniuse-api": "^3.0.0",
+                "has": "^1.0.0",
+                "postcss": "^7.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-reduce-transforms": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+            "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+            "requires": {
+                "cssnano-util-get-match": "^4.0.0",
+                "has": "^1.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-selector-parser": {
+            "version": "6.0.4",
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz",
+            "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==",
+            "requires": {
+                "cssesc": "^3.0.0",
+                "indexes-of": "^1.0.1",
+                "uniq": "^1.0.1",
+                "util-deprecate": "^1.0.2"
+            }
+        },
+        "postcss-svgo": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz",
+            "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==",
+            "requires": {
+                "is-svg": "^3.0.0",
+                "postcss": "^7.0.0",
+                "postcss-value-parser": "^3.0.0",
+                "svgo": "^1.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-value-parser": {
+                    "version": "3.3.1",
+                    "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+                    "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-unique-selectors": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+            "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+            "requires": {
+                "alphanum-sort": "^1.0.0",
+                "postcss": "^7.0.0",
+                "uniqs": "^2.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "postcss-value-parser": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+            "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="
+        },
+        "potrace": {
+            "version": "2.1.8",
+            "resolved": "https://registry.npmjs.org/potrace/-/potrace-2.1.8.tgz",
+            "integrity": "sha512-V9hI7UMJyEhNZjM8CbZaP/804ZRLgzWkCS9OOYnEZkszzj3zKR/erRdj0uFMcN3pp6x4B+AIZebmkQgGRinG/g==",
+            "requires": {
+                "jimp": "^0.14.0"
+            }
+        },
+        "prebuild-install": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.0.tgz",
+            "integrity": "sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==",
+            "requires": {
+                "detect-libc": "^1.0.3",
+                "expand-template": "^2.0.3",
+                "github-from-package": "0.0.0",
+                "minimist": "^1.2.3",
+                "mkdirp-classic": "^0.5.3",
+                "napi-build-utils": "^1.0.1",
+                "node-abi": "^2.7.0",
+                "noop-logger": "^0.1.1",
+                "npmlog": "^4.0.1",
+                "pump": "^3.0.0",
+                "rc": "^1.2.7",
+                "simple-get": "^3.0.3",
+                "tar-fs": "^2.0.0",
+                "tunnel-agent": "^0.6.0",
+                "which-pm-runs": "^1.0.0"
+            },
+            "dependencies": {
+                "decompress-response": {
+                    "version": "4.2.1",
+                    "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+                    "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+                    "requires": {
+                        "mimic-response": "^2.0.0"
+                    }
+                },
+                "mimic-response": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+                    "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
+                },
+                "simple-get": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+                    "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+                    "requires": {
+                        "decompress-response": "^4.2.0",
+                        "once": "^1.3.1",
+                        "simple-concat": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "prelude-ls": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+            "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+        },
+        "prepend-http": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+            "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
+        },
+        "prettier": {
+            "version": "1.19.1",
+            "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+            "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+            "dev": true
+        },
+        "pretty-bytes": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+            "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk="
+        },
+        "pretty-error": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
+            "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+            "requires": {
+                "lodash": "^4.17.20",
+                "renderkid": "^2.0.4"
+            }
+        },
+        "pretty-format": {
+            "version": "25.5.0",
+            "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+            "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
+            "requires": {
+                "@jest/types": "^25.5.0",
+                "ansi-regex": "^5.0.0",
+                "ansi-styles": "^4.0.0",
+                "react-is": "^16.12.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                }
+            }
+        },
+        "prismjs": {
+            "version": "1.22.0",
+            "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz",
+            "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==",
+            "requires": {
+                "clipboard": "^2.0.0"
+            }
+        },
+        "probe-image-size": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-5.0.0.tgz",
+            "integrity": "sha512-V6uBYw5eBc5UVIE7MUZD6Nxg0RYuGDWLDenEn0B1WC6PcTvn1xdQ6HLDDuznefsiExC6rNrCz7mFRBo0f3Xekg==",
+            "requires": {
+                "deepmerge": "^4.0.0",
+                "inherits": "^2.0.3",
+                "next-tick": "^1.0.0",
+                "request": "^2.83.0",
+                "stream-parser": "~0.3.1"
+            }
+        },
+        "process": {
+            "version": "0.11.10",
+            "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+            "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+        },
+        "process-nextick-args": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+            "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+        },
+        "progress": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+            "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+        },
+        "promise": {
+            "version": "7.3.1",
+            "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+            "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+            "requires": {
+                "asap": "~2.0.3"
+            }
+        },
+        "promise-inflight": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+            "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
+        },
+        "prompts": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz",
+            "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==",
+            "requires": {
+                "kleur": "^3.0.3",
+                "sisteransi": "^1.0.5"
+            }
+        },
+        "prop-types": {
+            "version": "15.7.2",
+            "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+            "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+            "requires": {
+                "loose-envify": "^1.4.0",
+                "object-assign": "^4.1.1",
+                "react-is": "^16.8.1"
+            }
+        },
+        "proper-lockfile": {
+            "version": "4.1.1",
+            "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.1.tgz",
+            "integrity": "sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg==",
+            "requires": {
+                "graceful-fs": "^4.1.11",
+                "retry": "^0.12.0",
+                "signal-exit": "^3.0.2"
+            }
+        },
+        "property-information": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/property-information/-/property-information-4.2.0.tgz",
+            "integrity": "sha512-TlgDPagHh+eBKOnH2VYvk8qbwsCG/TAJdmTL7f1PROUcSO8qt/KSmShEQ/OKvock8X9tFjtqjCScyOkkkvIKVQ==",
+            "requires": {
+                "xtend": "^4.0.1"
+            }
+        },
+        "proto-list": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+            "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
+        },
+        "protocols": {
+            "version": "1.4.8",
+            "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz",
+            "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg=="
+        },
+        "proxy-addr": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+            "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+            "requires": {
+                "forwarded": "~0.1.2",
+                "ipaddr.js": "1.9.1"
+            }
+        },
+        "prr": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+            "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+        },
+        "pseudomap": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+            "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+        },
+        "psl": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+        },
+        "public-encrypt": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+            "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+            "requires": {
+                "bn.js": "^4.1.0",
+                "browserify-rsa": "^4.0.0",
+                "create-hash": "^1.1.0",
+                "parse-asn1": "^5.0.0",
+                "randombytes": "^2.0.1",
+                "safe-buffer": "^5.1.2"
+            },
+            "dependencies": {
+                "bn.js": {
+                    "version": "4.11.9",
+                    "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                    "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="
+                }
+            }
+        },
+        "pump": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+            "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+            "requires": {
+                "end-of-stream": "^1.1.0",
+                "once": "^1.3.1"
+            }
+        },
+        "pumpify": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+            "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+            "requires": {
+                "duplexify": "^3.6.0",
+                "inherits": "^2.0.3",
+                "pump": "^2.0.0"
+            },
+            "dependencies": {
+                "pump": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+                    "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+                    "requires": {
+                        "end-of-stream": "^1.1.0",
+                        "once": "^1.3.1"
+                    }
+                }
+            }
+        },
+        "punycode": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+        },
+        "pupa": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
+            "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
+            "requires": {
+                "escape-goat": "^2.0.0"
+            }
+        },
+        "q": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+            "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+        },
+        "qs": {
+            "version": "6.7.0",
+            "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+            "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+        },
+        "query-string": {
+            "version": "6.13.7",
+            "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.7.tgz",
+            "integrity": "sha512-CsGs8ZYb39zu0WLkeOhe0NMePqgYdAuCqxOYKDR5LVCytDZYMGx3Bb+xypvQvPHVPijRXB0HZNFllCzHRe4gEA==",
+            "requires": {
+                "decode-uri-component": "^0.2.0",
+                "split-on-first": "^1.0.0",
+                "strict-uri-encode": "^2.0.0"
+            },
+            "dependencies": {
+                "strict-uri-encode": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+                    "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
+                }
+            }
+        },
+        "querystring": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz",
+            "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg=="
+        },
+        "querystring-es3": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+            "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+        },
+        "querystringify": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+            "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+        },
+        "ramda": {
+            "version": "0.21.0",
+            "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz",
+            "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU="
+        },
+        "randombytes": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+            "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+            "requires": {
+                "safe-buffer": "^5.1.0"
+            }
+        },
+        "randomfill": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+            "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+            "requires": {
+                "randombytes": "^2.0.5",
+                "safe-buffer": "^5.1.0"
+            }
+        },
+        "range-parser": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+            "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+        },
+        "raw-body": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+            "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+            "requires": {
+                "bytes": "3.1.0",
+                "http-errors": "1.7.2",
+                "iconv-lite": "0.4.24",
+                "unpipe": "1.0.0"
+            },
+            "dependencies": {
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+                    "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                }
+            }
+        },
+        "raw-loader": {
+            "version": "0.5.1",
+            "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
+            "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao="
+        },
+        "rc": {
+            "version": "1.2.8",
+            "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+            "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+            "requires": {
+                "deep-extend": "^0.6.0",
+                "ini": "~1.3.0",
+                "minimist": "^1.2.0",
+                "strip-json-comments": "~2.0.1"
+            },
+            "dependencies": {
+                "strip-json-comments": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+                    "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+                }
+            }
+        },
+        "react": {
+            "version": "16.14.0",
+            "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
+            "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+            "requires": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1",
+                "prop-types": "^15.6.2"
+            }
+        },
+        "react-dev-utils": {
+            "version": "4.2.3",
+            "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.3.tgz",
+            "integrity": "sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ==",
+            "requires": {
+                "address": "1.0.3",
+                "babel-code-frame": "6.26.0",
+                "chalk": "1.1.3",
+                "cross-spawn": "5.1.0",
+                "detect-port-alt": "1.1.3",
+                "escape-string-regexp": "1.0.5",
+                "filesize": "3.5.11",
+                "global-modules": "1.0.0",
+                "gzip-size": "3.0.0",
+                "inquirer": "3.3.0",
+                "is-root": "1.0.0",
+                "opn": "5.1.0",
+                "react-error-overlay": "^3.0.0",
+                "recursive-readdir": "2.2.1",
+                "shell-quote": "1.6.1",
+                "sockjs-client": "1.1.4",
+                "strip-ansi": "3.0.1",
+                "text-table": "0.2.0"
+            },
+            "dependencies": {
+                "address": {
+                    "version": "1.0.3",
+                    "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
+                    "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg=="
+                },
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "ansi-styles": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+                },
+                "chalk": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+                    "requires": {
+                        "ansi-styles": "^2.2.1",
+                        "escape-string-regexp": "^1.0.2",
+                        "has-ansi": "^2.0.0",
+                        "strip-ansi": "^3.0.0",
+                        "supports-color": "^2.0.0"
+                    }
+                },
+                "chardet": {
+                    "version": "0.4.2",
+                    "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+                    "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
+                },
+                "cli-cursor": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+                    "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+                    "requires": {
+                        "restore-cursor": "^2.0.0"
+                    }
+                },
+                "cli-width": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+                    "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
+                },
+                "cross-spawn": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+                    "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+                    "requires": {
+                        "lru-cache": "^4.0.1",
+                        "shebang-command": "^1.2.0",
+                        "which": "^1.2.9"
+                    }
+                },
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "detect-port-alt": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz",
+                    "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=",
+                    "requires": {
+                        "address": "^1.0.1",
+                        "debug": "^2.6.0"
+                    }
+                },
+                "external-editor": {
+                    "version": "2.2.0",
+                    "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+                    "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+                    "requires": {
+                        "chardet": "^0.4.0",
+                        "iconv-lite": "^0.4.17",
+                        "tmp": "^0.0.33"
+                    }
+                },
+                "figures": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+                    "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+                    "requires": {
+                        "escape-string-regexp": "^1.0.5"
+                    }
+                },
+                "iconv-lite": {
+                    "version": "0.4.24",
+                    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+                    "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+                    "requires": {
+                        "safer-buffer": ">= 2.1.2 < 3"
+                    }
+                },
+                "inquirer": {
+                    "version": "3.3.0",
+                    "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+                    "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
+                    "requires": {
+                        "ansi-escapes": "^3.0.0",
+                        "chalk": "^2.0.0",
+                        "cli-cursor": "^2.1.0",
+                        "cli-width": "^2.0.0",
+                        "external-editor": "^2.0.4",
+                        "figures": "^2.0.0",
+                        "lodash": "^4.3.0",
+                        "mute-stream": "0.0.7",
+                        "run-async": "^2.2.0",
+                        "rx-lite": "^4.0.8",
+                        "rx-lite-aggregates": "^4.0.8",
+                        "string-width": "^2.1.0",
+                        "strip-ansi": "^4.0.0",
+                        "through": "^2.3.6"
+                    },
+                    "dependencies": {
+                        "ansi-regex": {
+                            "version": "3.0.0",
+                            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+                            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+                        },
+                        "ansi-styles": {
+                            "version": "3.2.1",
+                            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+                            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+                            "requires": {
+                                "color-convert": "^1.9.0"
+                            }
+                        },
+                        "chalk": {
+                            "version": "2.4.2",
+                            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+                            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+                            "requires": {
+                                "ansi-styles": "^3.2.1",
+                                "escape-string-regexp": "^1.0.5",
+                                "supports-color": "^5.3.0"
+                            }
+                        },
+                        "strip-ansi": {
+                            "version": "4.0.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+                            "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+                            "requires": {
+                                "ansi-regex": "^3.0.0"
+                            }
+                        },
+                        "supports-color": {
+                            "version": "5.5.0",
+                            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+                            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+                            "requires": {
+                                "has-flag": "^3.0.0"
+                            }
+                        }
+                    }
+                },
+                "lru-cache": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+                    "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+                    "requires": {
+                        "pseudomap": "^1.0.2",
+                        "yallist": "^2.1.2"
+                    }
+                },
+                "mimic-fn": {
+                    "version": "1.2.0",
+                    "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+                    "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "mute-stream": {
+                    "version": "0.0.7",
+                    "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+                    "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
+                },
+                "onetime": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+                    "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+                    "requires": {
+                        "mimic-fn": "^1.0.0"
+                    }
+                },
+                "restore-cursor": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+                    "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+                    "requires": {
+                        "onetime": "^2.0.0",
+                        "signal-exit": "^3.0.2"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+                },
+                "tmp": {
+                    "version": "0.0.33",
+                    "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+                    "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+                    "requires": {
+                        "os-tmpdir": "~1.0.2"
+                    }
+                },
+                "yallist": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+                    "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+                }
+            }
+        },
+        "react-dom": {
+            "version": "16.14.0",
+            "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
+            "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
+            "requires": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1",
+                "prop-types": "^15.6.2",
+                "scheduler": "^0.19.1"
+            }
+        },
+        "react-error-overlay": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz",
+            "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw=="
+        },
+        "react-fast-compare": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz",
+            "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw=="
+        },
+        "react-helmet": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.1.tgz",
+            "integrity": "sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA==",
+            "requires": {
+                "object-assign": "^4.1.1",
+                "prop-types": "^15.5.4",
+                "react-fast-compare": "^2.0.2",
+                "react-side-effect": "^1.1.0"
+            }
+        },
+        "react-hot-loader": {
+            "version": "4.13.0",
+            "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.0.tgz",
+            "integrity": "sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==",
+            "requires": {
+                "fast-levenshtein": "^2.0.6",
+                "global": "^4.3.0",
+                "hoist-non-react-statics": "^3.3.0",
+                "loader-utils": "^1.1.0",
+                "prop-types": "^15.6.1",
+                "react-lifecycles-compat": "^3.0.4",
+                "shallowequal": "^1.1.0",
+                "source-map": "^0.7.3"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.7.3",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+                    "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+                }
+            }
+        },
+        "react-icons": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.2.0.tgz",
+            "integrity": "sha512-rmzEDFt+AVXRzD7zDE21gcxyBizD/3NqjbX6cmViAgdqfJ2UiLer8927/QhhrXQV7dEj/1EGuOTPp7JnLYVJKQ=="
+        },
+        "react-is": {
+            "version": "16.13.1",
+            "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+            "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+        },
+        "react-lifecycles-compat": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+            "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+        },
+        "react-mathjax2": {
+            "version": "0.0.2",
+            "resolved": "https://registry.npmjs.org/react-mathjax2/-/react-mathjax2-0.0.2.tgz",
+            "integrity": "sha512-m63PiOej2OTpcgvT4+VAxTr0zxQVfRmmkSD66QSEcQgSh8ryU/oInlnBCpBJRH6Za5GW8N3/pevTuzI+FG6OkA==",
+            "requires": {
+                "load-script": "^1.0.0",
+                "prop-types": "^15.6.0",
+                "react": "^16.0.0"
+            }
+        },
+        "react-refresh": {
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
+            "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg=="
+        },
+        "react-side-effect": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.2.0.tgz",
+            "integrity": "sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w==",
+            "requires": {
+                "shallowequal": "^1.0.1"
+            }
+        },
+        "read": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+            "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
+            "requires": {
+                "mute-stream": "~0.0.4"
+            }
+        },
+        "read-pkg": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+            "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+            "requires": {
+                "load-json-file": "^2.0.0",
+                "normalize-package-data": "^2.3.2",
+                "path-type": "^2.0.0"
+            },
+            "dependencies": {
+                "path-type": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+                    "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+                    "requires": {
+                        "pify": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "read-pkg-up": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+            "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+            "requires": {
+                "find-up": "^2.0.0",
+                "read-pkg": "^2.0.0"
+            },
+            "dependencies": {
+                "find-up": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+                    "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+                    "requires": {
+                        "locate-path": "^2.0.0"
+                    }
+                },
+                "locate-path": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+                    "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+                    "requires": {
+                        "p-locate": "^2.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "p-limit": {
+                    "version": "1.3.0",
+                    "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+                    "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+                    "requires": {
+                        "p-try": "^1.0.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+                    "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+                    "requires": {
+                        "p-limit": "^1.1.0"
+                    }
+                },
+                "p-try": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+                    "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                }
+            }
+        },
+        "readable-stream": {
+            "version": "3.6.0",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+            "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+            "requires": {
+                "inherits": "^2.0.3",
+                "string_decoder": "^1.1.1",
+                "util-deprecate": "^1.0.1"
+            }
+        },
+        "readable-web-to-node-stream": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz",
+            "integrity": "sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA==",
+            "requires": {
+                "@types/readable-stream": "^2.3.9",
+                "readable-stream": "^3.6.0"
+            }
+        },
+        "readdirp": {
+            "version": "3.5.0",
+            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+            "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+            "requires": {
+                "picomatch": "^2.2.1"
+            }
+        },
+        "recursive-readdir": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz",
+            "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=",
+            "requires": {
+                "minimatch": "3.0.3"
+            },
+            "dependencies": {
+                "minimatch": {
+                    "version": "3.0.3",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+                    "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+                    "requires": {
+                        "brace-expansion": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "redent": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+            "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+            "requires": {
+                "indent-string": "^2.1.0",
+                "strip-indent": "^1.0.1"
+            },
+            "dependencies": {
+                "indent-string": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+                    "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+                    "requires": {
+                        "repeating": "^2.0.0"
+                    }
+                },
+                "strip-indent": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+                    "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+                    "requires": {
+                        "get-stdin": "^4.0.1"
+                    }
+                }
+            }
+        },
+        "redux": {
+            "version": "4.0.5",
+            "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz",
+            "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==",
+            "requires": {
+                "loose-envify": "^1.4.0",
+                "symbol-observable": "^1.2.0"
+            }
+        },
+        "redux-thunk": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz",
+            "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw=="
+        },
+        "regenerate": {
+            "version": "1.4.2",
+            "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+            "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+        },
+        "regenerate-unicode-properties": {
+            "version": "8.2.0",
+            "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
+            "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
+            "requires": {
+                "regenerate": "^1.4.0"
+            }
+        },
+        "regenerator-runtime": {
+            "version": "0.13.7",
+            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+            "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+        },
+        "regenerator-transform": {
+            "version": "0.14.5",
+            "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+            "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+            "requires": {
+                "@babel/runtime": "^7.8.4"
+            }
+        },
+        "regex-not": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+            "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+            "requires": {
+                "extend-shallow": "^3.0.2",
+                "safe-regex": "^1.1.0"
+            }
+        },
+        "regexp.prototype.flags": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
+            "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
+            "requires": {
+                "call-bind": "^1.0.2",
+                "define-properties": "^1.1.3"
+            },
+            "dependencies": {
+                "call-bind": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+                    "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+                    "requires": {
+                        "function-bind": "^1.1.1",
+                        "get-intrinsic": "^1.0.2"
+                    }
+                },
+                "get-intrinsic": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+                    "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+                    "requires": {
+                        "function-bind": "^1.1.1",
+                        "has": "^1.0.3",
+                        "has-symbols": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "regexpp": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
+            "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q=="
+        },
+        "regexpu-core": {
+            "version": "4.7.1",
+            "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
+            "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
+            "requires": {
+                "regenerate": "^1.4.0",
+                "regenerate-unicode-properties": "^8.2.0",
+                "regjsgen": "^0.5.1",
+                "regjsparser": "^0.6.4",
+                "unicode-match-property-ecmascript": "^1.0.4",
+                "unicode-match-property-value-ecmascript": "^1.2.0"
+            }
+        },
+        "registry-auth-token": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
+            "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
+            "requires": {
+                "rc": "^1.2.8"
+            }
+        },
+        "registry-url": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+            "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+            "requires": {
+                "rc": "^1.2.8"
+            }
+        },
+        "regjsgen": {
+            "version": "0.5.2",
+            "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
+            "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
+        },
+        "regjsparser": {
+            "version": "0.6.7",
+            "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz",
+            "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==",
+            "requires": {
+                "jsesc": "~0.5.0"
+            },
+            "dependencies": {
+                "jsesc": {
+                    "version": "0.5.0",
+                    "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+                    "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+                }
+            }
+        },
+        "rehype-react": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-3.1.0.tgz",
+            "integrity": "sha512-7SiLiqNudSGkvhrePkdKqdUvngZqzG+PJhdR5EeIFELz2j2ek4aO5DHbxUXYvaZfqUiBDO2Aeq1OROUmxmu+Vg==",
+            "requires": {
+                "@mapbox/hast-util-table-cell-style": "^0.1.3",
+                "has": "^1.0.1",
+                "hast-to-hyperscript": "^5.0.0"
+            }
+        },
+        "remark": {
+            "version": "10.0.1",
+            "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
+            "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",
+            "requires": {
+                "remark-parse": "^6.0.0",
+                "remark-stringify": "^6.0.0",
+                "unified": "^7.0.0"
+            },
+            "dependencies": {
+                "is-buffer": {
+                    "version": "2.0.5",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+                    "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
+                },
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "markdown-table": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
+                    "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
+                },
+                "mdast-util-compact": {
+                    "version": "1.0.4",
+                    "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz",
+                    "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==",
+                    "requires": {
+                        "unist-util-visit": "^1.1.0"
+                    }
+                },
+                "parse-entities": {
+                    "version": "1.2.2",
+                    "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
+                    "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
+                    "requires": {
+                        "character-entities": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "character-reference-invalid": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-decimal": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                },
+                "remark-stringify": {
+                    "version": "6.0.4",
+                    "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz",
+                    "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
+                    "requires": {
+                        "ccount": "^1.0.0",
+                        "is-alphanumeric": "^1.0.0",
+                        "is-decimal": "^1.0.0",
+                        "is-whitespace-character": "^1.0.0",
+                        "longest-streak": "^2.0.1",
+                        "markdown-escapes": "^1.0.0",
+                        "markdown-table": "^1.1.0",
+                        "mdast-util-compact": "^1.0.0",
+                        "parse-entities": "^1.0.2",
+                        "repeat-string": "^1.5.4",
+                        "state-toggle": "^1.0.0",
+                        "stringify-entities": "^1.0.1",
+                        "unherit": "^1.0.4",
+                        "xtend": "^4.0.1"
+                    }
+                },
+                "replace-ext": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+                    "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+                },
+                "stringify-entities": {
+                    "version": "1.3.2",
+                    "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz",
+                    "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
+                    "requires": {
+                        "character-entities-html4": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                },
+                "unified": {
+                    "version": "7.1.0",
+                    "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz",
+                    "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==",
+                    "requires": {
+                        "@types/unist": "^2.0.0",
+                        "@types/vfile": "^3.0.0",
+                        "bail": "^1.0.0",
+                        "extend": "^3.0.0",
+                        "is-plain-obj": "^1.1.0",
+                        "trough": "^1.0.0",
+                        "vfile": "^3.0.0",
+                        "x-is-string": "^0.1.0"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-stringify-position": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
+                    "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                },
+                "vfile": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz",
+                    "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==",
+                    "requires": {
+                        "is-buffer": "^2.0.0",
+                        "replace-ext": "1.0.0",
+                        "unist-util-stringify-position": "^1.0.0",
+                        "vfile-message": "^1.0.0"
+                    }
+                },
+                "vfile-message": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
+                    "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
+                    "requires": {
+                        "unist-util-stringify-position": "^1.1.1"
+                    }
+                }
+            }
+        },
+        "remark-math": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-1.0.6.tgz",
+            "integrity": "sha512-I43wU/QOQpXvVFXKjA4FHp5xptK65+5F6yolm8+69/JV0EqSOB64wURUZ3JK50JtnTL8FvwLiH2PZ+fvsBxviA==",
+            "requires": {
+                "trim-trailing-lines": "^1.1.0"
+            }
+        },
+        "remark-mdx": {
+            "version": "2.0.0-next.8",
+            "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-next.8.tgz",
+            "integrity": "sha512-mjP0yo6BgjYrx5a+gKWYRFWbGnRiWi4Fdf17xGCr9VkSMnG4Dyo06spqbaLfHwl0KkQ/RQZlR2sn1mKnYduJdw==",
+            "requires": {
+                "parse-entities": "^2.0.0",
+                "remark-stringify": "^8.1.0",
+                "stringify-entities": "^3.0.1",
+                "strip-indent": "^3.0.0",
+                "unist-util-stringify-position": "^2.0.3"
+            }
+        },
+        "remark-mdxjs": {
+            "version": "2.0.0-next.8",
+            "resolved": "https://registry.npmjs.org/remark-mdxjs/-/remark-mdxjs-2.0.0-next.8.tgz",
+            "integrity": "sha512-Z/+0eWc7pBEABwg3a5ptL+vCTWHYMFnYzpLoJxTm2muBSk8XyB/CL+tEJ6SV3Q/fScHX2dtG4JRcGSpbZFLazQ==",
+            "requires": {
+                "@babel/core": "7.10.5",
+                "@babel/helper-plugin-utils": "7.10.4",
+                "@babel/plugin-proposal-object-rest-spread": "7.10.4",
+                "@babel/plugin-syntax-jsx": "7.10.4",
+                "@mdx-js/util": "^2.0.0-next.8"
+            },
+            "dependencies": {
+                "@babel/core": {
+                    "version": "7.10.5",
+                    "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz",
+                    "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==",
+                    "requires": {
+                        "@babel/code-frame": "^7.10.4",
+                        "@babel/generator": "^7.10.5",
+                        "@babel/helper-module-transforms": "^7.10.5",
+                        "@babel/helpers": "^7.10.4",
+                        "@babel/parser": "^7.10.5",
+                        "@babel/template": "^7.10.4",
+                        "@babel/traverse": "^7.10.5",
+                        "@babel/types": "^7.10.5",
+                        "convert-source-map": "^1.7.0",
+                        "debug": "^4.1.0",
+                        "gensync": "^1.0.0-beta.1",
+                        "json5": "^2.1.2",
+                        "lodash": "^4.17.19",
+                        "resolve": "^1.3.2",
+                        "semver": "^5.4.1",
+                        "source-map": "^0.5.0"
+                    }
+                },
+                "@babel/helper-plugin-utils": {
+                    "version": "7.10.4",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+                    "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+                },
+                "@babel/plugin-proposal-object-rest-spread": {
+                    "version": "7.10.4",
+                    "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz",
+                    "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==",
+                    "requires": {
+                        "@babel/helper-plugin-utils": "^7.10.4",
+                        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+                        "@babel/plugin-transform-parameters": "^7.10.4"
+                    }
+                },
+                "@babel/plugin-syntax-jsx": {
+                    "version": "7.10.4",
+                    "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
+                    "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
+                    "requires": {
+                        "@babel/helper-plugin-utils": "^7.10.4"
+                    }
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                },
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                },
+                "source-map": {
+                    "version": "0.5.7",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+                }
+            }
+        },
+        "remark-parse": {
+            "version": "6.0.3",
+            "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz",
+            "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==",
+            "requires": {
+                "collapse-white-space": "^1.0.2",
+                "is-alphabetical": "^1.0.0",
+                "is-decimal": "^1.0.0",
+                "is-whitespace-character": "^1.0.0",
+                "is-word-character": "^1.0.0",
+                "markdown-escapes": "^1.0.0",
+                "parse-entities": "^1.1.0",
+                "repeat-string": "^1.5.4",
+                "state-toggle": "^1.0.0",
+                "trim": "0.0.1",
+                "trim-trailing-lines": "^1.0.0",
+                "unherit": "^1.0.4",
+                "unist-util-remove-position": "^1.0.0",
+                "vfile-location": "^2.0.0",
+                "xtend": "^4.0.1"
+            },
+            "dependencies": {
+                "parse-entities": {
+                    "version": "1.2.2",
+                    "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
+                    "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
+                    "requires": {
+                        "character-entities": "^1.0.0",
+                        "character-entities-legacy": "^1.0.0",
+                        "character-reference-invalid": "^1.0.0",
+                        "is-alphanumerical": "^1.0.0",
+                        "is-decimal": "^1.0.0",
+                        "is-hexadecimal": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "remark-react": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/remark-react/-/remark-react-5.0.1.tgz",
+            "integrity": "sha512-yHv5WIh47srKfdm794UMIHjNLr6EY2YCzsqvdJ/qvN1Tq1jgyg3q8Zo9pJc4L7BwZOMTia6O2JgrJeOsJfowzA==",
+            "requires": {
+                "@mapbox/hast-util-table-cell-style": "^0.1.3",
+                "hast-to-hyperscript": "^6.0.0",
+                "hast-util-sanitize": "^1.0.0",
+                "mdast-util-to-hast": "^4.0.0"
+            },
+            "dependencies": {
+                "hast-to-hyperscript": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-6.0.0.tgz",
+                    "integrity": "sha512-QnJbXddVGNJ5v3KegK1MY6luTkNDBcJnCQZcekt7AkES2z4tYy85pbFUXx7Mb0iXZBKfwoVdgfxU12GbmlwbbQ==",
+                    "requires": {
+                        "comma-separated-tokens": "^1.0.0",
+                        "property-information": "^5.0.0",
+                        "space-separated-tokens": "^1.0.0",
+                        "style-to-object": "^0.2.1",
+                        "unist-util-is": "^2.0.0",
+                        "web-namespaces": "^1.1.2"
+                    }
+                },
+                "mdast-util-to-hast": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-4.0.0.tgz",
+                    "integrity": "sha512-yOTZSxR1aPvWRUxVeLaLZ1sCYrK87x2Wusp1bDM/Ao2jETBhYUKITI3nHvgy+HkZW54HuCAhHnS0mTcbECD5Ig==",
+                    "requires": {
+                        "collapse-white-space": "^1.0.0",
+                        "detab": "^2.0.0",
+                        "mdast-util-definitions": "^1.2.0",
+                        "mdurl": "^1.0.1",
+                        "trim": "0.0.1",
+                        "trim-lines": "^1.0.0",
+                        "unist-builder": "^1.0.1",
+                        "unist-util-generated": "^1.1.0",
+                        "unist-util-position": "^3.0.0",
+                        "unist-util-visit": "^1.1.0",
+                        "xtend": "^4.0.1"
+                    }
+                },
+                "property-information": {
+                    "version": "5.6.0",
+                    "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
+                    "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+                    "requires": {
+                        "xtend": "^4.0.0"
+                    }
+                },
+                "style-to-object": {
+                    "version": "0.2.3",
+                    "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz",
+                    "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==",
+                    "requires": {
+                        "inline-style-parser": "0.1.1"
+                    }
+                },
+                "unist-util-is": {
+                    "version": "2.1.3",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz",
+                    "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    },
+                    "dependencies": {
+                        "unist-util-is": {
+                            "version": "3.0.0",
+                            "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                            "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                        }
+                    }
+                }
+            }
+        },
+        "remark-retext": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz",
+            "integrity": "sha512-UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==",
+            "requires": {
+                "mdast-util-to-nlcst": "^3.2.0"
+            }
+        },
+        "remark-stringify": {
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz",
+            "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==",
+            "requires": {
+                "ccount": "^1.0.0",
+                "is-alphanumeric": "^1.0.0",
+                "is-decimal": "^1.0.0",
+                "is-whitespace-character": "^1.0.0",
+                "longest-streak": "^2.0.1",
+                "markdown-escapes": "^1.0.0",
+                "markdown-table": "^2.0.0",
+                "mdast-util-compact": "^2.0.0",
+                "parse-entities": "^2.0.0",
+                "repeat-string": "^1.5.4",
+                "state-toggle": "^1.0.0",
+                "stringify-entities": "^3.0.0",
+                "unherit": "^1.0.4",
+                "xtend": "^4.0.1"
+            }
+        },
+        "remove-trailing-separator": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+            "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+        },
+        "renderkid": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz",
+            "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==",
+            "requires": {
+                "css-select": "^2.0.2",
+                "dom-converter": "^0.2",
+                "htmlparser2": "^3.10.1",
+                "lodash": "^4.17.20",
+                "strip-ansi": "^3.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "css-select": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+                    "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+                    "requires": {
+                        "boolbase": "^1.0.0",
+                        "css-what": "^3.2.1",
+                        "domutils": "^1.7.0",
+                        "nth-check": "^1.0.2"
+                    }
+                },
+                "css-what": {
+                    "version": "3.4.2",
+                    "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+                    "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "repeat-element": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+            "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+        },
+        "repeat-string": {
+            "version": "1.6.1",
+            "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+            "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+        },
+        "repeating": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+            "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+            "requires": {
+                "is-finite": "^1.0.0"
+            }
+        },
+        "replace-ext": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
+            "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw=="
+        },
+        "request": {
+            "version": "2.88.2",
+            "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+            "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+            "requires": {
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
+                "forever-agent": "~0.6.1",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.3",
+                "http-signature": "~1.2.0",
+                "is-typedarray": "~1.0.0",
+                "isstream": "~0.1.2",
+                "json-stringify-safe": "~5.0.1",
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.5.0",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
+            },
+            "dependencies": {
+                "form-data": {
+                    "version": "2.3.3",
+                    "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+                    "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+                    "requires": {
+                        "asynckit": "^0.4.0",
+                        "combined-stream": "^1.0.6",
+                        "mime-types": "^2.1.12"
+                    }
+                },
+                "qs": {
+                    "version": "6.5.2",
+                    "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+                    "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+                }
+            }
+        },
+        "require-directory": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+            "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+        },
+        "require-main-filename": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+            "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+        },
+        "require-package-name": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz",
+            "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk="
+        },
+        "requires-port": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+            "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+        },
+        "resolve": {
+            "version": "1.19.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
+            "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+            "requires": {
+                "is-core-module": "^2.1.0",
+                "path-parse": "^1.0.6"
+            }
+        },
+        "resolve-cwd": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+            "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+            "requires": {
+                "resolve-from": "^5.0.0"
+            },
+            "dependencies": {
+                "resolve-from": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+                    "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
+                }
+            }
+        },
+        "resolve-dir": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+            "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+            "requires": {
+                "expand-tilde": "^2.0.0",
+                "global-modules": "^1.0.0"
+            }
+        },
+        "resolve-from": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+            "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+        },
+        "resolve-url": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+            "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+        },
+        "responselike": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+            "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+            "requires": {
+                "lowercase-keys": "^1.0.0"
+            }
+        },
+        "restore-cursor": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+            "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+            "requires": {
+                "onetime": "^5.1.0",
+                "signal-exit": "^3.0.2"
+            }
+        },
+        "ret": {
+            "version": "0.1.15",
+            "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+            "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+        },
+        "retext": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/retext/-/retext-5.0.0.tgz",
+            "integrity": "sha1-XZAYxKZ31hA8FCNi129Q6x05i/Y=",
+            "requires": {
+                "retext-latin": "^2.0.0",
+                "retext-stringify": "^2.0.0",
+                "unified": "^6.0.0"
+            },
+            "dependencies": {
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "replace-ext": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+                    "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
+                },
+                "unified": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
+                    "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
+                    "requires": {
+                        "bail": "^1.0.0",
+                        "extend": "^3.0.0",
+                        "is-plain-obj": "^1.1.0",
+                        "trough": "^1.0.0",
+                        "vfile": "^2.0.0",
+                        "x-is-string": "^0.1.0"
+                    }
+                },
+                "unist-util-stringify-position": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
+                    "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ=="
+                },
+                "vfile": {
+                    "version": "2.3.0",
+                    "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
+                    "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
+                    "requires": {
+                        "is-buffer": "^1.1.4",
+                        "replace-ext": "1.0.0",
+                        "unist-util-stringify-position": "^1.0.0",
+                        "vfile-message": "^1.0.0"
+                    }
+                },
+                "vfile-message": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
+                    "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
+                    "requires": {
+                        "unist-util-stringify-position": "^1.1.1"
+                    }
+                }
+            }
+        },
+        "retext-english": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz",
+            "integrity": "sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==",
+            "requires": {
+                "parse-english": "^4.0.0",
+                "unherit": "^1.0.4"
+            }
+        },
+        "retext-latin": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-2.0.4.tgz",
+            "integrity": "sha512-fOoSSoQgDZ+l/uS81oxI3alBghDUPja0JEl0TpQxI6MN+dhM6fLFumPJwMZ4PJTyL5FFAgjlsdv8IX+6IRuwMw==",
+            "requires": {
+                "parse-latin": "^4.0.0",
+                "unherit": "^1.0.4"
+            }
+        },
+        "retext-smartypants": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-3.0.3.tgz",
+            "integrity": "sha512-/0fIipYayOvvucn3yjxvWwyT9P6p8gbpqdqUQNs1+L7av2hxatmiA9sk+fygJSDn5OXRyhBzcezvTbEmEabfIQ==",
+            "requires": {
+                "nlcst-to-string": "^2.0.0",
+                "unist-util-visit": "^1.0.0"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "retext-stringify": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-2.0.4.tgz",
+            "integrity": "sha512-xOtx5mFJBoT3j7PBtiY2I+mEGERNniofWktI1cKXvjMEJPOuqve0dghLHO1+gz/gScLn4zqspDGv4kk2wS5kSA==",
+            "requires": {
+                "nlcst-to-string": "^2.0.0"
+            }
+        },
+        "retry": {
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+            "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs="
+        },
+        "reusify": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+            "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+        },
+        "reveal.js": {
+            "version": "3.9.2",
+            "resolved": "https://registry.npmjs.org/reveal.js/-/reveal.js-3.9.2.tgz",
+            "integrity": "sha512-Dvv2oA9FrtOHE2DWj5js8pMRfwq++Wmvsn1EyAdYLC80lBjTphns+tPsB652Bnvep9AVviuVS/b4XoVY9rXHLA=="
+        },
+        "rgb-regex": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+            "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE="
+        },
+        "rgba-regex": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+            "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM="
+        },
+        "rimraf": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+            "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+            "requires": {
+                "glob": "^7.1.3"
+            }
+        },
+        "ripemd160": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+            "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+            "requires": {
+                "hash-base": "^3.0.0",
+                "inherits": "^2.0.1"
+            }
+        },
+        "run-async": {
+            "version": "2.4.1",
+            "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+            "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
+        },
+        "run-parallel": {
+            "version": "1.1.10",
+            "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz",
+            "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw=="
+        },
+        "run-queue": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+            "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+            "requires": {
+                "aproba": "^1.1.1"
+            }
+        },
+        "rx": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+            "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+        },
+        "rx-lite": {
+            "version": "4.0.8",
+            "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+            "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
+        },
+        "rx-lite-aggregates": {
+            "version": "4.0.8",
+            "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+            "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+            "requires": {
+                "rx-lite": "*"
+            }
+        },
+        "rxjs": {
+            "version": "6.6.3",
+            "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
+            "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
+            "requires": {
+                "tslib": "^1.9.0"
+            }
+        },
+        "safe-buffer": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+        },
+        "safe-regex": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+            "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+            "requires": {
+                "ret": "~0.1.10"
+            }
+        },
+        "safer-buffer": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+        },
+        "sanitize-html": {
+            "version": "1.18.5",
+            "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.5.tgz",
+            "integrity": "sha512-z0MV+AqOnDZVSQQHr/vwimRykKVyPuGZnjWDzIiV1mdgQEG9HMx9qrEapcOQeUmSsPvHZ04BXTuXQkB/vvbU9A==",
+            "requires": {
+                "chalk": "^2.3.0",
+                "htmlparser2": "^3.9.0",
+                "lodash.clonedeep": "^4.5.0",
+                "lodash.escaperegexp": "^4.1.2",
+                "lodash.isplainobject": "^4.0.6",
+                "lodash.isstring": "^4.0.1",
+                "lodash.mergewith": "^4.6.0",
+                "postcss": "^6.0.14",
+                "srcset": "^1.0.0",
+                "xtend": "^4.0.0"
+            }
+        },
+        "sass-graph": {
+            "version": "2.2.5",
+            "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
+            "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
+            "requires": {
+                "glob": "^7.0.0",
+                "lodash": "^4.0.0",
+                "scss-tokenizer": "^0.2.3",
+                "yargs": "^13.3.2"
+            },
+            "dependencies": {
+                "cliui": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+                    "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+                    "requires": {
+                        "string-width": "^3.1.0",
+                        "strip-ansi": "^5.2.0",
+                        "wrap-ansi": "^5.1.0"
+                    }
+                },
+                "emoji-regex": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+                    "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+                },
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+                    "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "requires": {
+                        "locate-path": "^3.0.0"
+                    }
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+                    "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "requires": {
+                        "p-locate": "^3.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+                    "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "requires": {
+                        "p-limit": "^2.0.0"
+                    }
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                },
+                "string-width": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+                    "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+                    "requires": {
+                        "emoji-regex": "^7.0.1",
+                        "is-fullwidth-code-point": "^2.0.0",
+                        "strip-ansi": "^5.1.0"
+                    }
+                },
+                "wrap-ansi": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+                    "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+                    "requires": {
+                        "ansi-styles": "^3.2.0",
+                        "string-width": "^3.0.0",
+                        "strip-ansi": "^5.0.0"
+                    }
+                },
+                "y18n": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+                    "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
+                },
+                "yargs": {
+                    "version": "13.3.2",
+                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+                    "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+                    "requires": {
+                        "cliui": "^5.0.0",
+                        "find-up": "^3.0.0",
+                        "get-caller-file": "^2.0.1",
+                        "require-directory": "^2.1.1",
+                        "require-main-filename": "^2.0.0",
+                        "set-blocking": "^2.0.0",
+                        "string-width": "^3.0.0",
+                        "which-module": "^2.0.0",
+                        "y18n": "^4.0.0",
+                        "yargs-parser": "^13.1.2"
+                    }
+                },
+                "yargs-parser": {
+                    "version": "13.1.2",
+                    "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+                    "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+                    "requires": {
+                        "camelcase": "^5.0.0",
+                        "decamelize": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "sass-loader": {
+            "version": "7.3.1",
+            "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz",
+            "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==",
+            "requires": {
+                "clone-deep": "^4.0.1",
+                "loader-utils": "^1.0.1",
+                "neo-async": "^2.5.0",
+                "pify": "^4.0.1",
+                "semver": "^6.3.0"
+            },
+            "dependencies": {
+                "pify": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+                    "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+                },
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                }
+            }
+        },
+        "sax": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+            "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+        },
+        "scheduler": {
+            "version": "0.19.1",
+            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
+            "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
+            "requires": {
+                "loose-envify": "^1.1.0",
+                "object-assign": "^4.1.1"
+            }
+        },
+        "schema-utils": {
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
+            "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+            "requires": {
+                "@types/json-schema": "^7.0.5",
+                "ajv": "^6.12.4",
+                "ajv-keywords": "^3.5.2"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                }
+            }
+        },
+        "scss-tokenizer": {
+            "version": "0.2.3",
+            "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+            "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+            "requires": {
+                "js-base64": "^2.1.8",
+                "source-map": "^0.4.2"
+            },
+            "dependencies": {
+                "source-map": {
+                    "version": "0.4.4",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+                    "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+                    "requires": {
+                        "amdefine": ">=0.0.4"
+                    }
+                }
+            }
+        },
+        "section-matter": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+            "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+            "requires": {
+                "extend-shallow": "^2.0.1",
+                "kind-of": "^6.0.0"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "seek-bzip": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
+            "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
+            "requires": {
+                "commander": "^2.8.1"
+            }
+        },
+        "select": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+            "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
+            "optional": true
+        },
+        "select-hose": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+            "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
+        },
+        "selfsigned": {
+            "version": "1.10.8",
+            "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz",
+            "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==",
+            "requires": {
+                "node-forge": "^0.10.0"
+            }
+        },
+        "semver": {
+            "version": "7.3.4",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
+            "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
+            "requires": {
+                "lru-cache": "^6.0.0"
+            }
+        },
+        "semver-diff": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
+            "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+            "requires": {
+                "semver": "^6.3.0"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                }
+            }
+        },
+        "semver-regex": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+            "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw=="
+        },
+        "semver-truncate": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
+            "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
+            "requires": {
+                "semver": "^5.3.0"
+            },
+            "dependencies": {
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                }
+            }
+        },
+        "send": {
+            "version": "0.17.1",
+            "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+            "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+            "requires": {
+                "debug": "2.6.9",
+                "depd": "~1.1.2",
+                "destroy": "~1.0.4",
+                "encodeurl": "~1.0.2",
+                "escape-html": "~1.0.3",
+                "etag": "~1.8.1",
+                "fresh": "0.5.2",
+                "http-errors": "~1.7.2",
+                "mime": "1.6.0",
+                "ms": "2.1.1",
+                "on-finished": "~2.3.0",
+                "range-parser": "~1.2.1",
+                "statuses": "~1.5.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    },
+                    "dependencies": {
+                        "ms": {
+                            "version": "2.0.0",
+                            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                            "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                        }
+                    }
+                },
+                "mime": {
+                    "version": "1.6.0",
+                    "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+                    "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+                },
+                "ms": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+                    "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+                }
+            }
+        },
+        "serialize-javascript": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+            "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+            "requires": {
+                "randombytes": "^2.1.0"
+            }
+        },
+        "serve-index": {
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+            "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+            "requires": {
+                "accepts": "~1.3.4",
+                "batch": "0.6.1",
+                "debug": "2.6.9",
+                "escape-html": "~1.0.3",
+                "http-errors": "~1.6.2",
+                "mime-types": "~2.1.17",
+                "parseurl": "~1.3.2"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "http-errors": {
+                    "version": "1.6.3",
+                    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+                    "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+                    "requires": {
+                        "depd": "~1.1.2",
+                        "inherits": "2.0.3",
+                        "setprototypeof": "1.1.0",
+                        "statuses": ">= 1.4.0 < 2"
+                    }
+                },
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "setprototypeof": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+                    "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+                }
+            }
+        },
+        "serve-static": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+            "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+            "requires": {
+                "encodeurl": "~1.0.2",
+                "escape-html": "~1.0.3",
+                "parseurl": "~1.3.3",
+                "send": "0.17.1"
+            }
+        },
+        "set-blocking": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+        },
+        "set-value": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+            "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+            "requires": {
+                "extend-shallow": "^2.0.1",
+                "is-extendable": "^0.1.1",
+                "is-plain-object": "^2.0.3",
+                "split-string": "^3.0.1"
+            },
+            "dependencies": {
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "setimmediate": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+            "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+        },
+        "setprototypeof": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+            "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+        },
+        "sha.js": {
+            "version": "2.4.11",
+            "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+            "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+            "requires": {
+                "inherits": "^2.0.1",
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "shallow-clone": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+            "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+            "requires": {
+                "kind-of": "^6.0.2"
+            }
+        },
+        "shallow-compare": {
+            "version": "1.2.2",
+            "resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz",
+            "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg=="
+        },
+        "shallowequal": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+            "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+        },
+        "sharp": {
+            "version": "0.26.3",
+            "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.26.3.tgz",
+            "integrity": "sha512-NdEJ9S6AMr8Px0zgtFo1TJjMK/ROMU92MkDtYn2BBrDjIx3YfH9TUyGdzPC+I/L619GeYQc690Vbaxc5FPCCWg==",
+            "requires": {
+                "array-flatten": "^3.0.0",
+                "color": "^3.1.3",
+                "detect-libc": "^1.0.3",
+                "node-addon-api": "^3.0.2",
+                "npmlog": "^4.1.2",
+                "prebuild-install": "^6.0.0",
+                "semver": "^7.3.2",
+                "simple-get": "^4.0.0",
+                "tar-fs": "^2.1.1",
+                "tunnel-agent": "^0.6.0"
+            },
+            "dependencies": {
+                "array-flatten": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz",
+                    "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA=="
+                }
+            }
+        },
+        "shebang-command": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+            "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+            "requires": {
+                "shebang-regex": "^1.0.0"
+            }
+        },
+        "shebang-regex": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+            "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+        },
+        "shell-quote": {
+            "version": "1.6.1",
+            "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+            "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+            "requires": {
+                "array-filter": "~0.0.0",
+                "array-map": "~0.0.0",
+                "array-reduce": "~0.0.0",
+                "jsonify": "~0.0.0"
+            }
+        },
+        "side-channel": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+            "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "get-intrinsic": "^1.0.2",
+                "object-inspect": "^1.9.0"
+            },
+            "dependencies": {
+                "get-intrinsic": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+                    "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+                    "requires": {
+                        "function-bind": "^1.1.1",
+                        "has": "^1.0.3",
+                        "has-symbols": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "signal-exit": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+            "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+        },
+        "simple-concat": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+            "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+        },
+        "simple-get": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz",
+            "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==",
+            "requires": {
+                "decompress-response": "^6.0.0",
+                "once": "^1.3.1",
+                "simple-concat": "^1.0.0"
+            },
+            "dependencies": {
+                "decompress-response": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+                    "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+                    "requires": {
+                        "mimic-response": "^3.1.0"
+                    }
+                },
+                "mimic-response": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+                    "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+                }
+            }
+        },
+        "simple-swizzle": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+            "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+            "requires": {
+                "is-arrayish": "^0.3.1"
+            },
+            "dependencies": {
+                "is-arrayish": {
+                    "version": "0.3.2",
+                    "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+                    "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+                }
+            }
+        },
+        "single-trailing-newline": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz",
+            "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=",
+            "requires": {
+                "detect-newline": "^1.0.3"
+            }
+        },
+        "sisteransi": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+            "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+        },
+        "sitemap": {
+            "version": "1.13.0",
+            "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-1.13.0.tgz",
+            "integrity": "sha1-Vpy+IYAgKSamKiZs094Jyc60P4M=",
+            "requires": {
+                "underscore": "^1.7.0",
+                "url-join": "^1.1.0"
+            }
+        },
+        "slash": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+            "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+        },
+        "slice-ansi": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+            "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+            "requires": {
+                "ansi-styles": "^3.2.0",
+                "astral-regex": "^1.0.0",
+                "is-fullwidth-code-point": "^2.0.0"
+            }
+        },
+        "slugify": {
+            "version": "1.4.6",
+            "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.6.tgz",
+            "integrity": "sha512-ZdJIgv9gdrYwhXqxsH9pv7nXxjUEyQ6nqhngRxoAAOlmMGA28FDq5O4/5US4G2/Nod7d1ovNcgURQJ7kHq50KQ=="
+        },
+        "snapdragon": {
+            "version": "0.8.2",
+            "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+            "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+            "requires": {
+                "base": "^0.11.1",
+                "debug": "^2.2.0",
+                "define-property": "^0.2.5",
+                "extend-shallow": "^2.0.1",
+                "map-cache": "^0.2.2",
+                "source-map": "^0.5.6",
+                "source-map-resolve": "^0.5.0",
+                "use": "^3.1.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                },
+                "extend-shallow": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                    "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                    "requires": {
+                        "is-extendable": "^0.1.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                },
+                "source-map": {
+                    "version": "0.5.7",
+                    "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+                    "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+                }
+            }
+        },
+        "snapdragon-node": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+            "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+            "requires": {
+                "define-property": "^1.0.0",
+                "isobject": "^3.0.0",
+                "snapdragon-util": "^3.0.1"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+                    "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+                    "requires": {
+                        "is-descriptor": "^1.0.0"
+                    }
+                },
+                "is-accessor-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-data-descriptor": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+                    "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+                    "requires": {
+                        "kind-of": "^6.0.0"
+                    }
+                },
+                "is-descriptor": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+                    "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+                    "requires": {
+                        "is-accessor-descriptor": "^1.0.0",
+                        "is-data-descriptor": "^1.0.0",
+                        "kind-of": "^6.0.2"
+                    }
+                }
+            }
+        },
+        "snapdragon-util": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+            "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+            "requires": {
+                "kind-of": "^3.2.0"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "socket.io": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
+            "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
+            "requires": {
+                "debug": "~4.1.0",
+                "engine.io": "~3.4.0",
+                "has-binary2": "~1.0.2",
+                "socket.io-adapter": "~1.1.0",
+                "socket.io-client": "2.3.0",
+                "socket.io-parser": "~3.4.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                }
+            }
+        },
+        "socket.io-adapter": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
+            "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
+        },
+        "socket.io-client": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
+            "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
+            "requires": {
+                "backo2": "1.0.2",
+                "base64-arraybuffer": "0.1.5",
+                "component-bind": "1.0.0",
+                "component-emitter": "1.2.1",
+                "debug": "~4.1.0",
+                "engine.io-client": "~3.4.0",
+                "has-binary2": "~1.0.2",
+                "has-cors": "1.1.0",
+                "indexof": "0.0.1",
+                "object-component": "0.0.3",
+                "parseqs": "0.0.5",
+                "parseuri": "0.0.5",
+                "socket.io-parser": "~3.3.0",
+                "to-array": "0.1.4"
+            },
+            "dependencies": {
+                "base64-arraybuffer": {
+                    "version": "0.1.5",
+                    "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+                    "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+                },
+                "debug": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                },
+                "isarray": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+                    "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+                },
+                "socket.io-parser": {
+                    "version": "3.3.2",
+                    "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+                    "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
+                    "requires": {
+                        "component-emitter": "~1.3.0",
+                        "debug": "~3.1.0",
+                        "isarray": "2.0.1"
+                    },
+                    "dependencies": {
+                        "component-emitter": {
+                            "version": "1.3.0",
+                            "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+                            "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+                        },
+                        "debug": {
+                            "version": "3.1.0",
+                            "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+                            "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+                            "requires": {
+                                "ms": "2.0.0"
+                            }
+                        },
+                        "ms": {
+                            "version": "2.0.0",
+                            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                            "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                        }
+                    }
+                }
+            }
+        },
+        "socket.io-parser": {
+            "version": "3.4.1",
+            "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
+            "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
+            "requires": {
+                "component-emitter": "1.2.1",
+                "debug": "~4.1.0",
+                "isarray": "2.0.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                },
+                "isarray": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+                    "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+                }
+            }
+        },
+        "sockjs": {
+            "version": "0.3.21",
+            "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz",
+            "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==",
+            "requires": {
+                "faye-websocket": "^0.11.3",
+                "uuid": "^3.4.0",
+                "websocket-driver": "^0.7.4"
+            }
+        },
+        "sockjs-client": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
+            "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
+            "requires": {
+                "debug": "^2.6.6",
+                "eventsource": "0.1.6",
+                "faye-websocket": "~0.11.0",
+                "inherits": "^2.0.1",
+                "json3": "^3.3.2",
+                "url-parse": "^1.1.8"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "eventsource": {
+                    "version": "0.1.6",
+                    "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
+                    "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+                    "requires": {
+                        "original": ">=0.0.5"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "sort-keys": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz",
+            "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=",
+            "requires": {
+                "is-plain-obj": "^1.0.0"
+            },
+            "dependencies": {
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                }
+            }
+        },
+        "sort-keys-length": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
+            "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
+            "requires": {
+                "sort-keys": "^1.0.0"
+            },
+            "dependencies": {
+                "is-plain-obj": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+                    "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+                },
+                "sort-keys": {
+                    "version": "1.1.2",
+                    "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+                    "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+                    "requires": {
+                        "is-plain-obj": "^1.0.0"
+                    }
+                }
+            }
+        },
+        "source-list-map": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+            "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
+        },
+        "source-map": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+        },
+        "source-map-resolve": {
+            "version": "0.5.3",
+            "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+            "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+            "requires": {
+                "atob": "^2.1.2",
+                "decode-uri-component": "^0.2.0",
+                "resolve-url": "^0.2.1",
+                "source-map-url": "^0.4.0",
+                "urix": "^0.1.0"
+            }
+        },
+        "source-map-support": {
+            "version": "0.5.19",
+            "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+            "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+            "requires": {
+                "buffer-from": "^1.0.0",
+                "source-map": "^0.6.0"
+            }
+        },
+        "source-map-url": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+            "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+        },
+        "space-separated-tokens": {
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
+            "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA=="
+        },
+        "spdx-correct": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+            "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+            "requires": {
+                "spdx-expression-parse": "^3.0.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
+        "spdx-exceptions": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+            "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+        },
+        "spdx-expression-parse": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+            "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+            "requires": {
+                "spdx-exceptions": "^2.1.0",
+                "spdx-license-ids": "^3.0.0"
+            }
+        },
+        "spdx-license-ids": {
+            "version": "3.0.7",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
+            "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ=="
+        },
+        "spdy": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+            "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+            "requires": {
+                "debug": "^4.1.0",
+                "handle-thing": "^2.0.0",
+                "http-deceiver": "^1.2.7",
+                "select-hose": "^2.0.0",
+                "spdy-transport": "^3.0.0"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                }
+            }
+        },
+        "spdy-transport": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+            "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+            "requires": {
+                "debug": "^4.1.0",
+                "detect-node": "^2.0.4",
+                "hpack.js": "^2.1.6",
+                "obuf": "^1.1.2",
+                "readable-stream": "^3.0.6",
+                "wbuf": "^1.7.3"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                }
+            }
+        },
+        "split-on-first": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+            "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+        },
+        "split-string": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+            "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+            "requires": {
+                "extend-shallow": "^3.0.0"
+            }
+        },
+        "sprintf-js": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+            "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+        },
+        "squeak": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
+            "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
+            "requires": {
+                "chalk": "^1.0.0",
+                "console-stream": "^0.1.1",
+                "lpad-align": "^1.0.1"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "ansi-styles": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+                },
+                "chalk": {
+                    "version": "1.1.3",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+                    "requires": {
+                        "ansi-styles": "^2.2.1",
+                        "escape-string-regexp": "^1.0.2",
+                        "has-ansi": "^2.0.0",
+                        "strip-ansi": "^3.0.0",
+                        "supports-color": "^2.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+                }
+            }
+        },
+        "srcset": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/srcset/-/srcset-1.0.0.tgz",
+            "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=",
+            "requires": {
+                "array-uniq": "^1.0.2",
+                "number-is-nan": "^1.0.0"
+            }
+        },
+        "sse-z": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz",
+            "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w=="
+        },
+        "sshpk": {
+            "version": "1.16.1",
+            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+            "requires": {
+                "asn1": "~0.2.3",
+                "assert-plus": "^1.0.0",
+                "bcrypt-pbkdf": "^1.0.0",
+                "dashdash": "^1.12.0",
+                "ecc-jsbn": "~0.1.1",
+                "getpass": "^0.1.1",
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.0.2",
+                "tweetnacl": "~0.14.0"
+            }
+        },
+        "ssri": {
+            "version": "7.1.0",
+            "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
+            "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
+            "requires": {
+                "figgy-pudding": "^3.5.1",
+                "minipass": "^3.1.1"
+            }
+        },
+        "st": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/st/-/st-2.0.0.tgz",
+            "integrity": "sha512-drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw==",
+            "requires": {
+                "async-cache": "^1.1.0",
+                "bl": "^4.0.0",
+                "fd": "~0.0.2",
+                "graceful-fs": "^4.2.3",
+                "mime": "^2.4.4",
+                "negotiator": "~0.6.2"
+            }
+        },
+        "stable": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+            "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="
+        },
+        "stack-trace": {
+            "version": "0.0.10",
+            "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+            "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+        },
+        "stackframe": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+            "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA=="
+        },
+        "state-toggle": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
+            "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ=="
+        },
+        "static-extend": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+            "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+            "requires": {
+                "define-property": "^0.2.5",
+                "object-copy": "^0.1.0"
+            },
+            "dependencies": {
+                "define-property": {
+                    "version": "0.2.5",
+                    "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+                    "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+                    "requires": {
+                        "is-descriptor": "^0.1.0"
+                    }
+                }
+            }
+        },
+        "statuses": {
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+            "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+        },
+        "stdout-stream": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+            "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+            "requires": {
+                "readable-stream": "^2.0.1"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "stream-browserify": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+            "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+            "requires": {
+                "inherits": "~2.0.1",
+                "readable-stream": "^2.0.2"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "stream-each": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+            "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+            "requires": {
+                "end-of-stream": "^1.1.0",
+                "stream-shift": "^1.0.0"
+            }
+        },
+        "stream-http": {
+            "version": "2.8.3",
+            "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+            "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+            "requires": {
+                "builtin-status-codes": "^3.0.0",
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.3.6",
+                "to-arraybuffer": "^1.0.0",
+                "xtend": "^4.0.0"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "stream-parser": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
+            "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
+            "requires": {
+                "debug": "2"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "stream-shift": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+            "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
+        },
+        "streamsearch": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+            "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+        },
+        "strict-uri-encode": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+            "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+        },
+        "string-env-interpolation": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz",
+            "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg=="
+        },
+        "string-similarity": {
+            "version": "1.2.2",
+            "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz",
+            "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==",
+            "requires": {
+                "lodash.every": "^4.6.0",
+                "lodash.flattendeep": "^4.4.0",
+                "lodash.foreach": "^4.5.0",
+                "lodash.map": "^4.6.0",
+                "lodash.maxby": "^4.6.0"
+            }
+        },
+        "string-width": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+            "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+            "requires": {
+                "is-fullwidth-code-point": "^2.0.0",
+                "strip-ansi": "^4.0.0"
+            },
+            "dependencies": {
+                "strip-ansi": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+                    "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+                    "requires": {
+                        "ansi-regex": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "string.prototype.matchall": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz",
+            "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.18.0-next.1",
+                "has-symbols": "^1.0.1",
+                "internal-slot": "^1.0.2",
+                "regexp.prototype.flags": "^1.3.0",
+                "side-channel": "^1.0.3"
+            }
+        },
+        "string.prototype.trimend": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
+            "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3"
+            }
+        },
+        "string.prototype.trimstart": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
+            "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+            "requires": {
+                "call-bind": "^1.0.0",
+                "define-properties": "^1.1.3"
+            }
+        },
+        "string_decoder": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+            "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+            "requires": {
+                "safe-buffer": "~5.2.0"
+            }
+        },
+        "stringify-entities": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz",
+            "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==",
+            "requires": {
+                "character-entities-html4": "^1.0.0",
+                "character-entities-legacy": "^1.0.0",
+                "xtend": "^4.0.0"
+            }
+        },
+        "stringify-object": {
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+            "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+            "requires": {
+                "get-own-enumerable-property-symbols": "^3.0.0",
+                "is-obj": "^1.0.1",
+                "is-regexp": "^1.0.0"
+            },
+            "dependencies": {
+                "is-obj": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+                    "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+                }
+            }
+        },
+        "strip-ansi": {
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+            "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+            "requires": {
+                "ansi-regex": "^4.1.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+                    "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+                }
+            }
+        },
+        "strip-bom": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+            "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+        },
+        "strip-bom-string": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+            "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI="
+        },
+        "strip-comments": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz",
+            "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==",
+            "requires": {
+                "babel-extract-comments": "^1.0.0",
+                "babel-plugin-transform-object-rest-spread": "^6.26.0"
+            }
+        },
+        "strip-dirs": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
+            "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
+            "requires": {
+                "is-natural-number": "^4.0.1"
+            }
+        },
+        "strip-eof": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+            "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+        },
+        "strip-final-newline": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+            "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
+        },
+        "strip-indent": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+            "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+            "requires": {
+                "min-indent": "^1.0.0"
+            }
+        },
+        "strip-json-comments": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+            "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+        },
+        "strip-outer": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+            "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
+            "requires": {
+                "escape-string-regexp": "^1.0.2"
+            }
+        },
+        "strtok3": {
+            "version": "6.0.4",
+            "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz",
+            "integrity": "sha512-rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==",
+            "requires": {
+                "@tokenizer/token": "^0.1.1",
+                "@types/debug": "^4.1.5",
+                "peek-readable": "^3.1.0"
+            },
+            "dependencies": {
+                "@types/debug": {
+                    "version": "4.1.5",
+                    "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
+                    "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ=="
+                }
+            }
+        },
+        "style-loader": {
+            "version": "0.23.1",
+            "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+            "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
+            "requires": {
+                "loader-utils": "^1.1.0",
+                "schema-utils": "^1.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                }
+            }
+        },
+        "style-to-object": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+            "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+            "requires": {
+                "inline-style-parser": "0.1.1"
+            }
+        },
+        "stylehacks": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+            "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+            "requires": {
+                "browserslist": "^4.0.0",
+                "postcss": "^7.0.0",
+                "postcss-selector-parser": "^3.0.0"
+            },
+            "dependencies": {
+                "postcss": {
+                    "version": "7.0.35",
+                    "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+                    "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+                    "requires": {
+                        "chalk": "^2.4.2",
+                        "source-map": "^0.6.1",
+                        "supports-color": "^6.1.0"
+                    }
+                },
+                "postcss-selector-parser": {
+                    "version": "3.1.2",
+                    "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+                    "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+                    "requires": {
+                        "dot-prop": "^5.2.0",
+                        "indexes-of": "^1.0.1",
+                        "uniq": "^1.0.1"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "sudo-prompt": {
+            "version": "8.2.5",
+            "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz",
+            "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw=="
+        },
+        "supports-color": {
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+            "requires": {
+                "has-flag": "^3.0.0"
+            }
+        },
+        "svg-react-loader": {
+            "version": "0.4.6",
+            "resolved": "https://registry.npmjs.org/svg-react-loader/-/svg-react-loader-0.4.6.tgz",
+            "integrity": "sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA==",
+            "requires": {
+                "css": "2.2.4",
+                "loader-utils": "1.1.0",
+                "ramda": "0.21.0",
+                "rx": "4.1.0",
+                "traverse": "0.6.6",
+                "xml2js": "0.4.17"
+            },
+            "dependencies": {
+                "big.js": {
+                    "version": "3.2.0",
+                    "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+                    "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
+                },
+                "emojis-list": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+                    "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
+                },
+                "json5": {
+                    "version": "0.5.1",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+                    "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
+                },
+                "loader-utils": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+                    "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+                    "requires": {
+                        "big.js": "^3.1.3",
+                        "emojis-list": "^2.0.0",
+                        "json5": "^0.5.0"
+                    }
+                }
+            }
+        },
+        "svgo": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
+            "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+            "requires": {
+                "chalk": "^2.4.1",
+                "coa": "^2.0.2",
+                "css-select": "^2.0.0",
+                "css-select-base-adapter": "^0.1.1",
+                "css-tree": "1.0.0-alpha.37",
+                "csso": "^4.0.2",
+                "js-yaml": "^3.13.1",
+                "mkdirp": "~0.5.1",
+                "object.values": "^1.1.0",
+                "sax": "~1.2.4",
+                "stable": "^0.1.8",
+                "unquote": "~1.1.1",
+                "util.promisify": "~1.0.0"
+            },
+            "dependencies": {
+                "css-select": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+                    "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+                    "requires": {
+                        "boolbase": "^1.0.0",
+                        "css-what": "^3.2.1",
+                        "domutils": "^1.7.0",
+                        "nth-check": "^1.0.2"
+                    }
+                },
+                "css-what": {
+                    "version": "3.4.2",
+                    "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+                    "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
+                }
+            }
+        },
+        "symbol-observable": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+            "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
+        },
+        "sync-fetch": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz",
+            "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==",
+            "requires": {
+                "buffer": "^5.7.0",
+                "node-fetch": "^2.6.1"
+            },
+            "dependencies": {
+                "node-fetch": {
+                    "version": "2.6.1",
+                    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+                    "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
+                }
+            }
+        },
+        "table": {
+            "version": "5.4.6",
+            "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+            "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+            "requires": {
+                "ajv": "^6.10.2",
+                "lodash": "^4.17.14",
+                "slice-ansi": "^2.1.0",
+                "string-width": "^3.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "emoji-regex": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+                    "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "string-width": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+                    "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+                    "requires": {
+                        "emoji-regex": "^7.0.1",
+                        "is-fullwidth-code-point": "^2.0.0",
+                        "strip-ansi": "^5.1.0"
+                    }
+                }
+            }
+        },
+        "tapable": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+            "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
+        },
+        "tar": {
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+            "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+            "requires": {
+                "block-stream": "*",
+                "fstream": "^1.0.12",
+                "inherits": "2"
+            }
+        },
+        "tar-fs": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+            "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+            "requires": {
+                "chownr": "^1.1.1",
+                "mkdirp-classic": "^0.5.2",
+                "pump": "^3.0.0",
+                "tar-stream": "^2.1.4"
+            }
+        },
+        "tar-stream": {
+            "version": "2.1.4",
+            "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
+            "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
+            "requires": {
+                "bl": "^4.0.3",
+                "end-of-stream": "^1.4.1",
+                "fs-constants": "^1.0.0",
+                "inherits": "^2.0.3",
+                "readable-stream": "^3.1.1"
+            }
+        },
+        "temp-dir": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+            "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0="
+        },
+        "tempfile": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
+            "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
+            "requires": {
+                "temp-dir": "^1.0.0",
+                "uuid": "^3.0.1"
+            }
+        },
+        "term-size": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
+            "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
+        },
+        "terser": {
+            "version": "4.8.0",
+            "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+            "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+            "requires": {
+                "commander": "^2.20.0",
+                "source-map": "~0.6.1",
+                "source-map-support": "~0.5.12"
+            }
+        },
+        "terser-webpack-plugin": {
+            "version": "2.3.8",
+            "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz",
+            "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==",
+            "requires": {
+                "cacache": "^13.0.1",
+                "find-cache-dir": "^3.3.1",
+                "jest-worker": "^25.4.0",
+                "p-limit": "^2.3.0",
+                "schema-utils": "^2.6.6",
+                "serialize-javascript": "^4.0.0",
+                "source-map": "^0.6.1",
+                "terser": "^4.6.12",
+                "webpack-sources": "^1.4.3"
+            },
+            "dependencies": {
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "jest-worker": {
+                    "version": "25.5.0",
+                    "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+                    "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
+                    "requires": {
+                        "merge-stream": "^2.0.0",
+                        "supports-color": "^7.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                }
+            }
+        },
+        "text-table": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+            "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+        },
+        "through": {
+            "version": "2.3.8",
+            "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+            "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+        },
+        "through2": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+            "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+            "requires": {
+                "readable-stream": "~2.3.6",
+                "xtend": "~4.0.1"
+            },
+            "dependencies": {
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                }
+            }
+        },
+        "thunky": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+            "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+        },
+        "timed-out": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+            "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+        },
+        "timers-browserify": {
+            "version": "2.0.12",
+            "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+            "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+            "requires": {
+                "setimmediate": "^1.0.4"
+            }
+        },
+        "timers-ext": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
+            "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
+            "requires": {
+                "es5-ext": "~0.10.46",
+                "next-tick": "1"
+            }
+        },
+        "timm": {
+            "version": "1.7.1",
+            "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz",
+            "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw=="
+        },
+        "timsort": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+            "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
+        },
+        "tiny-emitter": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+            "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
+            "optional": true
+        },
+        "tinycolor2": {
+            "version": "1.4.2",
+            "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
+            "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA=="
+        },
+        "tmp": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+            "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+            "requires": {
+                "rimraf": "^3.0.0"
+            }
+        },
+        "to-array": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+            "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
+        },
+        "to-arraybuffer": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+            "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+        },
+        "to-buffer": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
+            "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
+        },
+        "to-fast-properties": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+            "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+        },
+        "to-object-path": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+            "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+            "requires": {
+                "kind-of": "^3.0.2"
+            },
+            "dependencies": {
+                "kind-of": {
+                    "version": "3.2.2",
+                    "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                    "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                    "requires": {
+                        "is-buffer": "^1.1.5"
+                    }
+                }
+            }
+        },
+        "to-readable-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+            "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
+        },
+        "to-regex": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+            "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+            "requires": {
+                "define-property": "^2.0.2",
+                "extend-shallow": "^3.0.2",
+                "regex-not": "^1.0.2",
+                "safe-regex": "^1.1.0"
+            }
+        },
+        "to-regex-range": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+            "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+            "requires": {
+                "is-number": "^7.0.0"
+            }
+        },
+        "toidentifier": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+            "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+        },
+        "token-types": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz",
+            "integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==",
+            "requires": {
+                "@tokenizer/token": "^0.1.0",
+                "ieee754": "^1.1.13"
+            }
+        },
+        "topo": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz",
+            "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
+            "requires": {
+                "hoek": "4.x.x"
+            }
+        },
+        "tough-cookie": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+            "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+            "requires": {
+                "psl": "^1.1.28",
+                "punycode": "^2.1.1"
+            }
+        },
+        "traverse": {
+            "version": "0.6.6",
+            "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+            "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+        },
+        "trim": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
+            "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0="
+        },
+        "trim-lines": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz",
+            "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA=="
+        },
+        "trim-newlines": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+            "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+        },
+        "trim-repeated": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+            "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+            "requires": {
+                "escape-string-regexp": "^1.0.2"
+            }
+        },
+        "trim-trailing-lines": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz",
+            "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ=="
+        },
+        "trough": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+            "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA=="
+        },
+        "true-case-path": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
+            "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q=="
+        },
+        "ts-node": {
+            "version": "9.1.1",
+            "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
+            "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
+            "requires": {
+                "arg": "^4.1.0",
+                "create-require": "^1.1.0",
+                "diff": "^4.0.1",
+                "make-error": "^1.1.1",
+                "source-map-support": "^0.5.17",
+                "yn": "3.1.1"
+            }
+        },
+        "ts-pnp": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+            "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw=="
+        },
+        "tsconfig-paths": {
+            "version": "3.9.0",
+            "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
+            "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
+            "requires": {
+                "@types/json5": "^0.0.29",
+                "json5": "^1.0.1",
+                "minimist": "^1.2.0",
+                "strip-bom": "^3.0.0"
+            },
+            "dependencies": {
+                "json5": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+                    "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                    "requires": {
+                        "minimist": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "tslib": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+        },
+        "tsutils": {
+            "version": "3.20.0",
+            "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz",
+            "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==",
+            "requires": {
+                "tslib": "^1.8.1"
+            }
+        },
+        "tty-browserify": {
+            "version": "0.0.0",
+            "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+            "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+        },
+        "tunnel-agent": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+            "requires": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "tweetnacl": {
+            "version": "0.14.5",
+            "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+            "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+        },
+        "type": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+            "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+        },
+        "type-check": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+            "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+            "requires": {
+                "prelude-ls": "~1.1.2"
+            }
+        },
+        "type-fest": {
+            "version": "0.8.1",
+            "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+            "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+        },
+        "type-is": {
+            "version": "1.6.18",
+            "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+            "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+            "requires": {
+                "media-typer": "0.3.0",
+                "mime-types": "~2.1.24"
+            }
+        },
+        "type-of": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz",
+            "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI="
+        },
+        "typedarray": {
+            "version": "0.0.6",
+            "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+            "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+        },
+        "typedarray-to-buffer": {
+            "version": "3.1.5",
+            "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+            "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+            "requires": {
+                "is-typedarray": "^1.0.0"
+            }
+        },
+        "ua-parser-js": {
+            "version": "0.7.23",
+            "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz",
+            "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA=="
+        },
+        "unbzip2-stream": {
+            "version": "1.4.3",
+            "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+            "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+            "requires": {
+                "buffer": "^5.2.1",
+                "through": "^2.3.8"
+            }
+        },
+        "unc-path-regex": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+            "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
+        },
+        "underscore": {
+            "version": "1.12.0",
+            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz",
+            "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ=="
+        },
+        "underscore.string": {
+            "version": "3.3.5",
+            "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
+            "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
+            "requires": {
+                "sprintf-js": "^1.0.3",
+                "util-deprecate": "^1.0.2"
+            }
+        },
+        "unherit": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
+            "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
+            "requires": {
+                "inherits": "^2.0.0",
+                "xtend": "^4.0.0"
+            }
+        },
+        "unicode-canonical-property-names-ecmascript": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+            "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="
+        },
+        "unicode-match-property-ecmascript": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+            "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+            "requires": {
+                "unicode-canonical-property-names-ecmascript": "^1.0.4",
+                "unicode-property-aliases-ecmascript": "^1.0.4"
+            }
+        },
+        "unicode-match-property-value-ecmascript": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
+            "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="
+        },
+        "unicode-property-aliases-ecmascript": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
+            "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
+        },
+        "unified": {
+            "version": "8.4.2",
+            "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz",
+            "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==",
+            "requires": {
+                "bail": "^1.0.0",
+                "extend": "^3.0.0",
+                "is-plain-obj": "^2.0.0",
+                "trough": "^1.0.0",
+                "vfile": "^4.0.0"
+            }
+        },
+        "union-value": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+            "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+            "requires": {
+                "arr-union": "^3.1.0",
+                "get-value": "^2.0.6",
+                "is-extendable": "^0.1.1",
+                "set-value": "^2.0.1"
+            }
+        },
+        "uniq": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+            "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
+        },
+        "uniqs": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+            "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI="
+        },
+        "unique-filename": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+            "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+            "requires": {
+                "unique-slug": "^2.0.0"
+            }
+        },
+        "unique-slug": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+            "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+            "requires": {
+                "imurmurhash": "^0.1.4"
+            }
+        },
+        "unique-string": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+            "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+            "requires": {
+                "crypto-random-string": "^2.0.0"
+            }
+        },
+        "unist-builder": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz",
+            "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==",
+            "requires": {
+                "object-assign": "^4.1.0"
+            }
+        },
+        "unist-util-generated": {
+            "version": "1.1.6",
+            "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+            "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg=="
+        },
+        "unist-util-is": {
+            "version": "4.0.4",
+            "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz",
+            "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA=="
+        },
+        "unist-util-modify-children": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-2.0.0.tgz",
+            "integrity": "sha512-HGrj7JQo9DwZt8XFsX8UD4gGqOsIlCih9opG6Y+N11XqkBGKzHo8cvDi+MfQQgiZ7zXRUiQREYHhjOBHERTMdg==",
+            "requires": {
+                "array-iterate": "^1.0.0"
+            }
+        },
+        "unist-util-position": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+            "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA=="
+        },
+        "unist-util-remove": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.1.tgz",
+            "integrity": "sha512-YtuetK6o16CMfG+0u4nndsWpujgsHDHHLyE0yGpJLLn5xSjKeyGyzEBOI2XbmoUHCYabmNgX52uxlWoQhcvR7Q==",
+            "requires": {
+                "unist-util-is": "^4.0.0"
+            }
+        },
+        "unist-util-remove-position": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz",
+            "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==",
+            "requires": {
+                "unist-util-visit": "^1.1.0"
+            },
+            "dependencies": {
+                "unist-util-is": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
+                    "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A=="
+                },
+                "unist-util-visit": {
+                    "version": "1.4.1",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
+                    "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+                    "requires": {
+                        "unist-util-visit-parents": "^2.0.0"
+                    }
+                },
+                "unist-util-visit-parents": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
+                    "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+                    "requires": {
+                        "unist-util-is": "^3.0.0"
+                    }
+                }
+            }
+        },
+        "unist-util-select": {
+            "version": "1.5.0",
+            "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-1.5.0.tgz",
+            "integrity": "sha1-qTwr6MD2U4J4A7gTMa3sKqJM2TM=",
+            "requires": {
+                "css-selector-parser": "^1.1.0",
+                "debug": "^2.2.0",
+                "nth-check": "^1.0.1"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "2.6.9",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+                    "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+                    "requires": {
+                        "ms": "2.0.0"
+                    }
+                },
+                "ms": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                    "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
+            }
+        },
+        "unist-util-stringify-position": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+            "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+            "requires": {
+                "@types/unist": "^2.0.2"
+            }
+        },
+        "unist-util-visit": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
+            "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+            "requires": {
+                "@types/unist": "^2.0.0",
+                "unist-util-is": "^4.0.0",
+                "unist-util-visit-parents": "^3.0.0"
+            }
+        },
+        "unist-util-visit-children": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz",
+            "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ=="
+        },
+        "unist-util-visit-parents": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
+            "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+            "requires": {
+                "@types/unist": "^2.0.0",
+                "unist-util-is": "^4.0.0"
+            }
+        },
+        "universalify": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+            "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+        },
+        "unixify": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
+            "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
+            "requires": {
+                "normalize-path": "^2.1.1"
+            },
+            "dependencies": {
+                "normalize-path": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+                    "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+                    "requires": {
+                        "remove-trailing-separator": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "unpipe": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+            "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+        },
+        "unquote": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+            "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ="
+        },
+        "unset-value": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+            "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+            "requires": {
+                "has-value": "^0.3.1",
+                "isobject": "^3.0.0"
+            },
+            "dependencies": {
+                "has-value": {
+                    "version": "0.3.1",
+                    "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+                    "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+                    "requires": {
+                        "get-value": "^2.0.3",
+                        "has-values": "^0.1.4",
+                        "isobject": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "isobject": {
+                            "version": "2.1.0",
+                            "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+                            "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+                            "requires": {
+                                "isarray": "1.0.0"
+                            }
+                        }
+                    }
+                },
+                "has-values": {
+                    "version": "0.1.4",
+                    "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+                    "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+                }
+            }
+        },
+        "untildify": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+            "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
+        },
+        "upath": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+            "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+        },
+        "update-notifier": {
+            "version": "5.1.0",
+            "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
+            "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
+            "requires": {
+                "boxen": "^5.0.0",
+                "chalk": "^4.1.0",
+                "configstore": "^5.0.1",
+                "has-yarn": "^2.1.0",
+                "import-lazy": "^2.1.0",
+                "is-ci": "^2.0.0",
+                "is-installed-globally": "^0.4.0",
+                "is-npm": "^5.0.0",
+                "is-yarn-global": "^0.3.0",
+                "latest-version": "^5.1.0",
+                "pupa": "^2.1.1",
+                "semver": "^7.3.4",
+                "semver-diff": "^3.1.1",
+                "xdg-basedir": "^4.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "boxen": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.0.tgz",
+                    "integrity": "sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA==",
+                    "requires": {
+                        "ansi-align": "^3.0.0",
+                        "camelcase": "^6.2.0",
+                        "chalk": "^4.1.0",
+                        "cli-boxes": "^2.2.1",
+                        "string-width": "^4.2.0",
+                        "type-fest": "^0.20.2",
+                        "widest-line": "^3.1.0",
+                        "wrap-ansi": "^7.0.0"
+                    }
+                },
+                "camelcase": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
+                    "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="
+                },
+                "chalk": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+                    "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+                    "requires": {
+                        "ansi-styles": "^4.1.0",
+                        "supports-color": "^7.1.0"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "has-flag": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                    "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "7.2.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+                    "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+                    "requires": {
+                        "has-flag": "^4.0.0"
+                    }
+                },
+                "type-fest": {
+                    "version": "0.20.2",
+                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+                    "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+                }
+            }
+        },
+        "uri-js": {
+            "version": "4.4.0",
+            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
+            "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+            "requires": {
+                "punycode": "^2.1.0"
+            }
+        },
+        "urix": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+            "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+        },
+        "url": {
+            "version": "0.11.0",
+            "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+            "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+            "requires": {
+                "punycode": "1.3.2",
+                "querystring": "0.2.0"
+            },
+            "dependencies": {
+                "punycode": {
+                    "version": "1.3.2",
+                    "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+                    "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+                },
+                "querystring": {
+                    "version": "0.2.0",
+                    "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+                    "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+                }
+            }
+        },
+        "url-join": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz",
+            "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg="
+        },
+        "url-loader": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz",
+            "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==",
+            "requires": {
+                "loader-utils": "^1.1.0",
+                "mime": "^2.0.3",
+                "schema-utils": "^1.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                }
+            }
+        },
+        "url-parse": {
+            "version": "1.4.7",
+            "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+            "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+            "requires": {
+                "querystringify": "^2.1.1",
+                "requires-port": "^1.0.0"
+            }
+        },
+        "url-parse-lax": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+            "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+            "requires": {
+                "prepend-http": "^2.0.0"
+            }
+        },
+        "url-to-options": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+            "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+        },
+        "use": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+            "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+        },
+        "utif": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
+            "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
+            "requires": {
+                "pako": "^1.0.5"
+            }
+        },
+        "util": {
+            "version": "0.11.1",
+            "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+            "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+            "requires": {
+                "inherits": "2.0.3"
+            },
+            "dependencies": {
+                "inherits": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+                    "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+                }
+            }
+        },
+        "util-deprecate": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+            "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+        },
+        "util.promisify": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
+            "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+            "requires": {
+                "define-properties": "^1.1.3",
+                "es-abstract": "^1.17.2",
+                "has-symbols": "^1.0.1",
+                "object.getownpropertydescriptors": "^2.1.0"
+            },
+            "dependencies": {
+                "es-abstract": {
+                    "version": "1.17.7",
+                    "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
+                    "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
+                    "requires": {
+                        "es-to-primitive": "^1.2.1",
+                        "function-bind": "^1.1.1",
+                        "has": "^1.0.3",
+                        "has-symbols": "^1.0.1",
+                        "is-callable": "^1.2.2",
+                        "is-regex": "^1.1.1",
+                        "object-inspect": "^1.8.0",
+                        "object-keys": "^1.1.1",
+                        "object.assign": "^4.1.1",
+                        "string.prototype.trimend": "^1.0.1",
+                        "string.prototype.trimstart": "^1.0.1"
+                    }
+                }
+            }
+        },
+        "utila": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+            "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
+        },
+        "utils-merge": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+            "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+        },
+        "uuid": {
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+        },
+        "v8-compile-cache": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz",
+            "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q=="
+        },
+        "valid-url": {
+            "version": "1.0.9",
+            "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+            "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA="
+        },
+        "validate-npm-package-license": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+            "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+            "requires": {
+                "spdx-correct": "^3.0.0",
+                "spdx-expression-parse": "^3.0.0"
+            }
+        },
+        "vary": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+            "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+        },
+        "vendors": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+            "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w=="
+        },
+        "verror": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+            "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+            "requires": {
+                "assert-plus": "^1.0.0",
+                "core-util-is": "1.0.2",
+                "extsprintf": "^1.2.0"
+            }
+        },
+        "vfile": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+            "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+            "requires": {
+                "@types/unist": "^2.0.0",
+                "is-buffer": "^2.0.0",
+                "unist-util-stringify-position": "^2.0.0",
+                "vfile-message": "^2.0.0"
+            },
+            "dependencies": {
+                "is-buffer": {
+                    "version": "2.0.5",
+                    "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+                    "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
+                }
+            }
+        },
+        "vfile-location": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz",
+            "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA=="
+        },
+        "vfile-message": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+            "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+            "requires": {
+                "@types/unist": "^2.0.0",
+                "unist-util-stringify-position": "^2.0.0"
+            }
+        },
+        "vm-browserify": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+            "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
+        },
+        "warning": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+            "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+            "requires": {
+                "loose-envify": "^1.0.0"
+            }
+        },
+        "watchpack": {
+            "version": "1.7.5",
+            "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+            "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+            "requires": {
+                "chokidar": "^3.4.1",
+                "graceful-fs": "^4.1.2",
+                "neo-async": "^2.5.0",
+                "watchpack-chokidar2": "^2.0.1"
+            }
+        },
+        "watchpack-chokidar2": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+            "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+            "optional": true,
+            "requires": {
+                "chokidar": "^2.1.8"
+            },
+            "dependencies": {
+                "anymatch": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+                    "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+                    "optional": true,
+                    "requires": {
+                        "micromatch": "^3.1.4",
+                        "normalize-path": "^2.1.1"
+                    },
+                    "dependencies": {
+                        "normalize-path": {
+                            "version": "2.1.1",
+                            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+                            "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+                            "optional": true,
+                            "requires": {
+                                "remove-trailing-separator": "^1.0.1"
+                            }
+                        }
+                    }
+                },
+                "binary-extensions": {
+                    "version": "1.13.1",
+                    "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+                    "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+                    "optional": true
+                },
+                "braces": {
+                    "version": "2.3.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                    "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                    "optional": true,
+                    "requires": {
+                        "arr-flatten": "^1.1.0",
+                        "array-unique": "^0.3.2",
+                        "extend-shallow": "^2.0.1",
+                        "fill-range": "^4.0.0",
+                        "isobject": "^3.0.1",
+                        "repeat-element": "^1.1.2",
+                        "snapdragon": "^0.8.1",
+                        "snapdragon-node": "^2.0.1",
+                        "split-string": "^3.0.2",
+                        "to-regex": "^3.0.1"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "optional": true,
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "chokidar": {
+                    "version": "2.1.8",
+                    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+                    "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+                    "optional": true,
+                    "requires": {
+                        "anymatch": "^2.0.0",
+                        "async-each": "^1.0.1",
+                        "braces": "^2.3.2",
+                        "fsevents": "^1.2.7",
+                        "glob-parent": "^3.1.0",
+                        "inherits": "^2.0.3",
+                        "is-binary-path": "^1.0.0",
+                        "is-glob": "^4.0.0",
+                        "normalize-path": "^3.0.0",
+                        "path-is-absolute": "^1.0.0",
+                        "readdirp": "^2.2.1",
+                        "upath": "^1.1.1"
+                    }
+                },
+                "fill-range": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                    "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                    "optional": true,
+                    "requires": {
+                        "extend-shallow": "^2.0.1",
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1",
+                        "to-regex-range": "^2.1.0"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "optional": true,
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "fsevents": {
+                    "version": "1.2.13",
+                    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+                    "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+                    "optional": true,
+                    "requires": {
+                        "bindings": "^1.5.0",
+                        "nan": "^2.12.1"
+                    }
+                },
+                "glob-parent": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+                    "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+                    "optional": true,
+                    "requires": {
+                        "is-glob": "^3.1.0",
+                        "path-dirname": "^1.0.0"
+                    },
+                    "dependencies": {
+                        "is-glob": {
+                            "version": "3.1.0",
+                            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+                            "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+                            "optional": true,
+                            "requires": {
+                                "is-extglob": "^2.1.0"
+                            }
+                        }
+                    }
+                },
+                "is-binary-path": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+                    "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+                    "optional": true,
+                    "requires": {
+                        "binary-extensions": "^1.0.0"
+                    }
+                },
+                "is-number": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                    "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                    "optional": true,
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    },
+                    "dependencies": {
+                        "kind-of": {
+                            "version": "3.2.2",
+                            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                            "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                            "optional": true,
+                            "requires": {
+                                "is-buffer": "^1.1.5"
+                            }
+                        }
+                    }
+                },
+                "micromatch": {
+                    "version": "3.1.10",
+                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                    "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                    "optional": true,
+                    "requires": {
+                        "arr-diff": "^4.0.0",
+                        "array-unique": "^0.3.2",
+                        "braces": "^2.3.1",
+                        "define-property": "^2.0.2",
+                        "extend-shallow": "^3.0.2",
+                        "extglob": "^2.0.4",
+                        "fragment-cache": "^0.2.1",
+                        "kind-of": "^6.0.2",
+                        "nanomatch": "^1.2.9",
+                        "object.pick": "^1.3.0",
+                        "regex-not": "^1.0.0",
+                        "snapdragon": "^0.8.1",
+                        "to-regex": "^3.0.2"
+                    }
+                },
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "optional": true,
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "readdirp": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+                    "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+                    "optional": true,
+                    "requires": {
+                        "graceful-fs": "^4.1.11",
+                        "micromatch": "^3.1.10",
+                        "readable-stream": "^2.0.2"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+                    "optional": true
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "optional": true,
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                },
+                "to-regex-range": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                    "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                    "optional": true,
+                    "requires": {
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1"
+                    }
+                }
+            }
+        },
+        "wbuf": {
+            "version": "1.7.3",
+            "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+            "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+            "requires": {
+                "minimalistic-assert": "^1.0.0"
+            }
+        },
+        "web-namespaces": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
+            "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw=="
+        },
+        "webpack": {
+            "version": "4.46.0",
+            "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
+            "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
+            "requires": {
+                "@webassemblyjs/ast": "1.9.0",
+                "@webassemblyjs/helper-module-context": "1.9.0",
+                "@webassemblyjs/wasm-edit": "1.9.0",
+                "@webassemblyjs/wasm-parser": "1.9.0",
+                "acorn": "^6.4.1",
+                "ajv": "^6.10.2",
+                "ajv-keywords": "^3.4.1",
+                "chrome-trace-event": "^1.0.2",
+                "enhanced-resolve": "^4.5.0",
+                "eslint-scope": "^4.0.3",
+                "json-parse-better-errors": "^1.0.2",
+                "loader-runner": "^2.4.0",
+                "loader-utils": "^1.2.3",
+                "memory-fs": "^0.4.1",
+                "micromatch": "^3.1.10",
+                "mkdirp": "^0.5.3",
+                "neo-async": "^2.6.1",
+                "node-libs-browser": "^2.2.1",
+                "schema-utils": "^1.0.0",
+                "tapable": "^1.1.3",
+                "terser-webpack-plugin": "^1.4.3",
+                "watchpack": "^1.7.4",
+                "webpack-sources": "^1.4.1"
+            },
+            "dependencies": {
+                "acorn": {
+                    "version": "6.4.2",
+                    "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+                    "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
+                },
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "braces": {
+                    "version": "2.3.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                    "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                    "requires": {
+                        "arr-flatten": "^1.1.0",
+                        "array-unique": "^0.3.2",
+                        "extend-shallow": "^2.0.1",
+                        "fill-range": "^4.0.0",
+                        "isobject": "^3.0.1",
+                        "repeat-element": "^1.1.2",
+                        "snapdragon": "^0.8.1",
+                        "snapdragon-node": "^2.0.1",
+                        "split-string": "^3.0.2",
+                        "to-regex": "^3.0.1"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "cacache": {
+                    "version": "12.0.4",
+                    "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+                    "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+                    "requires": {
+                        "bluebird": "^3.5.5",
+                        "chownr": "^1.1.1",
+                        "figgy-pudding": "^3.5.1",
+                        "glob": "^7.1.4",
+                        "graceful-fs": "^4.1.15",
+                        "infer-owner": "^1.0.3",
+                        "lru-cache": "^5.1.1",
+                        "mississippi": "^3.0.0",
+                        "mkdirp": "^0.5.1",
+                        "move-concurrently": "^1.0.1",
+                        "promise-inflight": "^1.0.1",
+                        "rimraf": "^2.6.3",
+                        "ssri": "^6.0.1",
+                        "unique-filename": "^1.1.1",
+                        "y18n": "^4.0.0"
+                    }
+                },
+                "eslint-scope": {
+                    "version": "4.0.3",
+                    "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+                    "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+                    "requires": {
+                        "esrecurse": "^4.1.0",
+                        "estraverse": "^4.1.1"
+                    }
+                },
+                "fill-range": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                    "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                    "requires": {
+                        "extend-shallow": "^2.0.1",
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1",
+                        "to-regex-range": "^2.1.0"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "find-cache-dir": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+                    "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+                    "requires": {
+                        "commondir": "^1.0.1",
+                        "make-dir": "^2.0.0",
+                        "pkg-dir": "^3.0.0"
+                    }
+                },
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+                    "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "requires": {
+                        "locate-path": "^3.0.0"
+                    }
+                },
+                "is-number": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                    "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    },
+                    "dependencies": {
+                        "kind-of": {
+                            "version": "3.2.2",
+                            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                            "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                            "requires": {
+                                "is-buffer": "^1.1.5"
+                            }
+                        }
+                    }
+                },
+                "is-wsl": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+                    "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+                    "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "requires": {
+                        "p-locate": "^3.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "lru-cache": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+                    "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+                    "requires": {
+                        "yallist": "^3.0.2"
+                    }
+                },
+                "make-dir": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+                    "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+                    "requires": {
+                        "pify": "^4.0.1",
+                        "semver": "^5.6.0"
+                    }
+                },
+                "micromatch": {
+                    "version": "3.1.10",
+                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                    "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                    "requires": {
+                        "arr-diff": "^4.0.0",
+                        "array-unique": "^0.3.2",
+                        "braces": "^2.3.1",
+                        "define-property": "^2.0.2",
+                        "extend-shallow": "^3.0.2",
+                        "extglob": "^2.0.4",
+                        "fragment-cache": "^0.2.1",
+                        "kind-of": "^6.0.2",
+                        "nanomatch": "^1.2.9",
+                        "object.pick": "^1.3.0",
+                        "regex-not": "^1.0.0",
+                        "snapdragon": "^0.8.1",
+                        "to-regex": "^3.0.2"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+                    "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "requires": {
+                        "p-limit": "^2.0.0"
+                    }
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                },
+                "pify": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+                    "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+                },
+                "pkg-dir": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+                    "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+                    "requires": {
+                        "find-up": "^3.0.0"
+                    }
+                },
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                },
+                "semver": {
+                    "version": "5.7.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+                    "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+                },
+                "ssri": {
+                    "version": "6.0.1",
+                    "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+                    "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+                    "requires": {
+                        "figgy-pudding": "^3.5.1"
+                    }
+                },
+                "terser-webpack-plugin": {
+                    "version": "1.4.5",
+                    "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+                    "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+                    "requires": {
+                        "cacache": "^12.0.2",
+                        "find-cache-dir": "^2.1.0",
+                        "is-wsl": "^1.1.0",
+                        "schema-utils": "^1.0.0",
+                        "serialize-javascript": "^4.0.0",
+                        "source-map": "^0.6.1",
+                        "terser": "^4.1.2",
+                        "webpack-sources": "^1.4.0",
+                        "worker-farm": "^1.7.0"
+                    }
+                },
+                "to-regex-range": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                    "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                    "requires": {
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1"
+                    }
+                },
+                "y18n": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+                    "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
+                },
+                "yallist": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+                    "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+                }
+            }
+        },
+        "webpack-dev-middleware": {
+            "version": "3.7.3",
+            "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz",
+            "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==",
+            "requires": {
+                "memory-fs": "^0.4.1",
+                "mime": "^2.4.4",
+                "mkdirp": "^0.5.1",
+                "range-parser": "^1.2.1",
+                "webpack-log": "^2.0.0"
+            }
+        },
+        "webpack-dev-server": {
+            "version": "3.11.2",
+            "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz",
+            "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==",
+            "requires": {
+                "ansi-html": "0.0.7",
+                "bonjour": "^3.5.0",
+                "chokidar": "^2.1.8",
+                "compression": "^1.7.4",
+                "connect-history-api-fallback": "^1.6.0",
+                "debug": "^4.1.1",
+                "del": "^4.1.1",
+                "express": "^4.17.1",
+                "html-entities": "^1.3.1",
+                "http-proxy-middleware": "0.19.1",
+                "import-local": "^2.0.0",
+                "internal-ip": "^4.3.0",
+                "ip": "^1.1.5",
+                "is-absolute-url": "^3.0.3",
+                "killable": "^1.0.1",
+                "loglevel": "^1.6.8",
+                "opn": "^5.5.0",
+                "p-retry": "^3.0.1",
+                "portfinder": "^1.0.26",
+                "schema-utils": "^1.0.0",
+                "selfsigned": "^1.10.8",
+                "semver": "^6.3.0",
+                "serve-index": "^1.9.1",
+                "sockjs": "^0.3.21",
+                "sockjs-client": "^1.5.0",
+                "spdy": "^4.0.2",
+                "strip-ansi": "^3.0.1",
+                "supports-color": "^6.1.0",
+                "url": "^0.11.0",
+                "webpack-dev-middleware": "^3.7.2",
+                "webpack-log": "^2.0.0",
+                "ws": "^6.2.1",
+                "yargs": "^13.3.2"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "6.12.6",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+                    "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "fast-json-stable-stringify": "^2.0.0",
+                        "json-schema-traverse": "^0.4.1",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "anymatch": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+                    "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+                    "requires": {
+                        "micromatch": "^3.1.4",
+                        "normalize-path": "^2.1.1"
+                    },
+                    "dependencies": {
+                        "normalize-path": {
+                            "version": "2.1.1",
+                            "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+                            "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+                            "requires": {
+                                "remove-trailing-separator": "^1.0.1"
+                            }
+                        }
+                    }
+                },
+                "array-union": {
+                    "version": "1.0.2",
+                    "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+                    "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+                    "requires": {
+                        "array-uniq": "^1.0.1"
+                    }
+                },
+                "binary-extensions": {
+                    "version": "1.13.1",
+                    "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+                    "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+                },
+                "braces": {
+                    "version": "2.3.2",
+                    "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+                    "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+                    "requires": {
+                        "arr-flatten": "^1.1.0",
+                        "array-unique": "^0.3.2",
+                        "extend-shallow": "^2.0.1",
+                        "fill-range": "^4.0.0",
+                        "isobject": "^3.0.1",
+                        "repeat-element": "^1.1.2",
+                        "snapdragon": "^0.8.1",
+                        "snapdragon-node": "^2.0.1",
+                        "split-string": "^3.0.2",
+                        "to-regex": "^3.0.1"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "chokidar": {
+                    "version": "2.1.8",
+                    "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+                    "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+                    "requires": {
+                        "anymatch": "^2.0.0",
+                        "async-each": "^1.0.1",
+                        "braces": "^2.3.2",
+                        "fsevents": "^1.2.7",
+                        "glob-parent": "^3.1.0",
+                        "inherits": "^2.0.3",
+                        "is-binary-path": "^1.0.0",
+                        "is-glob": "^4.0.0",
+                        "normalize-path": "^3.0.0",
+                        "path-is-absolute": "^1.0.0",
+                        "readdirp": "^2.2.1",
+                        "upath": "^1.1.1"
+                    }
+                },
+                "cliui": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+                    "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+                    "requires": {
+                        "string-width": "^3.1.0",
+                        "strip-ansi": "^5.2.0",
+                        "wrap-ansi": "^5.1.0"
+                    },
+                    "dependencies": {
+                        "ansi-regex": {
+                            "version": "4.1.0",
+                            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+                            "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+                        },
+                        "strip-ansi": {
+                            "version": "5.2.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+                            "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+                            "requires": {
+                                "ansi-regex": "^4.1.0"
+                            }
+                        }
+                    }
+                },
+                "debug": {
+                    "version": "4.3.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+                    "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+                    "requires": {
+                        "ms": "2.1.2"
+                    }
+                },
+                "del": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+                    "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+                    "requires": {
+                        "@types/glob": "^7.1.1",
+                        "globby": "^6.1.0",
+                        "is-path-cwd": "^2.0.0",
+                        "is-path-in-cwd": "^2.0.0",
+                        "p-map": "^2.0.0",
+                        "pify": "^4.0.1",
+                        "rimraf": "^2.6.3"
+                    }
+                },
+                "emoji-regex": {
+                    "version": "7.0.3",
+                    "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+                    "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+                },
+                "fill-range": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+                    "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+                    "requires": {
+                        "extend-shallow": "^2.0.1",
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1",
+                        "to-regex-range": "^2.1.0"
+                    },
+                    "dependencies": {
+                        "extend-shallow": {
+                            "version": "2.0.1",
+                            "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+                            "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+                            "requires": {
+                                "is-extendable": "^0.1.0"
+                            }
+                        }
+                    }
+                },
+                "find-up": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+                    "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+                    "requires": {
+                        "locate-path": "^3.0.0"
+                    }
+                },
+                "fsevents": {
+                    "version": "1.2.13",
+                    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+                    "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+                    "optional": true,
+                    "requires": {
+                        "bindings": "^1.5.0",
+                        "nan": "^2.12.1"
+                    }
+                },
+                "glob-parent": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+                    "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+                    "requires": {
+                        "is-glob": "^3.1.0",
+                        "path-dirname": "^1.0.0"
+                    },
+                    "dependencies": {
+                        "is-glob": {
+                            "version": "3.1.0",
+                            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+                            "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+                            "requires": {
+                                "is-extglob": "^2.1.0"
+                            }
+                        }
+                    }
+                },
+                "globby": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+                    "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+                    "requires": {
+                        "array-union": "^1.0.1",
+                        "glob": "^7.0.3",
+                        "object-assign": "^4.0.1",
+                        "pify": "^2.0.0",
+                        "pinkie-promise": "^2.0.0"
+                    },
+                    "dependencies": {
+                        "pify": {
+                            "version": "2.3.0",
+                            "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+                            "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+                        }
+                    }
+                },
+                "is-binary-path": {
+                    "version": "1.0.1",
+                    "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+                    "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+                    "requires": {
+                        "binary-extensions": "^1.0.0"
+                    }
+                },
+                "is-number": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+                    "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+                    "requires": {
+                        "kind-of": "^3.0.2"
+                    },
+                    "dependencies": {
+                        "kind-of": {
+                            "version": "3.2.2",
+                            "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+                            "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+                            "requires": {
+                                "is-buffer": "^1.1.5"
+                            }
+                        }
+                    }
+                },
+                "is-wsl": {
+                    "version": "1.1.0",
+                    "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+                    "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+                },
+                "json-schema-traverse": {
+                    "version": "0.4.1",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+                    "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+                },
+                "locate-path": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+                    "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+                    "requires": {
+                        "p-locate": "^3.0.0",
+                        "path-exists": "^3.0.0"
+                    }
+                },
+                "micromatch": {
+                    "version": "3.1.10",
+                    "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+                    "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+                    "requires": {
+                        "arr-diff": "^4.0.0",
+                        "array-unique": "^0.3.2",
+                        "braces": "^2.3.1",
+                        "define-property": "^2.0.2",
+                        "extend-shallow": "^3.0.2",
+                        "extglob": "^2.0.4",
+                        "fragment-cache": "^0.2.1",
+                        "kind-of": "^6.0.2",
+                        "nanomatch": "^1.2.9",
+                        "object.pick": "^1.3.0",
+                        "regex-not": "^1.0.0",
+                        "snapdragon": "^0.8.1",
+                        "to-regex": "^3.0.2"
+                    }
+                },
+                "opn": {
+                    "version": "5.5.0",
+                    "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+                    "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+                    "requires": {
+                        "is-wsl": "^1.1.0"
+                    }
+                },
+                "p-locate": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+                    "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+                    "requires": {
+                        "p-limit": "^2.0.0"
+                    }
+                },
+                "p-map": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+                    "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="
+                },
+                "path-exists": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+                    "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+                },
+                "pify": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+                    "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
+                },
+                "readable-stream": {
+                    "version": "2.3.7",
+                    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+                    "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+                    "requires": {
+                        "core-util-is": "~1.0.0",
+                        "inherits": "~2.0.3",
+                        "isarray": "~1.0.0",
+                        "process-nextick-args": "~2.0.0",
+                        "safe-buffer": "~5.1.1",
+                        "string_decoder": "~1.1.1",
+                        "util-deprecate": "~1.0.1"
+                    }
+                },
+                "readdirp": {
+                    "version": "2.2.1",
+                    "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+                    "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+                    "requires": {
+                        "graceful-fs": "^4.1.11",
+                        "micromatch": "^3.1.10",
+                        "readable-stream": "^2.0.2"
+                    }
+                },
+                "rimraf": {
+                    "version": "2.7.1",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+                    "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+                    "requires": {
+                        "glob": "^7.1.3"
+                    }
+                },
+                "safe-buffer": {
+                    "version": "5.1.2",
+                    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+                    "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+                },
+                "schema-utils": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+                    "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+                    "requires": {
+                        "ajv": "^6.1.0",
+                        "ajv-errors": "^1.0.0",
+                        "ajv-keywords": "^3.1.0"
+                    }
+                },
+                "semver": {
+                    "version": "6.3.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+                    "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+                },
+                "sockjs-client": {
+                    "version": "1.5.0",
+                    "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz",
+                    "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==",
+                    "requires": {
+                        "debug": "^3.2.6",
+                        "eventsource": "^1.0.7",
+                        "faye-websocket": "^0.11.3",
+                        "inherits": "^2.0.4",
+                        "json3": "^3.3.3",
+                        "url-parse": "^1.4.7"
+                    },
+                    "dependencies": {
+                        "debug": {
+                            "version": "3.2.7",
+                            "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+                            "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+                            "requires": {
+                                "ms": "^2.1.1"
+                            }
+                        }
+                    }
+                },
+                "string-width": {
+                    "version": "3.1.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+                    "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+                    "requires": {
+                        "emoji-regex": "^7.0.1",
+                        "is-fullwidth-code-point": "^2.0.0",
+                        "strip-ansi": "^5.1.0"
+                    },
+                    "dependencies": {
+                        "ansi-regex": {
+                            "version": "4.1.0",
+                            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+                            "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+                        },
+                        "strip-ansi": {
+                            "version": "5.2.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+                            "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+                            "requires": {
+                                "ansi-regex": "^4.1.0"
+                            }
+                        }
+                    }
+                },
+                "string_decoder": {
+                    "version": "1.1.1",
+                    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+                    "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+                    "requires": {
+                        "safe-buffer": "~5.1.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                },
+                "supports-color": {
+                    "version": "6.1.0",
+                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+                    "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+                    "requires": {
+                        "has-flag": "^3.0.0"
+                    }
+                },
+                "to-regex-range": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+                    "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+                    "requires": {
+                        "is-number": "^3.0.0",
+                        "repeat-string": "^1.6.1"
+                    }
+                },
+                "wrap-ansi": {
+                    "version": "5.1.0",
+                    "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+                    "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+                    "requires": {
+                        "ansi-styles": "^3.2.0",
+                        "string-width": "^3.0.0",
+                        "strip-ansi": "^5.0.0"
+                    },
+                    "dependencies": {
+                        "ansi-regex": {
+                            "version": "4.1.0",
+                            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+                            "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+                        },
+                        "strip-ansi": {
+                            "version": "5.2.0",
+                            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+                            "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+                            "requires": {
+                                "ansi-regex": "^4.1.0"
+                            }
+                        }
+                    }
+                },
+                "ws": {
+                    "version": "6.2.1",
+                    "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+                    "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+                    "requires": {
+                        "async-limiter": "~1.0.0"
+                    }
+                },
+                "y18n": {
+                    "version": "4.0.1",
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+                    "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
+                },
+                "yargs": {
+                    "version": "13.3.2",
+                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+                    "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+                    "requires": {
+                        "cliui": "^5.0.0",
+                        "find-up": "^3.0.0",
+                        "get-caller-file": "^2.0.1",
+                        "require-directory": "^2.1.1",
+                        "require-main-filename": "^2.0.0",
+                        "set-blocking": "^2.0.0",
+                        "string-width": "^3.0.0",
+                        "which-module": "^2.0.0",
+                        "y18n": "^4.0.0",
+                        "yargs-parser": "^13.1.2"
+                    }
+                },
+                "yargs-parser": {
+                    "version": "13.1.2",
+                    "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+                    "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+                    "requires": {
+                        "camelcase": "^5.0.0",
+                        "decamelize": "^1.2.0"
+                    }
+                }
+            }
+        },
+        "webpack-hot-middleware": {
+            "version": "2.25.0",
+            "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz",
+            "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==",
+            "requires": {
+                "ansi-html": "0.0.7",
+                "html-entities": "^1.2.0",
+                "querystring": "^0.2.0",
+                "strip-ansi": "^3.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+                    "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+                },
+                "strip-ansi": {
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+                    "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+                    "requires": {
+                        "ansi-regex": "^2.0.0"
+                    }
+                }
+            }
+        },
+        "webpack-log": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+            "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+            "requires": {
+                "ansi-colors": "^3.0.0",
+                "uuid": "^3.3.2"
+            }
+        },
+        "webpack-merge": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+            "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+            "requires": {
+                "lodash": "^4.17.15"
+            }
+        },
+        "webpack-sources": {
+            "version": "1.4.3",
+            "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+            "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+            "requires": {
+                "source-list-map": "^2.0.0",
+                "source-map": "~0.6.1"
+            }
+        },
+        "webpack-stats-plugin": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-0.3.2.tgz",
+            "integrity": "sha512-kxEtPQ6lBBik2qtJlsZkiaDMI6rGXe9w1kLH9ZCdt0wgCGVnbwwPlP60cMqG6tILNFYqXDxNt4+c4OIIuE+Fnw=="
+        },
+        "webpack-virtual-modules": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz",
+            "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==",
+            "requires": {
+                "debug": "^3.0.0"
+            }
+        },
+        "websocket-driver": {
+            "version": "0.7.4",
+            "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+            "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+            "requires": {
+                "http-parser-js": ">=0.5.1",
+                "safe-buffer": ">=5.1.0",
+                "websocket-extensions": ">=0.1.1"
+            }
+        },
+        "websocket-extensions": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+            "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
+        },
+        "whatwg-fetch": {
+            "version": "3.5.0",
+            "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz",
+            "integrity": "sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A=="
+        },
+        "which": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+            "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+            "requires": {
+                "isexe": "^2.0.0"
+            }
+        },
+        "which-module": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+            "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+        },
+        "which-pm-runs": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+            "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
+        },
+        "wide-align": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+            "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+            "requires": {
+                "string-width": "^1.0.2 || 2"
+            }
+        },
+        "widest-line": {
+            "version": "3.1.0",
+            "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+            "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+            "requires": {
+                "string-width": "^4.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                }
+            }
+        },
+        "word-wrap": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+        },
+        "workbox-background-sync": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz",
+            "integrity": "sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-broadcast-cache-update": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz",
+            "integrity": "sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-build": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-3.6.3.tgz",
+            "integrity": "sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g==",
+            "requires": {
+                "babel-runtime": "^6.26.0",
+                "common-tags": "^1.4.0",
+                "fs-extra": "^4.0.2",
+                "glob": "^7.1.2",
+                "joi": "^11.1.1",
+                "lodash.template": "^4.4.0",
+                "pretty-bytes": "^4.0.2",
+                "stringify-object": "^3.2.2",
+                "strip-comments": "^1.0.2",
+                "workbox-background-sync": "^3.6.3",
+                "workbox-broadcast-cache-update": "^3.6.3",
+                "workbox-cache-expiration": "^3.6.3",
+                "workbox-cacheable-response": "^3.6.3",
+                "workbox-core": "^3.6.3",
+                "workbox-google-analytics": "^3.6.3",
+                "workbox-navigation-preload": "^3.6.3",
+                "workbox-precaching": "^3.6.3",
+                "workbox-range-requests": "^3.6.3",
+                "workbox-routing": "^3.6.3",
+                "workbox-strategies": "^3.6.3",
+                "workbox-streams": "^3.6.3",
+                "workbox-sw": "^3.6.3"
+            },
+            "dependencies": {
+                "fs-extra": {
+                    "version": "4.0.3",
+                    "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+                    "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+                    "requires": {
+                        "graceful-fs": "^4.1.2",
+                        "jsonfile": "^4.0.0",
+                        "universalify": "^0.1.0"
+                    }
+                },
+                "joi": {
+                    "version": "11.4.0",
+                    "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz",
+                    "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==",
+                    "requires": {
+                        "hoek": "4.x.x",
+                        "isemail": "3.x.x",
+                        "topo": "2.x.x"
+                    }
+                }
+            }
+        },
+        "workbox-cache-expiration": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz",
+            "integrity": "sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-cacheable-response": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz",
+            "integrity": "sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-core": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.6.3.tgz",
+            "integrity": "sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ=="
+        },
+        "workbox-google-analytics": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz",
+            "integrity": "sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig==",
+            "requires": {
+                "workbox-background-sync": "^3.6.3",
+                "workbox-core": "^3.6.3",
+                "workbox-routing": "^3.6.3",
+                "workbox-strategies": "^3.6.3"
+            }
+        },
+        "workbox-navigation-preload": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz",
+            "integrity": "sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-precaching": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-3.6.3.tgz",
+            "integrity": "sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-range-requests": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz",
+            "integrity": "sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-routing": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-3.6.3.tgz",
+            "integrity": "sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-strategies": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.6.3.tgz",
+            "integrity": "sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-streams": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-3.6.3.tgz",
+            "integrity": "sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w==",
+            "requires": {
+                "workbox-core": "^3.6.3"
+            }
+        },
+        "workbox-sw": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-3.6.3.tgz",
+            "integrity": "sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg=="
+        },
+        "worker-farm": {
+            "version": "1.7.0",
+            "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+            "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+            "requires": {
+                "errno": "~0.1.7"
+            }
+        },
+        "wrap-ansi": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+            "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+            "requires": {
+                "ansi-styles": "^4.0.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                }
+            }
+        },
+        "wrappy": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+        },
+        "write": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+            "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+            "requires": {
+                "mkdirp": "^0.5.1"
+            }
+        },
+        "write-file-atomic": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+            "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+            "requires": {
+                "imurmurhash": "^0.1.4",
+                "is-typedarray": "^1.0.0",
+                "signal-exit": "^3.0.2",
+                "typedarray-to-buffer": "^3.1.5"
+            }
+        },
+        "ws": {
+            "version": "7.4.3",
+            "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz",
+            "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA=="
+        },
+        "x-is-string": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz",
+            "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI="
+        },
+        "xdg-basedir": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+            "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
+        },
+        "xhr": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
+            "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
+            "requires": {
+                "global": "~4.4.0",
+                "is-function": "^1.0.1",
+                "parse-headers": "^2.0.0",
+                "xtend": "^4.0.0"
+            }
+        },
+        "xml-parse-from-string": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
+            "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig="
+        },
+        "xml2js": {
+            "version": "0.4.17",
+            "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
+            "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
+            "requires": {
+                "sax": ">=0.6.0",
+                "xmlbuilder": "^4.1.0"
+            }
+        },
+        "xmlbuilder": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
+            "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
+            "requires": {
+                "lodash": "^4.0.0"
+            }
+        },
+        "xmlhttprequest-ssl": {
+            "version": "1.5.5",
+            "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+            "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
+        },
+        "xss": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz",
+            "integrity": "sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==",
+            "requires": {
+                "commander": "^2.20.3",
+                "cssfilter": "0.0.10"
+            }
+        },
+        "xstate": {
+            "version": "4.15.1",
+            "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.15.1.tgz",
+            "integrity": "sha512-8dD/GnTwxUuDr/cY42vi+Enu4mpbuUXWISYJ0a9BC+cIFvqufJsepyDLS6lLsznfUP0GS5Yx9m3IQWFhAoGt/A=="
+        },
+        "xtend": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+            "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+        },
+        "y18n": {
+            "version": "5.0.5",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+            "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg=="
+        },
+        "yallist": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+            "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+        },
+        "yaml": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
+            "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg=="
+        },
+        "yaml-loader": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.6.0.tgz",
+            "integrity": "sha512-1bNiLelumURyj+zvVHOv8Y3dpCri0F2S+DCcmps0pA1zWRLjS+FhZQg4o3aUUDYESh73+pKZNI18bj7stpReow==",
+            "requires": {
+                "loader-utils": "^1.4.0",
+                "yaml": "^1.8.3"
+            }
+        },
+        "yargs": {
+            "version": "16.2.0",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+            "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+            "requires": {
+                "cliui": "^7.0.2",
+                "escalade": "^3.1.1",
+                "get-caller-file": "^2.0.5",
+                "require-directory": "^2.1.1",
+                "string-width": "^4.2.0",
+                "y18n": "^5.0.5",
+                "yargs-parser": "^20.2.2"
+            },
+            "dependencies": {
+                "ansi-regex": {
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "is-fullwidth-code-point": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+                },
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "requires": {
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
+                    }
+                },
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                    "requires": {
+                        "ansi-regex": "^5.0.0"
+                    }
+                }
+            }
+        },
+        "yargs-parser": {
+            "version": "20.2.5",
+            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz",
+            "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg=="
+        },
+        "yauzl": {
+            "version": "2.10.0",
+            "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+            "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+            "requires": {
+                "buffer-crc32": "~0.2.3",
+                "fd-slicer": "~1.1.0"
+            }
+        },
+        "yeast": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+            "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
+        },
+        "yn": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+            "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
+        },
+        "yocto-queue": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+            "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+        },
+        "yoga-layout-prebuilt": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz",
+            "integrity": "sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==",
+            "requires": {
+                "@types/yoga-layout": "1.9.2"
+            }
+        },
+        "yurnalist": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-2.1.0.tgz",
+            "integrity": "sha512-PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==",
+            "requires": {
+                "chalk": "^2.4.2",
+                "inquirer": "^7.0.0",
+                "is-ci": "^2.0.0",
+                "read": "^1.0.7",
+                "strip-ansi": "^5.2.0"
+            }
+        },
+        "zwitch": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+            "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
+        }
+    }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..96d542c69d89ac00f182c121d8f39b70f3244da0
--- /dev/null
+++ b/package.json
@@ -0,0 +1,67 @@
+{
+    "name": "course-starter-python",
+    "private": true,
+    "description": "Starter package to build interactive Python courses",
+    "version": "0.0.1",
+    "author": "Ines Montani <ines@explosion.ai>",
+    "dependencies": {
+        "@azure/msal-browser": "^2.11.1",
+        "@illinois/react-use-local-storage": "^1.1.0",
+        "@jupyterlab/outputarea": "^0.19.1",
+        "@jupyterlab/rendermime": "^0.19.1",
+        "@microsoft/microsoft-graph-client": "^2.2.1",
+        "@phosphor/widgets": "^1.6.0",
+        "autoprefixer": "^9.4.7",
+        "classnames": "^2.2.6",
+        "codemirror": "^5.43.0",
+        "gatsby": "^2.32.4",
+        "gatsby-image": "^2.0.29",
+        "gatsby-plugin-manifest": "^2.2.0",
+        "gatsby-plugin-offline": "^2.0.23",
+        "gatsby-plugin-plausible": "0.0.6",
+        "gatsby-plugin-react-helmet": "^3.0.6",
+        "gatsby-plugin-react-svg": "^2.1.1",
+        "gatsby-plugin-sass": "^2.0.10",
+        "gatsby-plugin-sharp": "^2.1.9",
+        "gatsby-plugin-sitemap": "^2.0.5",
+        "gatsby-remark-component": "^1.1.3",
+        "gatsby-remark-copy-linked-files": "^2.0.9",
+        "gatsby-remark-images": "^3.0.4",
+        "gatsby-remark-mathjax": "^1.0.0",
+        "gatsby-remark-prismjs": "^3.2.4",
+        "gatsby-remark-smartypants": "^2.0.8",
+        "gatsby-remark-unwrap-images": "^1.0.1",
+        "gatsby-source-filesystem": "^2.0.20",
+        "gatsby-transformer-remark": "^2.2.5",
+        "gatsby-transformer-sharp": "^2.1.21",
+        "juniper-js": "^0.1.0",
+        "localstorage-polyfill": "^1.0.1",
+        "mathjax": "^3.1.2",
+        "msal": "^1.4.5",
+        "node-sass": "^4.11.0",
+        "prismjs": "^1.15.0",
+        "react": "^16.8.2",
+        "react-dom": "^16.8.2",
+        "react-helmet": "^5.2.0",
+        "react-icons": "^4.2.0",
+        "react-mathjax2": "0.0.2",
+        "rehype-react": "^3.1.0",
+        "remark-react": "^5.0.1",
+        "reveal.js": "^3.8.0"
+    },
+    "scripts": {
+        "build": "gatsby build",
+        "dev": "gatsby develop",
+        "lint": "eslint **",
+        "clear": "rm -rf .cache",
+        "test": "echo \"Write tests! -> https://gatsby.app/unit-testing\""
+    },
+    "devDependencies": {
+        "browser-monads": "^1.0.0",
+        "prettier": "^1.16.4"
+    },
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/ines/course-starter-python"
+    }
+}
diff --git a/plugins/remark-default-class-name/index.js b/plugins/remark-default-class-name/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e60277c7b648485c2bd930c90264efe77a30aed5
--- /dev/null
+++ b/plugins/remark-default-class-name/index.js
@@ -0,0 +1,13 @@
+const { selectAll } = require('unist-util-select');
+
+module.exports = ({ markdownAST }) => {
+    const h1Nodes = selectAll('Option', markdownAST);
+
+     console.log("log" + h1Nodes)
+      // node doesn't always have data
+     if (!node.data) node.data = {};
+     node.data.hProperties = {
+       className: 'foo'
+     }
+  // [{ type: "heading", children: [{ type: "text", value: "..." }] }, ...]
+}
\ No newline at end of file
diff --git a/plugins/remark-default-class-name/package.json b/plugins/remark-default-class-name/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..719a82f9eb8e00c2287bb2a30398f35e047c4ca0
--- /dev/null
+++ b/plugins/remark-default-class-name/package.json
@@ -0,0 +1,12 @@
+{
+  "name": "remark-default-class-name",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC"
+}
diff --git a/scratch.txt b/scratch.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9289ce6dd001ee9b522896fd447ffc4ff5263e1e
--- /dev/null
+++ b/scratch.txt
@@ -0,0 +1,30 @@
+
+g
+$$
+L = \frac{1}{2} \rho v^2 S C_L
+$$
+hello $L = \frac{1}{2} \rho v^2 S C_L$ asdads
+
+<exercise id="3" title="First steps">
+
+ds
+This is a code exercise. The content can be formatted in simple Markdown – so
+you can have **bold text**, `code` or [links](https://spacy.io) or ($a^2 + b^2 = c^2$)lists, like($a^2 + b^2 = c^2$)
+the one for the instructions below.($a^2 + b^2 = c^2$)
+- These are instructions and they can have bullet points.
+- The code block below will look for the files `exc_01_03`, `solution_01_03` and
+  `test_01_03` in `/exercises`.
+
+
+$a^2 + b^2 = c^2$
+
+
+<codeblock id="01_03">
+
+This is a hint.
+
+</codeblock>
+
+
+</exercise>
+This chapter will teach you even more stuff and help you learn some new concepts.
diff --git a/slides/chapter1_01_introduction.md b/slides/chapter1_01_introduction.md
new file mode 100644
index 0000000000000000000000000000000000000000..70ff1e31c0c91228fff94cff0e4d63f8f5d6f972
--- /dev/null
+++ b/slides/chapter1_01_introduction.md
@@ -0,0 +1,39 @@
+---
+type: slides
+---
+
+# Introduction
+
+Notes: Text at the end of a slide prefixed like this will be displayed as
+speaker notes on the side. Slides can be separated with a divider: ---.
+
+---
+
+# This is a slide
+
+```python
+# Print something
+print("Hello world")
+```
+
+```out
+Hello world
+```
+
+- Slides can have code, bullet points, tables and pretty much all other Markdown
+  elements.
+- This is another bullet point.
+
+<img src="profile.jpg" alt="This image is in /static" width="25%">
+
+Notes: Some more notes go here
+
+---
+
+# Let's practice!
+
+Notes: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tristique
+libero at est congue, sed vestibulum tortor laoreet. Aenean egestas massa non
+commodo consequat. Curabitur faucibus, sapien vitae euismod imperdiet, arcu erat
+semper urna, in accumsan sapien dui ac mi. Pellentesque felis lorem, semper nec
+velit nec, consectetur placerat enim.
diff --git a/src/components/answer-types/answer-info.js b/src/components/answer-types/answer-info.js
new file mode 100644
index 0000000000000000000000000000000000000000..530fcb409d69dac4526788cc3729d9d48976ab89
--- /dev/null
+++ b/src/components/answer-types/answer-info.js
@@ -0,0 +1,45 @@
+import React from 'react'
+import classNames from 'classnames'
+import classes from '../../styles/multi-choice.module.sass'
+
+const AnswerInfo = ({isCorrect, isPartial = () => false, right = null, wrong = null, partial = null, children = []}) => { 
+
+    const infoTheme = () => {
+        if(isCorrect()) {
+            return classes.correct
+        } else if(isPartial()) {
+            return classes.partial
+        } else {
+            return classes.wrong
+        }
+    }
+
+    const defaultText = () => {
+        return isCorrect() ? "Correct! " : isPartial() ? "Your answer is partially correct " : "Incorrect. "
+    }
+
+    const userText = () => {      
+        return isCorrect() ? right : isPartial() ? partial : wrong
+    }
+
+    return (
+        <div
+                        
+        className={classNames(classes.answer, { [infoTheme()]: true })}
+        >
+        <strong
+            className={classNames(classes.answerLabel, {
+                [classes.answerLabelCorrect]: isCorrect(),
+            })}
+        >
+            {defaultText()}
+        </strong><br></br>
+        {
+            userText()
+        }
+        {children}
+         </div>
+    )
+}
+
+export default AnswerInfo
\ No newline at end of file
diff --git a/src/components/answer-types/choice.js b/src/components/answer-types/choice.js
new file mode 100644
index 0000000000000000000000000000000000000000..319f51bb2a4ad03d3246e2d98636de6533d4b234
--- /dev/null
+++ b/src/components/answer-types/choice.js
@@ -0,0 +1,66 @@
+import React, { useState, useCallback } from 'react'
+
+import { Button } from '../button'
+import classes from '../../styles/choice.module.sass'
+import AnswerInfo from './answer-info'
+import {randomId, hasChildren, findChild} from '../../utility/index'
+import { Input } from '../input'
+import { useEffect } from 'react'
+import { Option } from "./option"
+
+const Choice = ({ id = `${randomId()}`, right="", children = [] }) => {
+    const [selected, setSelected] = useState(null)
+    const [answer, setAnswer] = useState(null)
+    const [options, setOptions] = useState([])
+
+    const handleAnswer = useCallback(() => {setAnswer(selected);}, [selected])
+
+    useEffect(() => {
+        const optionsMARKDOWN = children.filter(child => child !== "\n")
+        const filtered = [...optionsMARKDOWN.map(a => (hasChildren(a) ? findChild(a, Option.tag) : null))]; //a.type.name == "Option" || a.type.displayName == "Option" ? a : (hasChildren(a) ? optionChild(a) : null))];
+        setOptions([...filtered.filter(a => a != null)]);
+    }, [children]);
+
+
+    
+    return (
+        <>
+            {options.map(({ key, props }, i) => (
+                <p key={key} className={classes.option}>
+                    <Input
+                        className={classes.input}
+                        name={`choice-${id}-${i}`}
+                        id={`choice-${id}-${i}`}
+                        value={i}
+                        type="radio"
+                        checked={selected === i}
+                        onChange={() => setSelected(i)}
+                        />
+                    <label
+                        className={classes.label}
+                        htmlFor={`choice-${id}-${i}`}
+                        dangerouslySetInnerHTML={{ __html: `<span>${props.text}</span>` }} 
+                    />
+                </p>
+            ))}
+
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+         
+            {options.map(({ key, props }, i) => {
+                const isCorrect = !!props.correct
+                return answer === i ? (
+                    <div key={key}>
+                    {
+                        
+                         <AnswerInfo isCorrect={() => isCorrect} children={props.feedback || ""}></AnswerInfo>
+                    }                                   
+                    </div>
+                ) : null
+            })}
+        </>
+    )
+}
+
+export default Choice
diff --git a/src/components/answer-types/dist/submitter.dev.js b/src/components/answer-types/dist/submitter.dev.js
new file mode 100644
index 0000000000000000000000000000000000000000..130f3732cbc57e57c394fb2afb9e3bc6f216f11a
--- /dev/null
+++ b/src/components/answer-types/dist/submitter.dev.js
@@ -0,0 +1,9 @@
+"use strict";
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+var _react = _interopRequireWildcard(require("react"));
+
+function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
\ No newline at end of file
diff --git a/src/components/answer-types/input-type.js b/src/components/answer-types/input-type.js
new file mode 100644
index 0000000000000000000000000000000000000000..1e9402205e2c3ee9443403c625369fc8329f95ea
--- /dev/null
+++ b/src/components/answer-types/input-type.js
@@ -0,0 +1,11 @@
+import React from 'react'
+import RawInput from './raw-input';
+
+
+
+export const RegexInput = (props) => {
+
+    const validation = (answer) => (new RegExp(props.regex, 'y')).exec(answer) !== null
+
+    return (<RawInput {...props} validation={validation}/>)
+}
diff --git a/src/components/answer-types/match-type.js b/src/components/answer-types/match-type.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8def87d1bd710a7ce7f395f0036c5c768aac795
--- /dev/null
+++ b/src/components/answer-types/match-type.js
@@ -0,0 +1,51 @@
+import React from 'react'
+
+import ShortAnswer from './short-answer'
+
+export const ExactMatch = (props) => {
+    const {correct} = props;
+    
+    const validation = (answer) => {
+        return answer === correct;
+    };
+
+    return (<ShortAnswer {...props} validation={validation} />)
+}
+
+
+export const NumericMatch = (props) => {
+    const correct = parseFloat(props.correct);
+    
+    const validation = (answer) => {
+        if(isNaN(answer)) { return false; }
+        return parseFloat(answer) === correct;
+    };
+
+    return (<ShortAnswer {...props} validation={validation}/>)
+}
+
+
+
+export const RangeMatch = (props) => {
+    const from = parseFloat(props.from)
+    const to   = parseFloat(props.to)
+    
+    const validation = (answer) => {
+      if(isNaN(answer)) { return false; }
+      const num = parseFloat(answer)
+      return num > from && num < to
+    };
+
+    return (<ShortAnswer {...props} validation={validation}/>)
+}
+
+
+
+export const RexegMatch = (props) => {
+    
+    const validation = (answer) => (new RegExp(props.regex, 'y')).exec(answer) !== null
+
+    return (<ShortAnswer {...props} validation={validation}/>)
+}
+
+
diff --git a/src/components/answer-types/multi-choice.js b/src/components/answer-types/multi-choice.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7504ce844e989b6b425b01d2a6a6ebdbf01de25
--- /dev/null
+++ b/src/components/answer-types/multi-choice.js
@@ -0,0 +1,104 @@
+import React, { useState, useCallback } from 'react'
+
+import { Button } from '../button'
+import classes from '../../styles/multi-choice.module.sass'
+import AnswerInfo from './answer-info'
+import { Input } from '../input'
+
+function difference(setA, setB) {
+    let _difference = new Set(setA)
+    for (let elem of setB) {
+        _difference.delete(elem)
+    }
+    return _difference
+}
+
+function equal(setA, setB) {
+    const diff = difference(setA, setB)
+    return diff.size === 0 && setA.size === setB.size
+}
+
+const MultiChoice = ({ id = '0', wrong="", partial=wrong, right="" ,children = [] }) => {
+    const [selected, setSelected]   = useState(new Set())
+    const [answer, setAnswer]       = useState(new Set())
+    //const [isCorrect, setIsCorrect] = useState(false)
+    const isCorrect = () => {
+        return equal(correctSet, answer)//difference(correctSet, answer).size == 0
+    };
+
+    const isPartial = () => {
+        // Order matters in differnece
+        return difference(answer, correctSet).size === 0 && !equal(answer,correctSet)
+    }
+
+    
+    const emptyLineRegex = /^\s*\n?/gm;
+    // kΓΆr bara om selected Γ€r Γ€ndrat nΓ€r du frΓ₯gar om kΓΆrningen, olika kΓΆrningar krΓ€ver att selected Γ€r Γ€ndrad
+    const options        = children.filter(child => child !== '\n' && (child.match? !child.match(emptyLineRegex): true))
+    const correctSet     = new Set([...options.map(({ key, props }, i) => ({index: i, correct: props.correct})).filter((item)=>!!item.correct).map((item)=>item.index)])
+    
+    const handleAnswer = useCallback(() => {
+        setAnswer(new Set([...selected])) // mΓ₯ste spridas annars blir det en sidoeffekt nΓ€r selected Γ€ndras vilket beror pΓ₯ att det skickas som reference
+    }, [selected]) 
+
+
+    return (
+        <>
+            {options.map(({ key, props }, i) => {
+               return (<p key={key} className={classes.option}>
+                    <Input
+                        className={classes.input}
+                        name={`choice-${id}`}
+                        id={`choice-${id}-${i}`}
+                        value={i}
+                        type="checkbox"
+                        checked={selected.has(i)}
+                        onChange={() => {
+                            selected.delete(i) ? setSelected(new Set([...selected])) : setSelected(new Set([...selected, i])) 
+                        }}
+                    />
+                    <label
+                        className={classes.label}
+                        htmlFor={`choice-${id}-${i}`}
+                        dangerouslySetInnerHTML={{ __html: `<span>${props.text}</span>` }}
+                    />
+                </p>)
+            })}
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+            {
+                answer.size > 0 && <AnswerInfo isCorrect={isCorrect} isPartial={isPartial} right={right} wrong={wrong} partial={partial}></AnswerInfo>
+            }
+      
+        </>
+    )
+}
+
+export const Option = ({ children }) => {
+    return children
+}
+
+export default MultiChoice
+
+/*
+      {options.map(({ key, props }, i) => {
+                const isCorrect = !!props.correct
+                return answer.has(i) ? (
+                    <div
+                        key={key}
+                        className={classNames(classes.answer, { [classes.correct]: isCorrect })}
+                    >
+                        <strong
+                            className={classNames(classes.answerLabel, {
+                                [classes.answerLabelCorrect]: isCorrect,
+                            })}
+                        >
+                            {isCorrect ? "That's correct! " : 'Incorrect. '}
+                        </strong>
+                        {props.children}
+                    </div>
+                ) : null
+            })}
+
+*/
\ No newline at end of file
diff --git a/src/components/answer-types/numerical.js b/src/components/answer-types/numerical.js
new file mode 100644
index 0000000000000000000000000000000000000000..a63b20635403b673b18b6ac86d924144f1dfde79
--- /dev/null
+++ b/src/components/answer-types/numerical.js
@@ -0,0 +1,52 @@
+import React, { useState, useCallback, useEffect} from 'react'
+
+import { Button } from '../button'
+import classes from '../../styles/multi-choice.module.sass'
+import AnswerInfo from './answer-info'
+
+
+const Numerical = ({right="" ,children = [] }) => {
+    const [answer, setAnswer]       = useState('')
+    const [inputText, setInputText] = useState('')
+
+    const options = children.filter(child => child !== '\n')
+
+    const [correctAnswer, setCorrectAnswer] = useState(0)
+    const [error, setError] = useState(0)
+
+    const props = options[1].props
+    // Assume short answer only consists of one input
+    useEffect(() => { 
+        setCorrectAnswer(parseFloat(props.correct))
+        setError(parseFloat(props.error))
+    });
+
+    const isCorrect = () => {
+      return answer <= correctAnswer + error && answer >= correctAnswer - error
+    };
+
+    const handleAnswer = useCallback(() => {
+        setAnswer(inputText)
+        console.log(answer)
+    }, [inputText]) 
+
+
+    return (
+        <>           
+            <Input onChange={event => setInputText(event.target.value) } style={{border: "solid"} }></Input>
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+            {
+                answer.length > 0 && <AnswerInfo isCorrect={isCorrect} right={props.right} wrong={props.wrong}></AnswerInfo>
+            }
+           
+        </>
+    )
+}
+
+export const Input = ({ children }) => {
+    return children
+}
+
+export default Numerical
diff --git a/src/components/answer-types/option.js b/src/components/answer-types/option.js
new file mode 100644
index 0000000000000000000000000000000000000000..277e2a5c4d701b264a672cee0505df2fff071887
--- /dev/null
+++ b/src/components/answer-types/option.js
@@ -0,0 +1,6 @@
+export const Option = ({children}) => {
+    return children;
+}
+
+
+Option.tag = "Option"
\ No newline at end of file
diff --git a/src/components/answer-types/raw-input.js b/src/components/answer-types/raw-input.js
new file mode 100644
index 0000000000000000000000000000000000000000..f483f4dbb9c1cf25e294800f68206ccec1591640
--- /dev/null
+++ b/src/components/answer-types/raw-input.js
@@ -0,0 +1,42 @@
+import React, { useState, useEffect, useContext} from 'react'
+import classes from '../../styles/rawinput.module.sass'
+import { MultianswerContext } from "../../context/index";
+
+import {Input} from '../input'
+
+
+const RawInput = ({validation, id, right="", wrong="", children = [] }) => {
+    const [inputText, setInputText] = useState('')
+    const multianswerContext = useContext(MultianswerContext);
+    const [showValidation, setShowValidation] = useState(multianswerContext.validate);
+
+    useEffect(() => {
+        setShowValidation(multianswerContext.validate);    
+    }, [multianswerContext.validate]);
+
+
+    const updateInputText = (value) => {
+        setInputText(value)
+        setShowValidation(false); 
+        multianswerContext.updateAnswer(id, value, validation(value))
+    }
+
+    const validationStyle = () => {
+        if(showValidation) {
+            return validation(inputText) ? classes.correct : classes.incorrect;
+        }
+        return ''
+    }
+
+    return (
+        <>        
+            <Input value={inputText} 
+                   onChange={event => updateInputText(event.target.value) } 
+                   className={`${classes.answerInput} ${multianswerContext.validate ?  validationStyle(): ''}`}>        
+            </Input>
+        </>
+    )
+}
+
+
+export default RawInput
diff --git a/src/components/answer-types/select-choice.js b/src/components/answer-types/select-choice.js
new file mode 100644
index 0000000000000000000000000000000000000000..d27cf95faa6c50c918621d06bf3cebe3f78b4a2a
--- /dev/null
+++ b/src/components/answer-types/select-choice.js
@@ -0,0 +1,55 @@
+import React, { useState, useCallback, useContext } from 'react'
+
+import { Button } from '../button'
+import AnswerInfo from './answer-info'
+import {randomId, hasChildren, findChild} from '../../utility/index'
+import { useEffect } from 'react'
+import {Option} from "./option"
+import classes from '../../styles/select-choice.module.sass'
+
+
+import { TaskContext } from "../../context/index";
+
+const SelectChoice = ({ id = `${randomId()}`,right="", children = [] }) => {
+    const [selected, setSelected] = useState(null)
+    const [answer, setAnswer] = useState(null)
+    const [options, setOptions] = useState([])
+    
+    useEffect(() => {
+        const optionsMARKDOWN = children.filter(child => child !== "\n")
+        const filtered = [...optionsMARKDOWN.map(a => (hasChildren(a) ? findChild(a, Option.tag) : null))];
+        setOptions([...filtered]); 
+    }, [children]);
+
+    const taskContext  = useContext(TaskContext);
+    const handleAnswer = useCallback(() => setAnswer(selected), [selected])
+
+    return (
+        <>
+            <select className={classes.selectChoice} disabled={taskContext.taskCompleted ? 'disabled' : null} onBlur={e => setSelected(parseInt(e.target.value))}>
+                <option key={-1}>{"--vΓ€lj svar--"}</option>
+                {options.map(({ key, props }, i) => (         
+                    <option key={key} value={i}>{props.text}</option>
+                ))}
+            </select>
+
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+         
+            {options.map(({ key, props }, i) => {
+                const isCorrect = !!props.correct
+
+                return answer === i ? (  
+                    <div key={i}>
+                    {                     
+                        <AnswerInfo isCorrect={() => isCorrect} children={props.feedback || ""}></AnswerInfo>
+                    }                                   
+                    </div>
+                ) : null
+            })}
+        </>
+    )
+}
+
+export default SelectChoice
diff --git a/src/components/answer-types/short-answer.js b/src/components/answer-types/short-answer.js
new file mode 100644
index 0000000000000000000000000000000000000000..d04de591be63f103d2b60e80b3c84d89ff0b8157
--- /dev/null
+++ b/src/components/answer-types/short-answer.js
@@ -0,0 +1,49 @@
+import React, { useState, useCallback } from 'react'
+
+import { Button } from '../button'
+import classes from '../../styles/short-answer.module.sass'
+import AnswerInfo from './answer-info'
+
+import {Input } from '../input'
+
+const ShortAnswer = ({validation, right="", wrong="", children = [] }) => {
+    const [answer, setAnswer]       = useState('')
+    const [inputText, setInputText] = useState('')
+
+   // const options = children.filter(child => child !== '\n')
+
+
+    // Assume short answer only consists of one input
+    // useEffect(() => { // kanske behΓΆver anvΓ€ndas lΓ€ngre upp?
+    //  setCorrectAnswer(props.correct)
+    // });
+
+    const isCorrect = useCallback(() => {
+        return validation(answer)
+    }, [answer, validation]);
+
+    const handleAnswer = useCallback(() => {
+        setAnswer(inputText)
+    }, [inputText]) 
+
+
+    return (
+        <>     
+            <Input onChange={event => setInputText(event.target.value) } className={classes.answerInput}></Input>
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+            {
+                answer.length > 0 && <AnswerInfo isCorrect={isCorrect} right={right} wrong={wrong}></AnswerInfo>
+            }
+           
+        </>
+    )
+}
+/*
+export const Input = ({ children }) => {
+    return children
+}
+*/
+
+export default ShortAnswer
diff --git a/src/components/burger.js b/src/components/burger.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb8b22c7b3d775ff9c70692e7f00b063a856a11a
--- /dev/null
+++ b/src/components/burger.js
@@ -0,0 +1,47 @@
+
+import React from 'react'
+import classes from '../styles/burger.module.sass'
+import classNames from 'classnames'
+import { useCallback } from 'react'
+import { useState } from 'react'
+
+const Burger = (props) => {
+    const mobileThreshold = 1200;
+    const [hidden, setHidden] = useState(true); 
+    const [isMobile, setIsMobile] = useState(true)//useState(typeof window !== 'undefined' ? window.innerWidth < mobileThreshold : false);
+
+    const toggleMenu = useCallback(() => {
+        if(isMobile) {
+            setHidden(!hidden)
+        }
+    }, [hidden, isMobile]);
+
+
+    const resetState = useCallback(() => {
+        setHidden(true)
+        if(window.innerWidth > mobileThreshold) {       
+            setIsMobile(false)
+        } else {
+            setIsMobile(true)
+        }   
+    }, []);
+
+    if(typeof window !== 'undefined') {
+        window.addEventListener('resize', resetState);
+    }
+
+
+    return (
+        <nav className={`${props.className} ${classes.wrapperx}`}>
+            <div tabIndex={0} role="button" className={classes.toggler} onKeyDown={toggleMenu} onClick={toggleMenu}><div>{hidden ? <p className={classes.burgerClosedIcon}>&#9776;</p> : <p className={classes.ani}>&#x2A2F;</p>}</div></div>  
+            <div className={classNames(classes.mobileContainer, { [classes.hiding]: hidden })}>
+                {React.cloneElement(props.children, { className: classes.mobileContent })}
+            </div>
+            <div className={classNames(classes.wideContainer, { [classes.hiding]: hidden })}>
+                {React.cloneElement(props.children, { className: props.className })}
+            </div>
+        </nav>
+    );
+}
+
+export default Burger; 
\ No newline at end of file
diff --git a/src/components/button.js b/src/components/button.js
new file mode 100644
index 0000000000000000000000000000000000000000..3482f01ab64b3f4a787a4bda7ac25f33a1b7a86c
--- /dev/null
+++ b/src/components/button.js
@@ -0,0 +1,41 @@
+import React, { useContext} from 'react'
+import classNames from 'classnames'
+
+import IconCheck from '../../static/icon_check.svg'
+import classes from '../styles/button.module.sass'
+import { TaskContext } from "../context/index";
+
+export const Button = ({ Component = 'button', children, onClick, variant, small, className }) => {
+    const taskContext = useContext(TaskContext);
+    
+    const buttonClassNames = classNames(classes.root, className, {
+        [classes.primary]: variant === 'primary',
+        [classes.secondary]: variant === 'secondary',
+        [classes.small]: !!small,
+    })
+    return (
+        <Component disabled={taskContext.taskCompleted ? 'disabled' : null}  className={buttonClassNames} onClick={onClick}>
+            {children}
+        </Component>
+    )
+}
+
+export const CompleteButton = ({ completed, toggleComplete, small = true }) => {
+    const buttonClassNames = classNames({
+        [classes.completeInactive]: !completed,
+        [classes.completeActive]: completed,
+    })
+    return (
+        <Button small={small} onClick={toggleComplete} className={buttonClassNames}>
+            {!completed ? (
+                'Mark as completed'
+            ) : (
+                <>
+                    <IconCheck width={14} height={14} className={classes.completeIcon} />{' '}
+                    <span className={classes.completeLabel}>Completed</span>{' '}
+                    <span className={classes.completeLabelHover}>Remove from completed</span>
+                </>
+            )}
+        </Button>
+    )
+}
diff --git a/src/components/chapter-item.js b/src/components/chapter-item.js
new file mode 100644
index 0000000000000000000000000000000000000000..e135dd8841f11b6bb750d1502153c042bb7c058a
--- /dev/null
+++ b/src/components/chapter-item.js
@@ -0,0 +1,25 @@
+import React, { useContext} from 'react'
+import classNames from 'classnames'
+
+import IconCheck from '../../static/icon_check.svg'
+import classes from '../styles/chapter-item.module.sass'
+import { TaskContext } from "../context/index";
+import { Link } from "gatsby"
+
+export const ChapterItem = ({children, type, keyValue, title, description, url}) => {
+
+    return (
+      <Link to={url}>
+        <div className={classes.item}>
+            <div className={classes.header}>
+              <div className={classes.leftheader}>
+                <h2 className={classes.title}>{title}</h2>
+              </div>
+            </div>
+            <div className={classes.textcontainer}>
+              <span className={classes.text}>{description}</span>
+            </div>
+        </div>
+      </Link>
+    )
+}
diff --git a/src/components/code.js b/src/components/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..66a907a2044fc930d415c148a7af0254c6d352ba
--- /dev/null
+++ b/src/components/code.js
@@ -0,0 +1,155 @@
+import React from 'react'
+import { StaticQuery, graphql } from 'gatsby'
+
+import { Hint } from './hint'
+import { Button } from './button'
+
+import classes from '../styles/code.module.sass'
+
+function getFiles({ allCode }) {
+    return Object.assign(
+        {},
+        ...allCode.edges.map(({ node }) => ({
+            [node.name]: node.code,
+        }))
+    )
+}
+
+function makeTest(template, testFile, solution) {
+    // Escape quotation marks in the solution code, for cases where we
+    // can only place the solution in regular quotes.
+    const solutionEscaped = solution.replace(/"/g, '\\"')
+    return template
+        .replace(/\${solutionEscaped}/g, solutionEscaped)
+        .replace(/\${solution}/g, solution)
+        .replace(/\${test}/g, testFile)
+}
+
+class CodeBlock extends React.Component {
+    state = { Juniper: null, showSolution: false, key: 0 }
+
+    handleShowSolution() {
+        this.setState({ showSolution: true })
+    }
+
+    handleReset() {
+        // Using the key as a hack to force component to rerender
+        this.setState({ showSolution: false, key: this.state.key + 1 })
+    }
+
+    updateJuniper() {
+        // This type of stuff only really works in class components. I'm not
+        // sure why, but I've tried with function components and hooks lots of
+        // times and couldn't get it to work. So class component it is.
+        if (!this.state.Juniper) {
+            // We need a dynamic import here for SSR. Juniper's dependencies
+            // include references to the global window object and I haven't
+            // managed to fix this using webpack yet. If we imported Juniper
+            // at the top level, Gatsby won't build.
+            import('./juniper').then(Juniper => {
+                this.setState({ Juniper: Juniper.default })
+            })
+        }
+    }
+
+    componentDidMount() {
+        this.updateJuniper()
+    }
+
+    componentDidUpdate() {
+        this.updateJuniper()
+    }
+
+    render() {
+        const { Juniper, showSolution } = this.state
+        const { id, source, solution, test, children } = this.props
+        const sourceId = source || `exc_${id}`
+        const solutionId = solution || `solution_${id}`
+        const testId = test || `test_${id}`
+        const juniperClassNames = {
+            cell: classes.cell,
+            input: classes.input,
+            button: classes.button,
+            output: classes.output,
+            codeBox: classes.codeBox,
+        }
+        const hintActions = [
+            { text: 'Show solution', onClick: () => this.handleShowSolution() },
+            { text: 'Reset', onClick: () => this.handleReset() },
+        ]
+
+        return (
+            <StaticQuery
+                query={graphql`
+                    {
+                        site {
+                            siteMetadata {
+                                testTemplate
+                                juniper {
+                                    repo
+                                    branch
+                                    kernelType
+                                    lang
+                                    debug
+                                }
+                            }
+                        }
+                        allCode {
+                            edges {
+                                node {
+                                    name
+                                    code
+                                }
+                            }
+                        }
+                    }
+                `}
+                render={data => {
+                    const { testTemplate } = data.site.siteMetadata
+                    const { repo, branch, kernelType, debug, lang } = data.site.siteMetadata.juniper
+                    const files = getFiles(data)
+                    const sourceFile = files[sourceId]
+                    const solutionFile = files[solutionId]
+                    const testFile = files[testId]
+                    return (
+                        <div className={classes.root} key={this.state.key}>
+                            {Juniper && (
+                                <Juniper
+                                    msgButton={null}
+                                    classNames={juniperClassNames}
+                                    repo={repo}
+                                    branch={branch}
+                                    lang={lang}
+                                    kernelType={kernelType}
+                                    debug={debug}
+                                    actions={({ runCode }) => (
+                                        <div className={classes.actionContainer}>
+                                            <Button onClick={() => runCode()}>Run Code</Button>
+                                            {testFile && (
+                                                <Button
+                                                    variant="primary"
+                                                    onClick={() =>
+                                                        runCode(value =>
+                                                            makeTest(testTemplate, testFile, value)
+                                                        )
+                                                    }
+                                                >
+                                                    Submit
+                                                </Button>
+                                            )}
+                                        </div>
+                                    )}
+                                >
+                                    {showSolution ? solutionFile : sourceFile}
+                                </Juniper>
+                            )}
+                            <Hint actions={hintActions}>{children}</Hint>
+                        </div>
+                    )
+                }}
+            />
+        )
+    }
+}
+
+export default CodeBlock
diff --git a/src/components/course-content-list.js b/src/components/course-content-list.js
new file mode 100644
index 0000000000000000000000000000000000000000..ef57e309cce6bc067d82f2a17c27df02e90cac48
--- /dev/null
+++ b/src/components/course-content-list.js
@@ -0,0 +1,64 @@
+import React from 'react'
+import { StaticQuery, graphql } from 'gatsby'
+
+import SEO from './seo'
+
+import '../styles/index.sass'
+import classes from '../styles/course-content-list.module.sass'
+
+const CourseContentList = ({ isHome, title, description, children }) => {
+    const query = graphql`{
+        site {
+            siteMetadata {
+                title
+                description
+                bio
+                showProfileImage
+                footerLinks {
+                    text
+                    url
+                }
+            }
+        }
+    }`;
+
+    return (
+        <StaticQuery
+            query={query}
+            render={data => {
+        //        const meta = data.site.siteMetadata
+                return (
+                    <>
+                        <SEO title={title} description={description} />
+
+                        <main className={classes.root}>
+                            {/* {!isHome && (
+                                <h1 className={classes.logo}>
+                                    <Link hidden to="/">
+                                        <Logo width={150} height={54} aria-label={meta.title} />
+                                    </Link>
+                                </h1>
+                            )} */}
+
+                            <div className={classes.markdownContentWrapper}>
+                                <div className={classes.content}> {/*markdown container*/}
+                                    {(title || description) && (
+                                        <header className={classes.header}>
+                                            {title && <h1 className={classes.title}>{title}</h1>}
+                                            {description && (
+                                                <p className={classes.description}>{description}</p>
+                                            )}
+                                        </header>
+                                    )}
+                                    {children}
+                                </div>
+                            </div>
+                        </main>
+                    </>
+                )
+            }}
+        />
+    )
+}
+
+export default CourseContentList
diff --git a/src/components/exercise.js b/src/components/exercise.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3d1cccfe17f8d80ccd15aeba8ff425ca311ba69
--- /dev/null
+++ b/src/components/exercise.js
@@ -0,0 +1,78 @@
+import React, { useRef, useCallback, useContext, useEffect } from 'react'
+import classNames from 'classnames'
+
+import { Button, CompleteButton } from './button'
+import { ChapterContext } from '../context'
+import IconSlides from '../../static/icon_slides.svg'
+import classes from '../styles/exercise.module.sass'
+
+const Exercise = ({ id, title, type, children }) => {
+    const excRef = useRef()
+    const excId = parseInt(id)
+    const { activeExc, setActiveExc, completed, setCompleted } = useContext(ChapterContext)
+    const isExpanded = activeExc === excId
+    const isCompleted = completed.includes(excId)
+    
+    useEffect(() => {
+        if (isExpanded && excRef.current) {
+            excRef.current.scrollIntoView()
+        }
+    }, [isExpanded])
+    
+    const handleExpand = useCallback(() => setActiveExc(isExpanded ? null : excId), [
+        isExpanded,
+        excId,
+    ])
+
+    const handleNext = useCallback(() => setActiveExc(excId + 1))
+    
+    const handleSetCompleted = useCallback(() => {
+        const newCompleted = isCompleted
+            ? completed.filter(v => v !== excId)
+            : [...completed, excId]
+        setCompleted(newCompleted)
+    }, [isCompleted, completed, excId])
+    
+    const rootClassNames = classNames(classes.root, {
+        [classes.expanded]: isExpanded,
+        [classes.wide]: isExpanded && type === 'slides',
+        [classes.completed]: !isExpanded && isCompleted,
+    })
+    
+    const titleClassNames = classNames(classes.title, {
+        [classes.titleExpanded]: isExpanded,
+    });
+
+    // Title kommer vara en title till en task som Γ€r en markdown fil
+    return (
+        <section ref={excRef} id={id} className={rootClassNames}>
+            <h2 className={titleClassNames} onClick={handleExpand}>
+                <span>
+                    <span
+                        className={classNames(classes.id, { [classes.idCompleted]: isCompleted })}
+                    >
+                        {excId}
+                    </span>
+                    {title}
+                </span>
+                {type === 'slides' && <IconSlides className={classes.icon} />}
+            </h2>
+            {isExpanded && (
+                <div>
+                    {children}
+                    <footer className={classes.footer}>
+                        <CompleteButton
+                            completed={isCompleted}
+                            toggleComplete={handleSetCompleted}
+                        />
+                        <Button onClick={handleNext} variant="secondary" small>
+                            Next
+                        </Button>
+                    </footer>
+                </div>
+            )}
+        </section>
+    )
+}
+
+export default Exercise
diff --git a/src/components/faq-component.js b/src/components/faq-component.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a959ff11797ef7591c57b3994854120cbf0620f
--- /dev/null
+++ b/src/components/faq-component.js
@@ -0,0 +1,28 @@
+import React from 'react'
+import Question from './question'
+
+//import classnames from 'classnames';
+import classes from '../styles/faq-component.module.sass'
+
+
+export const Faq = ({title, data}) => {
+    return (
+        <>
+        <div>
+            <div className={classes.container}>
+                <div className={classes.faqbox}>
+                    <h3 className={classes.title}>{title}</h3>
+                    {data.map((item, index) => (
+                        <div>
+                            <Question question={item.question} answer={item.answer}></Question>
+                        </div>
+                    ))}
+                </div>
+            </div>
+        </div>
+        </>
+    )
+}
+
+export default Faq
+
diff --git a/src/components/footer.js b/src/components/footer.js
new file mode 100644
index 0000000000000000000000000000000000000000..195f5949b3b2cc5fef79b571aeb0235894dbf29b
--- /dev/null
+++ b/src/components/footer.js
@@ -0,0 +1,33 @@
+
+import React from 'react'
+import classes from '../styles/footer.module.sass'
+
+
+const Footer = () => {
+    
+
+    return (
+        <div className={classes.footer}>
+            <div className={classes.content}>
+                <div>
+                    <p>Institutionen fΓΆr datavetenskap</p>            
+                    <p>Kontakt: Marco Kuhlmann</p>
+                    
+                </div>
+                <div> <p>Denna kurs handlar om ..</p></div>
+                <div>
+                    <strong>Bra lΓ€nkar</strong>
+                    <ul>
+                        <li>Hem</li>
+                        <li>Chapter</li>
+                        <li>FAQ</li>
+                        </ul> 
+                </div>
+            </div>
+           
+        </div>
+
+    )
+}
+
+export default Footer
\ No newline at end of file
diff --git a/src/components/header-burger.js b/src/components/header-burger.js
new file mode 100644
index 0000000000000000000000000000000000000000..90da3ffe75a971b37fdfc29617d5e7e486fcf796
--- /dev/null
+++ b/src/components/header-burger.js
@@ -0,0 +1,51 @@
+import React, {Component} from "react"
+import classes from '../styles/headerburger.module.sass'
+import Login from '../components/login'
+import { menuData } from '../data/MenuData'
+import { FaBars, FaTimes } from 'react-icons/fa'
+import {navigate} from 'gatsby'
+
+class HeaderBurger extends Component{
+
+    constructor(props) {
+        super(props);
+        this.state = {active: false};
+    }
+    handleClick = () => {
+        this.setState({ active: !this.state.active });
+    };
+
+
+
+    render () {
+        return (
+            <div>
+                <div className={classes.bars} onClick={this.handleClick}>
+                    { !this.state.active && <FaBars/>}
+                </div>
+                { this.state.active && <div className={classes.bars} onClick={this.handleClick}>
+                            <FaTimes/>
+                        </div>
+                }
+                { this.state.active &&
+                    <div className={classes.burgermenu} onClick={this.handleClick}>
+                        
+                        <div className={classes.menucontent}>
+                            {menuData.map((item, index) => (
+                                <h1 className={classes.navlink} onClick={() => navigate(item.link)} key={index}>
+                                    {item.title}
+                                </h1>
+                            ))}
+                            <div className={classes.loginbutton}>
+                                <Login></Login>
+                            </div>
+                        </div>
+                    </div>
+                }
+            </div>
+        )
+    }
+
+}
+
+export default HeaderBurger
\ No newline at end of file
diff --git a/src/components/header.js b/src/components/header.js
new file mode 100644
index 0000000000000000000000000000000000000000..818b6973d2b3a0b548d45eaa7491f0e48beaaf48
--- /dev/null
+++ b/src/components/header.js
@@ -0,0 +1,66 @@
+import React from "react"
+import Login from '../components/login'
+import HeaderBurger from '../components/header-burger'
+import {navigate} from 'gatsby'
+import classes from '../styles/header.module.sass'
+import { menuData } from '../data/MenuData'
+import { FaBars } from 'react-icons/fa'
+import { Link } from "gatsby"
+
+
+const Header = () => {
+
+    const openInNewTab = (url) => {
+        const newWindow = window.open(url, '_blank', 'noopener,noreferrer')
+        if (newWindow) newWindow.opener = null
+    }
+
+    return (
+        <div className={classes.nav}>
+            
+
+            <div>
+                <h1 className={classes.logo} onClick={() => navigate('/')}>
+                    AI FΓ–R<br/>NATURLIGT SPRΓ…K
+                </h1>
+            </div>
+
+            <div className={classes.burger}>
+                <HeaderBurger props={classes.nav}></HeaderBurger>
+            </div>
+
+            <div className={classes.navmenu}>
+                {menuData.map((item, index) => (
+                    <div>
+                        {!item.newTab && 
+                            <div>
+                                <h1 className={classes.navlink} onClick={() => navigate(item.link)} key={index}>
+                                    {item.title}
+                                </h1>
+                            </div>
+                        }
+                        {item.newTab && 
+                            <div>
+                                <h1 className={classes.navlink} onClick={() => openInNewTab(item.link)} key={index}>
+                                    {item.title}
+                                </h1>
+                            </div>
+                        }
+
+                    </div>
+
+                ))}
+            </div>
+
+           <div className={classes.login}>
+                <Login></Login>
+            </div>
+
+            
+            
+        </div>
+    
+    )
+}
+
+export default Header
\ No newline at end of file
diff --git a/src/components/hero.js b/src/components/hero.js
new file mode 100644
index 0000000000000000000000000000000000000000..32c6e1f68f69aa6cae385597cbdb92b67a4439ba
--- /dev/null
+++ b/src/components/hero.js
@@ -0,0 +1,38 @@
+import React from 'react'
+
+//import classnames from 'classnames';
+import classes from '../styles/hero.module.sass'
+
+
+const Hero = () => {
+    
+    return (
+        <>
+    
+        <div className={classes.container}>
+            <div className={classes.background}>
+            </div>
+            <div className={classes.content}>
+                <div className={classes.items}>
+                    <h1 className={classes.title}>
+                        AI fΓΆr naturligt sprΓ₯k
+                    </h1>
+                    <p className={classes.infotext}>
+                        Du kommer att lΓ€ra dig om nΓ₯gra aktuella metoder inom naturligt sprΓ₯k-behandling, om vilka resurser som krΓ€vs fΓΆr att bygga sprΓ₯kteknologiska system samt om hur du kan bedΓΆma kvalitΓ©n hos dessa metoder och system.
+                    </p>
+                    <a href="https://www.antagning.se/se/search?period=10&freeText=AI+f%C3%B6r+naturligt+spr%C3%A5k&sortBy=relevance">
+                        <button className={classes.button}>
+                            Registrera dig hΓ€r!
+                        </button>
+                    </a>
+                </div>
+            </div>
+        </div>
+      
+       
+        </>
+    )
+}
+
+export default Hero
+
diff --git a/src/components/hint.js b/src/components/hint.js
new file mode 100644
index 0000000000000000000000000000000000000000..0319b9b19a6196e2949c8ca233f154607bbb6bba
--- /dev/null
+++ b/src/components/hint.js
@@ -0,0 +1,25 @@
+import React, { useState, useCallback } from 'react'
+
+import classes from '../styles/hint.module.sass'
+
+export const Hint = ({ expanded = false, actions = [], children }) => {
+    const [isExpanded, setIsExpanded] = useState(expanded)
+    const handleExpand = useCallback(() => setIsExpanded(!isExpanded), [isExpanded])
+    return (
+        <aside className={classes.root}>
+            {isExpanded && children && <div className={classes.content}>{children}</div>}
+            <menu className={classes.actions}>
+                {children && (
+                    <button className={classes.label} onClick={handleExpand}>
+                        {isExpanded ? 'Hide hints' : 'Show hints'}
+                    </button>
+                )}
+                {actions.map(({ text, onClick }, i) => (
+                    <button className={classes.label} key={i} onClick={onClick}>
+                        {text}
+                    </button>
+                ))}
+            </menu>
+        </aside>
+    )
+}
diff --git a/src/components/input.js b/src/components/input.js
new file mode 100644
index 0000000000000000000000000000000000000000..3eed29d91d0091704e027558179dec6eb3a4bb34
--- /dev/null
+++ b/src/components/input.js
@@ -0,0 +1,17 @@
+import React, { useContext } from 'react'
+import { TaskContext } from "../context/index";
+import classes from '../styles/input.module.sass'
+
+
+export const Input = (props) => {
+    const taskContext = useContext(TaskContext);
+
+    return (
+        <>
+        <input className={classes} disabled={taskContext.taskCompleted ? 'disabled' : null} {...props} > 
+            {props.children}
+        </input>
+
+        </>
+    )
+}
diff --git a/src/components/juniper.js b/src/components/juniper.js
new file mode 100644
index 0000000000000000000000000000000000000000..09d4c04db464a12d5af6ce6eeb0bb91a21a456b1
--- /dev/null
+++ b/src/components/juniper.js
@@ -0,0 +1,297 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+import CodeMirror from 'codemirror'
+import 'codemirror/theme/monokai.css';
+import { Widget } from '@phosphor/widgets'
+import { Kernel, ServerConnection } from '@jupyterlab/services'
+import { OutputArea, OutputAreaModel } from '@jupyterlab/outputarea'
+import { RenderMimeRegistry, standardRendererFactories } from '@jupyterlab/rendermime'
+import { window } from 'browser-monads'
+
+class Juniper extends React.Component {
+    outputRef = null
+    inputRef = null
+    state = { content: null, cm: null, kernel: null, renderers: null, fromStorage: null }
+
+    static defaultProps = {
+        children: '',
+        branch: 'master',
+        url: 'https://mybinder.org',
+        serverSettings: {},
+        kernelType: 'python3',
+        lang: 'python',
+        theme: 'default',
+        isolateCells: true,
+        useBinder: true,
+        storageKey: 'juniper',
+        useStorage: true,
+        storageExpire: 60,
+        debug: true,
+        msgButton: 'run',
+        msgLoading: 'Loading...',
+        msgError: 'Connecting failed. Please reload and try again.',
+        classNames: {
+            cell: 'juniper-cell',
+            input: 'juniper-input',
+            button: 'juniper-button',
+            output: 'juniper-output',
+        },
+    }
+
+    static propTypes = {
+        children: PropTypes.string,
+        repo: PropTypes.string.isRequired,
+        branch: PropTypes.string,
+        url: PropTypes.string,
+        serverSettings: PropTypes.object,
+        kernelType: PropTypes.string,
+        lang: PropTypes.string,
+        theme: PropTypes.string,
+        isolateCells: PropTypes.bool,
+        useBinder: PropTypes.bool,
+        useStorage: PropTypes.bool,
+        storageExpire: PropTypes.number,
+        msgButton: PropTypes.string,
+        msgLoading: PropTypes.string,
+        msgError: PropTypes.string,
+        classNames: PropTypes.shape({
+            cell: PropTypes.string,
+            input: PropTypes.string,
+            button: PropTypes.string,
+            output: PropTypes.string,
+        }),
+        actions: PropTypes.func,
+    }
+
+    componentDidMount() {
+        this.setState({ content: this.props.children })
+        const renderers = standardRendererFactories.filter(factory =>
+            factory.mimeTypes.includes('text/latex') ? window.MathJax : true
+        )
+
+        const outputArea = new OutputArea({
+            model: new OutputAreaModel({ trusted: true }),
+            rendermime: new RenderMimeRegistry({ initialFactories: renderers }),
+        })
+
+
+        const cm = new CodeMirror(this.inputRef, {
+            value: this.props.children.trim(),
+            mode: this.props.lang,
+            theme: this.props.theme,
+            scrollbarStyle: "null",
+            className: this.props.classNames.codeBox
+        })
+        this.setState({ cm })
+
+        const runCode = wrapper => {
+            const value = cm.getValue()
+            this.execute(outputArea, wrapper ? wrapper(value) : value)
+        }
+        const setValue = value => cm.setValue(value)
+        cm.setOption('extraKeys', { 'Shift-Enter': runCode })
+        Widget.attach(outputArea, this.outputRef)
+        this.setState({ runCode, setValue })
+    }
+
+    log(logFunction) {
+        if (this.props.debug) {
+            logFunction()
+        }
+    }
+
+    componentWillReceiveProps({ children }) {
+        if (children !== this.state.content && this.state.cm) {
+            this.state.cm.setValue(children.trim())
+        }
+    }
+
+    /**
+     * Request a binder, e.g. from mybinder.org
+     * @param {string} repo - Repository name in the format 'user/repo'.
+     * @param {string} branch - The repository branch, e.g. 'master'.
+     * @param {string} url - The binder reployment URL, including 'http(s)'.
+     * @returns {Promise} - Resolved with Binder settings, rejected with Error.
+     */
+    requestBinder(repo, branch, url) {
+        const binderUrl = `${url}/build/gh/${repo}/${branch}`
+        this.log(() => console.info('building', { binderUrl }))
+        return new Promise((resolve, reject) => {
+            const es = new EventSource(binderUrl)
+            es.onerror = err => {
+                es.close()
+                this.log(() => console.error('failed'))
+                reject(new Error(err))
+            }
+            let phase = null
+            es.onmessage = ({ data }) => {
+                const msg = JSON.parse(data)
+                if (msg.phase && msg.phase !== phase) {
+                    phase = msg.phase.toLowerCase()
+                    this.log(() => console.info(phase === 'ready' ? 'server-ready' : phase))
+                }
+                if (msg.phase === 'failed') {
+                    es.close()
+                    reject(new Error(msg))
+                } else if (msg.phase === 'ready') {
+                    es.close()
+                    const settings = {
+                        baseUrl: msg.url,
+                        wsUrl: `ws${msg.url.slice(4)}`,
+                        token: msg.token,
+                    }
+                    resolve(settings)
+                }
+            }
+        })
+    }
+
+    /**
+     * Request kernel and estabish a server connection via the JupyerLab service
+     * @param {object} settings - The server settings.
+     * @returns {Promise} - A promise that's resolved with the kernel.
+     */
+    requestKernel(settings) {
+        if (this.props.useStorage) {
+            const timestamp = new Date().getTime() + this.props.storageExpire * 60 * 1000
+            const json = JSON.stringify({ settings, timestamp })
+            window.localStorage.setItem(this.props.storageKey, json)
+        }
+        const serverSettings = ServerConnection.makeSettings(settings)
+        return Kernel.startNew({
+            type: this.props.kernelType,
+            name: this.props.kernelType,
+            serverSettings,
+        }).then(kernel => {
+            this.log(() => console.info('ready'))
+            return kernel
+        })
+    }
+
+    /**
+     * Get a kernel by requesting a binder or from localStorage / user settings
+     * @returns {Promise}
+     */
+    getKernel() {
+        if (this.props.useStorage) {
+            const stored = window.localStorage.getItem(this.props.storageKey)
+            if (stored) {
+                this.setState({ fromStorage: true })
+                const { settings, timestamp } = JSON.parse(stored)
+                if (timestamp && new Date().getTime() < timestamp) {
+                    return this.requestKernel(settings)
+                }
+                window.localStorage.removeItem(this.props.storageKey)
+            }
+        }
+        if (this.props.useBinder) {
+            return this.requestBinder(this.props.repo, this.props.branch, this.props.url).then(
+                settings => this.requestKernel(settings)
+            )
+        }
+        return this.requestKernel(this.props.serverSettings)
+    }
+
+    /**
+     * Render the kernel response in a JupyterLab output area
+     * @param {OutputArea} outputArea - The cell's output area.
+     * @param {string} code - The code to execute.
+     */
+    renderResponse(outputArea, code) {
+        outputArea.future = this.state.kernel.requestExecute({ code })
+        outputArea.model.add({
+            output_type: 'stream',
+            name: 'loading',
+            text: this.props.msgLoading,
+        })
+        outputArea.model.clear(true)
+    }
+
+    /**
+     * Process request to execute the code
+     * @param {OutputArea} - outputArea - The cell's output area.
+     * @param {string} code - The code to execute.
+     */
+    execute(outputArea, code) {
+        this.log(() => console.info('executing'))
+        if (this.state.kernel) {
+            if (this.props.isolateCells) {
+                this.state.kernel
+                    .restart()
+                    .then(() => this.renderResponse(outputArea, code))
+                    .catch(() => {
+                        this.log(() => console.error('failed'))
+                        this.setState({ kernel: null })
+                        outputArea.model.clear()
+                        outputArea.model.add({
+                            output_type: 'stream',
+                            name: 'failure',
+                            text: this.props.msgError,
+                        })
+                    })
+                return
+            }
+            this.renderResponse(outputArea, code)
+            return
+        }
+        this.log(() => console.info('requesting kernel'))
+        const url = this.props.url.split('//')[1]
+        const action = !this.state.fromStorage ? 'Launching' : 'Reconnecting to'
+        outputArea.model.clear()
+        outputArea.model.add({
+            output_type: 'stream',
+            name: 'stdout',
+            text: `${action} Docker container on ${url}...`,
+        })
+        new Promise((resolve, reject) =>
+            this.getKernel()
+                .then(resolve)
+                .catch(reject)
+        )
+            .then(kernel => {
+                this.setState({ kernel })
+                this.renderResponse(outputArea, code)
+            })
+            .catch(() => {
+                this.log(() => console.error('failed'))
+                this.setState({ kernel: null })
+                if (this.props.useStorage) {
+                    this.setState({ fromStorage: false })
+                    window.localStorage.removeItem(this.props.storageKey)
+                }
+                outputArea.model.clear()
+                outputArea.model.add({
+                    output_type: 'stream',
+                    name: 'failure',
+                    text: this.props.msgError,
+                })
+            })
+    }
+
+    render() {
+        return (
+            <div className={this.props.classNames.cell}>
+                <div
+                    className={this.props.classNames.input}
+                    ref={x => {
+                        this.inputRef = x
+                    }}
+                />
+                {this.props.msgButton && (
+                    <button className={this.props.classNames.button} onClick={this.state.runCode}>
+                        {this.props.msgButton}
+                    </button>
+                )}
+                {this.props.actions && this.props.actions(this.state)}
+                <div
+                    ref={x => {
+                        this.outputRef = x
+                    }}
+                    className={this.props.classNames.output}
+                />
+            </div>
+        )
+    }
+}
+
+export default Juniper
diff --git a/src/components/link.js b/src/components/link.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee392efd8263fdbbae355186bdebbd2bbde04bf7
--- /dev/null
+++ b/src/components/link.js
@@ -0,0 +1,52 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+import { Link as GatsbyLink } from 'gatsby'
+import classNames from 'classnames'
+
+import classes from '../styles/link.module.sass'
+
+export const Link = ({ children, to, href, onClick, variant, hidden, className, ...other }) => {
+    const dest = to || href
+
+    const external = /(http(s?)):\/\//gi.test(dest)
+    const linkClassNames = classNames(classes.root, className, {
+        [classes.hidden]: hidden,
+        [classes.secondary]: variant === 'secondary',
+    })
+
+    if (!external) {
+        if ((dest && /^#/.test(dest)) || onClick) {
+            return (
+                <a href={dest} onClick={onClick} className={linkClassNames}>
+                    {children}
+                </a>
+            )
+        }
+        return (
+            <GatsbyLink to={dest} className={linkClassNames} {...other}>
+                {children}
+            </GatsbyLink>
+        )
+    }
+    return (
+        <a
+            href={dest}
+            className={linkClassNames}
+            target="_blank"
+            rel="noopener nofollow noreferrer"
+            {...other}
+        >
+            {children}
+        </a>
+    )
+}
+
+Link.propTypes = {
+    children: PropTypes.node.isRequired,
+    to: PropTypes.string,
+    href: PropTypes.string,
+    onClick: PropTypes.func,
+    variant: PropTypes.oneOf(['secondary', null]),
+    hidden: PropTypes.bool,
+    className: PropTypes.string,
+}
diff --git a/src/components/login.js b/src/components/login.js
new file mode 100644
index 0000000000000000000000000000000000000000..c37dfdc99d38908bd34e6efe0ec535f835e5ae30
--- /dev/null
+++ b/src/components/login.js
@@ -0,0 +1,67 @@
+import React, {useEffect} from "react";
+import { Button } from './button';
+import { useMsal } from '../utility/auth/msalContext';
+import { loginRequest } from "./../utility/auth/msalConfig";
+import classes from '../styles/login.module.sass'
+
+function Login() {
+  const { loading, isAuthenticated, login, logout, user, profile, progress, getUserProfileFromGraph, getUserProgressFromApi, saveCompletedExerciseToApI, removeCompletedExerciseFromApi, getUserLastCompletedFromApi } = useMsal();
+
+  if (loading){
+    return <div>Loading ...</div>
+  }
+
+  const completeExercise1 = async() => {    
+    var testObject = { selectedOptions: ['a', 'b'] }
+    await saveCompletedExerciseToApI("testchapter", "testsection", "exercise1", testObject);    
+  }
+
+  const completeExercise2 = async() => {    
+    var testObject = { selectedOptions: ['a', 'b', 'c'] }
+    await saveCompletedExerciseToApI("testchapter", "testsection", "exercise2", testObject);    
+  }
+
+  const removeCompletedExercise1 = async() => {    
+    await removeCompletedExerciseFromApi("testchapter", "testsection", "exercise1");    
+  }
+
+  const removeCompletedExercise2 = async() => {    
+    await removeCompletedExerciseFromApi("testchapter", "testsection", "exercise2");    
+  }
+
+  const getLastCompleted = async() => {
+    const result = await getUserLastCompletedFromApi();
+    if (result.exerciseData){
+      var exerciseData = JSON.parse(result.exerciseData);
+      console.log("last completed exercise contains data:", exerciseData);
+    }
+    alert(JSON.stringify(result));
+  }
+
+  return (
+    <div>
+      {!isAuthenticated && (
+        <button className={classes.button} small color="primary" onClick={() => login(loginRequest, "loginRedirect")}>Logga in</button>
+      )}
+      {isAuthenticated && (
+        <button className={classes.button} small color="primary" onClick={() => logout()}>Logga ut</button>
+      )}
+          {/*<div>Welcome {user.name} {progress ? JSON.stringify(progress) : ""}</div>*/}
+          
+          {/*<button className={classes.button} small color="primary" onClick={() => getUserProfileFromGraph()}>Get profile</button>
+          {<button className={classes.button} small color="primary" onClick={() => completeExercise1()}>Complete1</button>}
+          {<button className={classes.button} small color="primary" onClick={() => removeCompletedExercise1()}>Uncomplete1</button>}
+          <button className={classes.button} small color="primary" onClick={() => completeExercise2()}>Complete2</button>
+          <button className={classes.button} small color="primary" onClick={() => removeCompletedExercise2()}>Uncomplete2</button>
+      <button className={classes.button} small color="primary" onClick={() => getLastCompleted()}>Get last completed</button>*/}
+          {/*profile && (
+            <div>              
+              <pre>{JSON.stringify(profile)}</pre>
+            </div>
+          )*/}
+      
+    </div>
+  );
+}
+
+export default Login;
\ No newline at end of file
diff --git a/src/components/math.js b/src/components/math.js
new file mode 100644
index 0000000000000000000000000000000000000000..049d56a7de4154753774479d53b6a887e65538dc
--- /dev/null
+++ b/src/components/math.js
@@ -0,0 +1,17 @@
+import MathJax from 'react-mathjax2'
+import React from 'react'
+
+
+const Math = (props) => { 
+    return ( 
+        <MathJax.Context input='tex'>
+        <div style={ {"paddingBottom": "1rem"}}>
+            <MathJax.Node inline>{ props.children }</MathJax.Node>
+        </div>
+        </MathJax.Context>
+    );
+};
+
+
+
+export default Math 
\ No newline at end of file
diff --git a/src/components/multi-answer.js b/src/components/multi-answer.js
new file mode 100644
index 0000000000000000000000000000000000000000..f704c0bbe48e69cd1befb67cb9d4c5cdce6edd37
--- /dev/null
+++ b/src/components/multi-answer.js
@@ -0,0 +1,43 @@
+import React, { useState } from 'react'
+import { Button } from './button'
+import { MultianswerContext } from "../context/index";
+
+
+/*
+    A component that handles multiple answer, 
+    aggregate them into one context(MultianswerContext) and makes the 
+    submission controllable for all fields
+
+*/
+const MultiAnswer = ({children}) => {
+    const [answer, setAnswer]       = useState({})
+    const [validate, setValidate]   = useState(false);
+
+    const updateAnswer = (id, inputText, isCorrect) => {
+        let _answer = {...answer};
+        _answer[id] = isCorrect // inputText
+        setAnswer(_answer);
+        setValidate(false);
+    }
+
+    const handleAnswer = () => {
+        setValidate(true);
+        console.log("User answers: ", answer)
+    }
+
+    return (
+        <>   
+            <MultianswerContext.Provider value={{validate, updateAnswer}}>       
+                {children}     
+
+            </MultianswerContext.Provider>
+
+            <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+        </>
+    )
+}
+
+
+export default MultiAnswer
diff --git a/src/components/navigation.js b/src/components/navigation.js
new file mode 100644
index 0000000000000000000000000000000000000000..ba3357f80fc89e3a44f21ff0b0074fc35a428794
--- /dev/null
+++ b/src/components/navigation.js
@@ -0,0 +1,55 @@
+import React from 'react'
+import { StaticQuery, graphql } from 'gatsby'
+
+import { Link } from './link'
+import classes from '../styles/navigation.module.sass'
+
+ 
+const Navigation = (props) => {
+
+
+    const query = graphql`{
+        allMarkdownRemark(
+            sort: { fields: [frontmatter___title], order: ASC }
+            filter: { frontmatter: { type: { eq: "task" } } }
+        ) {
+            edges {
+                node {
+                    fields {
+                        slug
+                        fullPath
+                    }
+                    frontmatter {
+                        title
+                        description
+                        location
+                        type
+                    }
+                }
+            }
+        }
+    }`;
+    // classes.nav
+    return (
+        <StaticQuery
+            query={query}
+            render={data => {
+                const elements = data.allMarkdownRemark.edges.map(({ node }, index) => 
+                    <Link key={index} to={node.fields.fullPath}>
+                        {node.frontmatter.title}
+                        <br></br>
+                    </Link>
+                );
+
+                return (
+                    <div className={`${props.className} ${classes.nav}`}> 
+                        {elements}
+                    </div>
+                )
+             }}>        
+        </StaticQuery>
+    );
+}
+
+
+export default Navigation 
\ No newline at end of file
diff --git a/src/components/question.js b/src/components/question.js
new file mode 100644
index 0000000000000000000000000000000000000000..07d93b0c3f912bff57c0796013aaa56f3565f016
--- /dev/null
+++ b/src/components/question.js
@@ -0,0 +1,40 @@
+import React, {Component} from "react";
+import classes from '../styles/question.module.sass'
+import { FaChevronDown, FaChevronUp } from 'react-icons/fa'
+
+
+class Question extends Component {
+
+    constructor(props) {
+        super(props);
+        this.state = {toggled: false};
+    }
+
+    handleClick = () => {
+        this.setState({ toggled: !this.state.toggled });
+    };
+
+    render () {
+        return (
+            <div className={classes.container}>
+                <div className={classes.question} onClick={this.handleClick}>
+                    <h3 className={classes.questiontitle}>{this.props.question}</h3>
+                    { this.state.toggled &&
+                        <div className={classes.toggleicon}><FaChevronUp/></div>
+                    }
+                    { !this.state.toggled &&
+                        <div className={classes.toggleicon}><FaChevronDown/></div>
+                    }
+                </div>
+
+                { this.state.toggled &&
+                    <div>
+                        <p className={classes.answer}>{this.props.answer}</p>
+                    </div>
+                }
+            </div>
+        );
+    }
+}
+
+export default Question;
\ No newline at end of file
diff --git a/src/components/seo.js b/src/components/seo.js
new file mode 100644
index 0000000000000000000000000000000000000000..74aade517c53314268c70cd0fd2f24bd1af9bbf3
--- /dev/null
+++ b/src/components/seo.js
@@ -0,0 +1,103 @@
+import React from 'react'
+import Helmet from 'react-helmet'
+import { StaticQuery, graphql } from 'gatsby'
+
+const SEO = ({ title, description }) => (
+    <StaticQuery
+        query={query}
+        render={data => {
+            const lang = 'en'
+            const siteMetadata = data.site.siteMetadata
+            const pageTitle = title
+                ? `${title} Β· ${siteMetadata.title}`
+                : `${siteMetadata.title} Β· ${siteMetadata.slogan}`
+            const pageDesc = description || siteMetadata.description
+            const image = `${siteMetadata.siteUrl}/social.jpg`
+            const meta = [
+                {
+                    name: 'description',
+                    content: pageDesc,
+                },
+                {
+                    property: 'og:title',
+                    content: pageTitle,
+                },
+                {
+                    property: 'og:description',
+                    content: pageDesc,
+                },
+                {
+                    property: 'og:type',
+                    content: `website`,
+                },
+                {
+                    property: 'og:site_name',
+                    content: siteMetadata.title,
+                },
+                {
+                    property: 'og:image',
+                    content: image,
+                },
+                {
+                    name: 'twitter:card',
+                    content: 'summary_large_image',
+                },
+                {
+                    name: 'twitter:image',
+                    content: image,
+                },
+                {
+                    name: 'twitter:creator',
+                    content: `@${siteMetadata.twitter}`,
+                },
+                {
+                    name: 'twitter:site',
+                    content: `@${siteMetadata.twitter}`,
+                },
+                {
+                    name: 'twitter:title',
+                    content: pageTitle,
+                },
+                {
+                    name: 'twitter:description',
+                    content: pageDesc,
+                },
+            ]
+            //async
+            return (
+                <Helmet defer={false} htmlAttributes={{ lang }} title={pageTitle} meta={meta}>
+                    <script
+                        type="text/javascript"
+                        src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
+                        
+                    />
+                    {siteMetadata.fonts && (
+                        <link
+                            href={`https://fonts.googleapis.com/css?family=${siteMetadata.fonts}`}
+                            rel="stylesheet"
+                        />
+                        
+                    )}
+
+                </Helmet>
+            )
+        }}
+    />
+)
+
+export default SEO
+
+const query = graphql`
+    query DefaultSEOQuery {
+        site {
+            siteMetadata {
+                title
+                description
+                slogan
+                siteUrl
+                twitter
+                fonts
+            }
+        }
+    }
+`
diff --git a/src/components/slides.js b/src/components/slides.js
new file mode 100644
index 0000000000000000000000000000000000000000..5615384025b7619c638f2f40d52432b940bb06ab
--- /dev/null
+++ b/src/components/slides.js
@@ -0,0 +1,102 @@
+import React from 'react'
+import { StaticQuery, graphql } from 'gatsby'
+import Marked from 'reveal.js/plugin/markdown/marked.js'
+import classNames from 'classnames'
+
+import '../styles/reveal.css'
+import classes from '../styles/slides.module.sass'
+
+function getFiles({ allMarkdownRemark }) {
+    return Object.assign(
+        {},
+        ...allMarkdownRemark.edges.map(({ node }) => ({
+            [node.fields.slug.replace('/', '')]: node.rawMarkdownBody,
+        }))
+    )
+}
+
+function getSlideContent(data, source) {
+    const files = getFiles(data)
+    const file = files[source] || ''
+    return file.split('\n---\n').map(f => f.trim())
+}
+
+class Slides extends React.Component {
+    componentDidMount() {
+        import('reveal.js').then(({ default: Reveal }) => {
+            window.Reveal = Reveal
+            window.marked = Marked
+            import('reveal.js/plugin/markdown/markdown.js').then(({ RevealMarkdown }) => {
+                RevealMarkdown.init()
+                Reveal.initialize({
+                    center: false,
+                    progress: false,
+                    showNotes: true,
+                    controls: true,
+                    width: '100%',
+                    height: 600,
+                    minScale: 0.75,
+                    maxScale: 1,
+                })
+            })
+        })
+    }
+
+    componentWillUnmount() {
+        // Work around default reveal.js behaviour that doesn't allow
+        // re-initialization and clashes with React
+        delete window.Reveal
+        delete window.marked
+        delete require.cache[require.resolve('reveal.js')]
+        delete require.cache[require.resolve('reveal.js/plugin/markdown/markdown.js')]
+    }
+
+    render() {
+        const { source } = this.props
+        const revealClassNames = classNames('reveal', 'show-notes', classes.reveal)
+        const slideClassNames = classNames('slides', classes.slides)
+
+        return (
+            <div className={classes.root}>
+                <div className={revealClassNames}>
+                    <StaticQuery
+                        query={graphql`
+                            {
+                                allMarkdownRemark(
+                                    filter: { frontmatter: { type: { eq: "slides" } } }
+                                ) {
+                                    edges {
+                                        node {
+                                            rawMarkdownBody
+                                            fields {
+                                                slug
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        `}
+                        render={data => {
+                            const content = getSlideContent(data, source)
+                            return (
+                                <div className={slideClassNames}>
+                                    {content.map((markdown, i) => (
+                                        <section
+                                            key={i}
+                                            data-markdown=""
+                                            data-separator-notes="^Notes:"
+                                        >
+                                            <textarea data-template defaultValue={markdown} />
+                                        </section>
+                                    ))}
+                                </div>
+                            )
+                        }}
+                    />
+                </div>
+            </div>
+        )
+    }
+}
+
+export default Slides
diff --git a/src/components/submitter.js b/src/components/submitter.js
new file mode 100644
index 0000000000000000000000000000000000000000..68e9f81de781ed61088d17223a725334fef362a7
--- /dev/null
+++ b/src/components/submitter.js
@@ -0,0 +1,27 @@
+
+
+import React, { useState, useContext, useCallback, useEffect} from 'react'
+import { Button } from './button'
+import {TaskContext} from '../context/index.js'
+
+const Submitter = () => {
+
+    const taskContext = useContext(TaskContext);
+    const handleAnswer = () => {
+        console.log("SUBMIT");
+    }
+
+    return (
+        <>
+           <Button variant="primary" onClick={handleAnswer}>
+                Submit
+            </Button>
+        </>
+    )
+
+}
+
+export default Submitter;
+
+
+
diff --git a/src/components/task-exercise.js b/src/components/task-exercise.js
new file mode 100644
index 0000000000000000000000000000000000000000..5665758944c3ec4afaf144b64ce7e4666e889131
--- /dev/null
+++ b/src/components/task-exercise.js
@@ -0,0 +1,123 @@
+import React, { useRef, useCallback, useContext, useState } from 'react'
+import classNames from 'classnames'
+
+import { CompleteButton } from './button'
+import { ChapterContext } from '../context'
+import IconSlides from '../../static/icon_slides.svg'
+import classes from '../styles/exercise.module.sass'
+import { useMsal } from '../utility/auth/msalContext';
+import { TaskContext as ExerciseContext } from "../context/index"; 
+import { useEffect } from 'react'
+
+const TaskExercise = ({ id, title, chapterData, type, children }) => {
+    const excRef = useRef()
+    const excId = id
+    const [completed, setCompleted] = useState(false)
+
+    const { loading, isAuthenticated, login, logout, user, profile, progress, getUserProfileFromGraph,getUserProgressFromApi,  saveCompletedExerciseToApI, removeCompletedExerciseFromApi, getUserLastCompletedFromApi } = useMsal();
+
+    const chapter_id = chapterData.chapter_id
+    const taskId = chapterData.id
+
+    const toggleComp = async() => {    
+
+        if(!completed) {
+            await saveCompletedExerciseToApI(chapter_id, taskId, id, []);    
+        } else {
+            await removeCompletedExerciseFromApi(chapter_id, taskId, id, []);   
+        }
+
+        setCompleted(!completed)
+      }
+
+
+      useEffect(() => {
+            if(!progress) {
+                console.log("Failed to retrieve progress")
+                return
+            }
+            
+            const chapterFound = progress.chapters.find(element => {console.log(element.moduleId); return element.moduleId === chapter_id;})
+            if (chapterFound) {
+               
+                const taskFound = chapterFound.sections.find(element => element.sectionId == taskId)
+                if (taskFound) { 
+                    const exerciseFound = taskFound.exercises.find(element => element.exerciseId == id)
+                    if (exerciseFound){
+                        setCompleted(true)
+                    }
+                    else {
+                        setCompleted(false)
+                    }
+                }
+            } 
+
+      }, [progress]);
+     
+
+
+    const isCompleted = completed//completed.includes(excId)
+     /*
+    const handleSetCompleted = useCallback(() => {
+       const newCompleted = isCompleted
+            ? completed.filter(v => v !== excId)
+            : [...completed, excId]
+
+        console.log(newCompleted )
+        setTaskCompleted(newCompleted.includes(excId))
+        setCompleted(newCompleted)
+        completeExercise1()
+
+    }, [isCompleted, completed, excId, setCompleted]) */
+    
+    const rootClassNames = classNames(classes.root, {
+        [classes.expanded]: true,
+        [classes.completed]: completed,
+    })
+    
+    const titleClassNames = classNames(classes.title, {
+        [classes.titleExpanded]: true,
+    });
+
+    const [taskCompleted, setTaskCompleted]   = useState(isCompleted);
+    
+    
+    return (
+    
+        <section ref={excRef} id={id} className={rootClassNames}>
+            {/*<div>Welcome {"a"} {progress ? JSON.stringify(progress) : ""}</div>*/}
+            <h2 className={titleClassNames}>
+                <span>
+                    <span
+                        className={classNames(classes.id, { [classes.idCompleted]: completed })}
+                    >
+                        {excId}
+                    </span>
+                    {title}
+                </span>
+                {type === 'slides' && <IconSlides className={classes.icon} />}
+            </h2>
+   
+            <div>
+
+            <ExerciseContext.Provider value={{taskCompleted}}>       
+                {children}     
+
+            </ExerciseContext.Provider>
+
+                <footer className={classes.footer}>
+                    {isAuthenticated && <CompleteButton
+                        completed={completed}
+                        toggleComplete={toggleComp}
+                    />
+                }
+                    {/* <Button onClick={handleNext} variant="secondary" small>
+                        Next
+                    </Button> */}
+                </footer>
+            </div>
+        </section>
+    )
+}
+
+export default TaskExercise
diff --git a/src/components/task-item.js b/src/components/task-item.js
new file mode 100644
index 0000000000000000000000000000000000000000..79cce9226baa886be4264406135eb54e187c3d4b
--- /dev/null
+++ b/src/components/task-item.js
@@ -0,0 +1,29 @@
+import React, { useContext} from 'react'
+import classNames from 'classnames'
+
+import IconCheck from '../../static/icon_check.svg'
+import classes from '../styles/task-item.module.sass'
+import { TaskContext } from "../context/index";
+import { Link } from "gatsby"
+
+
+export const TaskItem = ({children, type, keyValue, title, description, url}) => {
+  console.log(url)
+    return (
+      <Link to={url}>
+        <div className={classes.item}>
+            <div className={classes.header}>
+              <div className={classes.leftheader}>
+                { type != "chapter" && <span className={classes.itemNr}>{keyValue}</span>}
+                <h3 className={classes.title}>{title}</h3>
+              </div>
+              { type != "chapter" && <div className={classes.rightheader}>
+                <span className={classes.icon}>CODE </span>
+                <span className={classes.separator}>|</span>
+                <span className={classes.progress}>Progress: 0/1</span>
+              </div>}
+            </div>
+        </div>
+      </Link>
+    )
+}
diff --git a/src/components/teachers.js b/src/components/teachers.js
new file mode 100644
index 0000000000000000000000000000000000000000..778d68d3f46ecadfad1128fff7060ed93f26581c
--- /dev/null
+++ b/src/components/teachers.js
@@ -0,0 +1,26 @@
+import React from 'react'
+
+//import classnames from 'classnames';
+import classes from '../styles/teachers.module.sass'
+import { teacherData } from '../data/TeacherData'
+
+export const Teachers = () => {
+
+    return (
+        <div className={classes.container}>
+            <h1>Vi som hΓ₯ller i kursen</h1>
+            <div className={classes.teachercards}>
+                {teacherData.map((item, index) => (
+                    <div className={classes.teacher}>
+                        <img src={item.imgpath} alt={item.jobtitle} className={classes.teacherimg}></img>
+                        <span><b>{item.name}</b></span>
+                        <span><i>{item.jobtitle}</i></span>
+                    </div>
+                ))}
+            </div>
+        </div>
+    )
+}
+
+export default Teachers
+
diff --git a/src/components/text.js b/src/components/text.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6aafb5d8849386a4a30af345d666cb619b648d5
--- /dev/null
+++ b/src/components/text.js
@@ -0,0 +1,8 @@
+import React from 'react'
+
+
+export const Text = (props) => {
+    return (<div>{props.children}</div>)
+}
+
+
diff --git a/src/components/typography.js b/src/components/typography.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9d72d876b4bc4829c8d68862fa09360be1a5512
--- /dev/null
+++ b/src/components/typography.js
@@ -0,0 +1,11 @@
+import React from 'react'
+
+import classes from '../styles/typography.module.sass'
+
+export const H3 = ({ children }) => <h3 className={classes.h3}>{children}</h3>
+export const Hr = () => <hr className={classes.hr} />
+export const InlineCode = ({ children }) => <code className={classes.code}>{children}</code>
+
+export const Ol = ({ children }) => <ol className={classes.ol}>{children}</ol>
+export const Ul = ({ children }) => <ul className={classes.ul}>{children}</ul>
+export const Li = ({ children }) => <li className={classes.li}>{children}</li>
diff --git a/src/components/video.js b/src/components/video.js
new file mode 100644
index 0000000000000000000000000000000000000000..02c98d6bcb20a43f007ade906f64f9714359621a
--- /dev/null
+++ b/src/components/video.js
@@ -0,0 +1,15 @@
+import React from 'react'
+import classes from '../styles/video.module.sass'
+
+
+const Video = ({url}) => { 
+    return ( 
+        <div className={classes.videoContainer}>
+            <iframe title="Video" frameBorder="0" 
+                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen src={url}>
+            </iframe>                  
+        </div>
+    );
+};
+
+export default Video 
\ No newline at end of file
diff --git a/src/components/wrapper.js b/src/components/wrapper.js
new file mode 100644
index 0000000000000000000000000000000000000000..9e809d9332b1d2c3ed049ac9e82747d87f862dd0
--- /dev/null
+++ b/src/components/wrapper.js
@@ -0,0 +1,33 @@
+import React from 'react'
+
+import Footer from './footer'
+import Header from '../components/header'
+import SEO from '../components/seo'
+
+import classes from '../styles/wrapper.module.sass'
+
+
+const Wrapper = ({children }) => {
+
+    //const {isAuthenticated} = useMsal();
+    return (
+
+        // TODO fix position
+        <div>
+            <SEO/>
+            <main className={classes.root}>
+                {/*<ThemeChanger/>*/}
+            <Header></Header>
+                <div className={classes.content}>
+                    { children }
+                </div>
+            <Footer></Footer>
+        </main>
+       </div>
+    )
+
+}
+
+export default Wrapper
+
+
diff --git a/src/context.js b/src/context.js
new file mode 100644
index 0000000000000000000000000000000000000000..b86aa2968ad18c7d4348f9ebd2e60f8ce24b182e
--- /dev/null
+++ b/src/context.js
@@ -0,0 +1,3 @@
+import React from 'react'
+
+export const ChapterContext = React.createContext()
diff --git a/src/context/dist/index.dev.js b/src/context/dist/index.dev.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cafd96531fdcd355ea35cee9e770dcc32822cdd
--- /dev/null
+++ b/src/context/dist/index.dev.js
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.TaskContext = void 0;
+
+var _react = _interopRequireDefault(require("react"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+var TaskContext = _react["default"].createContext({});
+
+exports.TaskContext = TaskContext;
\ No newline at end of file
diff --git a/src/context/index.js b/src/context/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..830dc950767df336f06c0f787bfb890229dca709
--- /dev/null
+++ b/src/context/index.js
@@ -0,0 +1,7 @@
+import React from 'react';
+
+
+const TaskContext = React.createContext({});
+const MultianswerContext = React.createContext({})
+
+export { TaskContext, MultianswerContext }
\ No newline at end of file
diff --git a/src/data/MenuData.js b/src/data/MenuData.js
new file mode 100644
index 0000000000000000000000000000000000000000..318ed856b811740e7921496859be8905e97f6444
--- /dev/null
+++ b/src/data/MenuData.js
@@ -0,0 +1,6 @@
+export const menuData = [
+    {title: "Kursinfo", newTab: false, link: "/course-info"},
+    {title: "Kursmaterial", newTab: false, link: "/course-material"},
+    {title: "Teams", newTab: true, link: "https://teams.microsoft.com/l/channel/19%3a4aa06ba9ed70464ca40f9ba6a0ed2896%40thread.tacv2/General?groupId=effd091c-3a2f-4b70-9275-9bf224fd96c1&tenantId=913f18ec-7f26-4c5f-a816-784fe9a58edd"},
+    {title: "FAQ", newTab: false, link: "/faq"},
+]
\ No newline at end of file
diff --git a/src/data/TeacherData.js b/src/data/TeacherData.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d545319b13a086c6d77aac7ffe693efb8de6bc9
--- /dev/null
+++ b/src/data/TeacherData.js
@@ -0,0 +1,4 @@
+export const teacherData = [
+    {imgpath: "profile.jpg", name: "Marco Kuhlmann", jobtitle: "Kursledare och examinator"},
+    {imgpath: "profile.jpg", name: "Oskar HolmstrΓΆm", jobtitle: "Kursassistent"},
+]
\ No newline at end of file
diff --git a/src/data/faq/exam_faq.js b/src/data/faq/exam_faq.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce3cb1b1caa9bba910f86339c0cd869b6e02e16e
--- /dev/null
+++ b/src/data/faq/exam_faq.js
@@ -0,0 +1,4 @@
+export const exam_faq = [
+    {question: "Hello?", answer: "World"},
+    {question: "Hello again?", answer: "World still here"},
+]
\ No newline at end of file
diff --git a/src/data/faq/general_faq.js b/src/data/faq/general_faq.js
new file mode 100644
index 0000000000000000000000000000000000000000..11dc5ed95908d9847ef7bba9a002c86984bbd0fb
--- /dev/null
+++ b/src/data/faq/general_faq.js
@@ -0,0 +1,4 @@
+export const general_faq = [
+    {question: "Hello?", answer: "World"},
+    {question: "Hello again?", answer: "World still here"},
+]
\ No newline at end of file
diff --git a/src/data/faq/technical_faq.js b/src/data/faq/technical_faq.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e0d9338ad854f6b63d7d7eb10cafe8bfa65af2d
--- /dev/null
+++ b/src/data/faq/technical_faq.js
@@ -0,0 +1,4 @@
+export const technical_faq = [
+    {question: "Hello?", answer: "World"},
+    {question: "Hello again?", answer: "World still here"},
+]
\ No newline at end of file
diff --git a/src/dist/markdown.dev.js b/src/dist/markdown.dev.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4ec23add0fd339515cf21da9012034a0a5181d9
--- /dev/null
+++ b/src/dist/markdown.dev.js
@@ -0,0 +1,82 @@
+"use strict";
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.renderAst = void 0;
+
+var _react = _interopRequireDefault(require("react"));
+
+var _rehypeReact = _interopRequireDefault(require("rehype-react"));
+
+var _exercise = _interopRequireDefault(require("./components/exercise"));
+
+var _code = _interopRequireDefault(require("./components/code"));
+
+var _link = require("./components/link");
+
+var _slides = _interopRequireDefault(require("./components/slides"));
+
+var _choice = _interopRequireWildcard(require("./components/answer-types/choice"));
+
+var _typography = require("./components/typography");
+
+var _taskExercise = _interopRequireDefault(require("./components/task-exercise"));
+
+var _math = _interopRequireDefault(require("./components/math"));
+
+var _multiChoice = _interopRequireDefault(require("./components/answer-types/multi-choice"));
+
+var _shortAnswer = _interopRequireWildcard(require("./components/answer-types/short-answer"));
+
+var _numerical = _interopRequireDefault(require("./components/answer-types/numerical"));
+
+var _inputType = require("./components/answer-types/input-type");
+
+var _tableAnswer = _interopRequireDefault(require("./components/answer-types/table-answer"));
+
+var _questions = require("./components/answer-types/questions");
+
+var _video = _interopRequireDefault(require("./components/video"));
+
+var _text = require("./components/text");
+
+function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+var renderAst = new _rehypeReact["default"]({
+  createElement: _react["default"].createElement,
+  components: {
+    exercise: _taskExercise["default"],
+    //Exercise
+    slides: _slides["default"],
+    codeblock: _code["default"],
+    choice: _choice["default"],
+    multichoice: _multiChoice["default"],
+    opt: _choice.Option,
+    input: _shortAnswer.Input,
+    a: _link.Link,
+    hr: _typography.Hr,
+    h3: _typography.H3,
+    ol: _typography.Ol,
+    ul: _typography.Ul,
+    li: _typography.Li,
+    code: _typography.InlineCode,
+    "exact-input": _inputType.ExactInput,
+    "exact-numeric": _inputType.ExactNumeric,
+    "ranged-numeric": _inputType.RangedNumeric,
+    math: _math["default"],
+    questions: _questions.questions,
+    "video": _video["default"],
+    text: _text.Text,
+    matchraw: _inputType.TableInput,
+    match: _inputType.RexegMatch,
+    "table-answer": _tableAnswer["default"]
+  }
+}).Compiler;
+exports.renderAst = renderAst;
\ No newline at end of file
diff --git a/src/markdown.js b/src/markdown.js
new file mode 100644
index 0000000000000000000000000000000000000000..e119533aa4d467d0117dbb1c1155d0682670aeb9
--- /dev/null
+++ b/src/markdown.js
@@ -0,0 +1,48 @@
+import React from 'react'
+import rehypeReact from 'rehype-react'
+
+
+import CodeBlock from './components/code'
+import { Link } from './components/link'
+import Slides from './components/slides'
+import Choice from './components/answer-types/choice'
+import { H3, Hr, Ol, Ul, Li, InlineCode } from './components/typography'
+import TaskExercise from './components/task-exercise';
+import Math from './components/math';
+import MultiChoice from './components/answer-types/multi-choice'
+import { RegexInput } from './components/answer-types/input-type';
+import { ExactMatch, NumericMatch, RangeMatch, RexegMatch } from './components/answer-types/match-type'
+import MultiAnswer from './components/multi-answer'
+import SelectChoice from './components/answer-types/select-choice'
+import Video from './components/video'
+import { Text } from './components/text'
+import { Option } from './components/answer-types/option'
+
+export const renderAst = new rehypeReact({
+    createElement: React.createElement,
+    components: {
+        exercise: TaskExercise, //Exercise
+        slides: Slides,
+        codeblock: CodeBlock,
+        choice: Choice,
+        multichoice: MultiChoice,
+        opt: Option,
+        a: Link,
+        hr: Hr,
+        h3: H3,
+        ol: Ol,
+        ul: Ul,
+        li: Li,
+        code: InlineCode,
+        "exact-match": ExactMatch,
+        "numeric-match": NumericMatch,
+        "range-match": RangeMatch,
+        math: Math,
+        "video": Video,
+        text: Text,
+        "regex-input": RegexInput,
+        "regex-match": RexegMatch,
+        "multi-answer": MultiAnswer,
+        "select-choice" : SelectChoice
+    },
+}).Compiler
diff --git a/src/pages/404.js b/src/pages/404.js
new file mode 100644
index 0000000000000000000000000000000000000000..e59216a5f15df7da9a559a656f396f5b842ea016
--- /dev/null
+++ b/src/pages/404.js
@@ -0,0 +1,14 @@
+import { useEffect } from 'react'
+import { navigate } from 'gatsby'
+
+export default () => {
+    useEffect(() => {
+      navigate('/');
+    }, []);
+    return null;
+  };
+
+
+
+
+
diff --git a/src/pages/course-info.js b/src/pages/course-info.js
new file mode 100644
index 0000000000000000000000000000000000000000..16f6810827d7c0dab1be4f4fcd143598df900da2
--- /dev/null
+++ b/src/pages/course-info.js
@@ -0,0 +1,51 @@
+import React from 'react'
+
+
+import { msalConfig, loginRequest } from '../utility/auth/msalConfig';
+import { useMsal, MsalProvider } from '../utility/auth/msalContext';
+
+import classes from '../styles/course-info.module.sass'
+
+
+import Wrapper from '../components/wrapper'
+
+
+export default ({data}) => 
+{
+
+    return (
+        <MsalProvider
+            config={msalConfig}
+            scopes={loginRequest}
+            >
+            <Wrapper>
+                <div className={classes.container}>
+                    <h1 className={classes.pagetitle}>Om kursen</h1>
+                    <div className={classes.infocontainer}>
+                        <div className={classes.infotext}>
+                            <h3 className={classes.sectiontitle}>KursinnehΓ₯ll</h3>
+                            <p className={classes.sectiontext}>Att skriva datorprogram som fΓΆrstΓ₯r och producerar mΓ€nskligt sprΓ₯k Γ€r ett centralt mΓ₯l inom artificiell intelligens. Denna kurs syftar till att ge en fΓΆrstΓ₯else fΓΆr hur lΓ₯ngt utvecklingen har kommit pΓ₯ vΓ€gen mot detta mΓ₯l: vad som Γ€r och vad som inte Γ€r mΓΆjligt idag. Du kommer att lΓ€ra dig om nΓ₯gra aktuella metoder inom naturligt sprΓ₯k-behandling, om vilka resurser som krΓ€vs fΓΆr att bygga sprΓ₯kteknologiska system samt om hur du kan bedΓΆma kvalitΓ©n hos dessa metoder och system.</p>
+                        </div>
+
+                        <div className={classes.infotext}>
+                            <h3 className={classes.sectiontitle}>BΓΆrja lΓ€sa nΓ€r du vill</h3>
+                            <p className={classes.sectiontext}>Du kan bΓΆrja lΓ€sa kursen i stort sett nΓ€r du vill dΓ₯ kursen Γ€r en online-kurs med flexibel antagning. Du gΓΆr ansΓΆkan till den termin du tΓ€nker bΓΆrja lΓ€sa kursen. Termin vΓ€ljer du hΓ€r ovan, sΓ₯ kommer du till rΓ€tt ansΓΆkningstillfΓ€lle. Vill du bΓΆrja direkt sΓ₯ ansΓΆker du till innevarande termin.</p>
+                        </div>
+
+                        <div className={classes.infotext}>
+                            <h3 className={classes.sectiontitle}>Kursformat</h3>
+                            <p className={classes.sectiontext}>Kursen Γ€r en distanskurs som gΓΆrs i egen takt och hanteras i sin helhet i en webb-baserad kursmiljΓΆ. Kursen baseras pΓ₯ sjΓ€lvstudier av kursmaterialet och examineras med sjΓ€lvrΓ€ttande tester och inlΓ€mningar. <br/><br/> Kursen handleds ΓΆver internet.</p>
+                        </div>
+
+                        <div className={classes.infotext}>
+                            <h3 className={classes.sectiontitle}>Information om behΓΆrighet</h3>
+                            <p className={classes.sectiontext}>Observera att du vid ansΓΆkan till kursen mΓ₯ste kunna styrka att du har grundlΓ€ggande behΓΆrighet. Om dina gymnasiemeriter inte redan finns pΓ₯ dina sidor pΓ₯ antagning.se sΓ₯ behΓΆver du ladda upp gymnasieexamen, eller motsvarande, pΓ₯ antagning.se i samband med din ansΓΆkan.</p>
+                        </div>
+                    </div>
+                   
+                   
+                </div>
+            </Wrapper>
+        </MsalProvider>
+    )
+}
\ No newline at end of file
diff --git a/src/pages/course-material.js b/src/pages/course-material.js
new file mode 100644
index 0000000000000000000000000000000000000000..80ec7683b4bf39de34ae8d52022579c862119eef
--- /dev/null
+++ b/src/pages/course-material.js
@@ -0,0 +1,42 @@
+import React from 'react'
+
+
+import { msalConfig, loginRequest } from '../utility/auth/msalConfig';
+import { useMsal, MsalProvider } from '../utility/auth/msalContext';
+
+import classes from '../styles/course-material.module.sass'
+
+import Wrapper from '../components/wrapper'
+
+
+import { ChapterItem } from '../components/chapter-item'
+import CourseContentList from '../components/course-content-list'
+
+
+
+export default (props) => 
+{
+    const data = props.pageContext.data;
+    const chapters = data.map( ({node}, i) => (
+       <ChapterItem type="chapter" url={node.fields.slug} keyValue={i} description={node.frontmatter.description} title={node.frontmatter.title}> </ChapterItem>
+    ))
+
+    return (
+        <MsalProvider
+            config={msalConfig}
+            scopes={loginRequest}
+            >
+            <Wrapper>
+            <div className={classes.container}>
+                <h1 className={classes.pagetitle}>KursinnehΓ₯ll</h1>
+                
+                <CourseContentList>
+                    {chapters}
+                </CourseContentList>
+            </div>
+
+            </Wrapper>
+        </MsalProvider>
+    )
+}
+
diff --git a/src/pages/faq.js b/src/pages/faq.js
new file mode 100644
index 0000000000000000000000000000000000000000..78da962d11fb0ff327c5ca8e84d9a10a04d5a7c3
--- /dev/null
+++ b/src/pages/faq.js
@@ -0,0 +1,41 @@
+import React from 'react'
+
+
+import { msalConfig, loginRequest } from './../utility/auth/msalConfig';
+import { useMsal, MsalProvider } from '../utility/auth/msalContext';
+
+import Faq from '../components/faq-component'
+
+import classes from '../styles/faq.module.sass'
+
+import { general_faq } from '../data/faq/general_faq'
+import { technical_faq } from '../data/faq/technical_faq'
+import { exam_faq } from '../data/faq/exam_faq'
+
+
+
+import Wrapper from '../components/wrapper'
+import classNames from 'classnames';
+
+
+export default ({data}) => 
+{
+
+    return (
+        <MsalProvider
+            config={msalConfig}
+            scopes={loginRequest}
+            >
+            <Wrapper>
+                <div className={classes.container}>
+                    <h1 className={classes.pagetitle}>Vanliga frΓ₯gor</h1>
+                
+                    <Faq title="Generellt" data={general_faq}></Faq>
+                    <Faq title="Tekniska problem" data={technical_faq}></Faq>
+                    <Faq title="Examination" data={exam_faq}></Faq>
+                </div>
+
+            </Wrapper>
+        </MsalProvider>
+    )
+}
\ No newline at end of file
diff --git a/src/pages/index.js b/src/pages/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..67058b9fdaa9bacdec46ecdae6215b3a19bbaf90
--- /dev/null
+++ b/src/pages/index.js
@@ -0,0 +1,82 @@
+import React from 'react'
+
+
+import Login from '../components/login'
+
+import { msalConfig, loginRequest } from './../utility/auth/msalConfig';
+import { useMsal, MsalProvider } from '../utility/auth/msalContext';
+
+
+import classes from '../styles/index.module.sass'
+import Navigation from '../components/navigation'
+import { ChapterItem } from '../components/chapter-item'
+import Hero from '../components/hero'
+import CourseContentList from '../components/course-content-list'
+import Faq from '../components/faq-component'
+import Teachers from '../components/teachers'
+
+import { general_faq } from '../data/faq/general_faq'
+
+import { graphql, navigate } from 'gatsby'
+import Wrapper from '../components/wrapper'
+
+
+
+export default ({ data }) => {
+    const chapters = data.allMarkdownRemark.edges.map( ({node}, i) => (
+        <ChapterItem type="chapter" url={node.fields.slug} keyValue={i} description={node.frontmatter.description} title={node.frontmatter.title}> </ChapterItem>
+        ))
+
+    const isAuthenticated = useMsal();
+
+    return (
+        <MsalProvider
+            config={msalConfig}
+            scopes={loginRequest}
+            >
+            <Wrapper>
+                { !isAuthenticated && <Hero></Hero> }
+                <div className={classes.container}>
+                    <h1>Detta innehΓ₯ller kursen</h1>
+                    <CourseContentList>
+                        {chapters}
+                    </CourseContentList>
+                </div>
+                <Teachers></Teachers>
+                <div className={classes.container}>
+                    <h1>Vanliga frΓ₯gor</h1>
+                    <Faq title="" data={general_faq}></Faq>
+                </div>
+                
+            </Wrapper>
+        </MsalProvider>
+
+        )
+}
+// <Navigation className={classes.navigation}></Navigation> 
+
+export const pageQuery = graphql`
+    {
+        site {
+            siteMetadata {
+                title
+            }
+        }
+        allMarkdownRemark(
+            sort: { fields: [frontmatter___title], order: ASC }
+            filter: { frontmatter: { type: { eq: "chapter" } } }
+        ) {
+            edges {
+                node {
+                    fields {
+                        slug
+                    }
+                    frontmatter {
+                        title
+                        description
+                    }
+                }
+            }
+        }
+    }
+`
\ No newline at end of file
diff --git a/src/styles/burger.module.sass b/src/styles/burger.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..7f4a212d09de703fa2c7860a3fcfe686d3a2dfa4
--- /dev/null
+++ b/src/styles/burger.module.sass
@@ -0,0 +1,100 @@
+// quick fix to remove side bar. Should be refactored depending on how we want it.
+$breakpoint-tablet: 9999px //1200px
+
+
+// Filen Γ€r full av hacks, vi byter det hΓ€r med en navbar sΓ₯ blir det mycket bΓ€ttre.
+.wrapperx
+    display: flex
+    flex-direction: column
+    // Nav tΓ€cker hela sidan
+    top: 0px
+    left: 0px
+    margin: 0em
+    position: sticky
+    top: 5px
+    z-index: 1000
+    height: calc(100vh - 5px)
+    // End nav tΓ€cker hela sidan
+
+
+.wide-container
+    height: 100%
+    @media (max-width: $breakpoint-tablet)
+        display: none
+    @media (min-width: $breakpoint-tablet)
+        display: block
+
+.mobile-container
+    width: 90vw
+    // Nav tΓ€cker hela sidan
+    width: 100%
+    // End nav tΓ€cker hela sidan
+    height: 90vh
+    z-index: 6
+    
+    @media (max-width: $breakpoint-tablet)
+        display: block
+    @media (min-width: $breakpoint-tablet)
+        display: none
+
+
+
+.mobile-content
+    display: flex
+    height: 90vh
+    position: fixed
+    width: 95%
+    background: var(--color-secondary-back)
+    align-items: center
+    flex-direction: column
+    padding: 30px
+    padding-top: 75px
+
+    // Nav tΓ€cker hela sidan
+    width: 100%
+    // End nav tΓ€cker hela sidan
+
+.hiding
+    @media (max-width: $breakpoint-tablet)
+        transform: translateX(-200%)
+
+    @media (min-width: $breakpoint-tablet)
+        transform: translateX(0%)
+.wrapperx
+    @media (max-width: $breakpoint-tablet)
+        position: absolute
+        height: 50px
+
+    @media (min-width: $breakpoint-tablet)
+        transform: translateX(0%)
+    
+
+.toggler
+    position: fixed
+    top: 1px
+    font-size: 35px
+    z-index: 7
+    
+    // Nav tΓ€cker hela sidan
+    left: 5px
+    // End nav tΓ€cker hela sidan
+
+
+    @media (max-width: $breakpoint-tablet)
+        display: block
+    @media (min-width: $breakpoint-tablet)
+        display: none
+
+
+.ani    
+    transform-origin: center
+    transition: all 0.1s
+    //font-family: 'Times', 'Times New Roman', 'serif', 'sans-serif', 'EmojiSymbols', 'apple color emoji'
+    font-size: 50px
+    line-height: 1em
+    user-select: none
+    cursor: pointer
+
+.burger-closed-icon
+    user-select: none
+    cursor: pointer
\ No newline at end of file
diff --git a/src/styles/button.module.sass b/src/styles/button.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..1aeeafb09b09ab5483825c1e6b74ef1ce347e0cc
--- /dev/null
+++ b/src/styles/button.module.sass
@@ -0,0 +1,73 @@
+.root
+    border: 0
+    background: var(--color-button-secondary)
+    color: var(--color-button-secondary-contrast)
+    padding: 0.75rem 1rem
+    font-family: var(--font-primary)
+    font-size: var(--font-size-sm)
+    font-weight: bold
+    border-radius: var(--border-radius)
+    margin-top: 3rem
+    margin-bottom: 2.25rem
+    margin-left: 1rem
+    /* Margin left 2.5 -> 1 */
+    transition: opacity 0.2s ease
+    box-shadow: 0 0 3px var(--color-subtle-medium)
+
+    &:hover
+        opacity: 0.9
+        box-shadow: none
+
+.root:disabled
+    &:hover
+    opacity: 1
+    background: var(--color-background-disabled)
+
+    
+
+.primary
+    background: var(--color-button-primary)
+    color: var(--color-button-primary-contrast)
+
+.secondary
+    background: var(--color-theme)
+    color: var(--color-theme-contrast)
+
+.small
+    padding: 0.75rem 1rem
+    // margin to solve the ugly jumps
+    margin: 5px
+    font-size: var(--font-size-sm)
+
+    &:not(:last-child)
+        margin-right: 1rem
+
+.complete-icon
+    position: relative
+    top: 0.15rem
+    margin-right: 0.5rem
+
+.complete-inactive
+    &:hover
+        opacity: 1
+        background: var(--color-button-primary)
+        color: var(--color-button-primary-contrast)
+
+.complete-active
+    background: var(--color-button-primary)
+    color: var(--color-button-primary-contrast)
+
+    &:hover
+        opacity: 1
+        background: var(--color-button-danger)
+        color: var(--color-button-danger-contrast)
+
+.complete-label
+    .root:hover &
+        display: none
+
+.complete-label-hover
+    display: none
+
+    .root:hover &
+        display: inline
diff --git a/src/styles/chapter-item.module.sass b/src/styles/chapter-item.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..f611cc2f02f0b49ae7466c5d53d49ef1f14429a1
--- /dev/null
+++ b/src/styles/chapter-item.module.sass
@@ -0,0 +1,47 @@
+.item
+    min-width: 400px;
+    margin: 0 auto 2rem;
+    padding: 2rem 2rem;
+    border: 1px solid var(--color-subtle-medium);
+    border-radius: var(--border-radius);
+
+.header
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+
+.leftheader
+    display: flex;
+    align-items: center;
+    justify-content: left;
+
+.right
+    display: flex;
+    align-items: center;
+    justify-content: right;
+    color: white;
+
+
+.item:hover
+    box-shadow: 0 0 12px #ccc;
+
+.title
+    font-weight: 400;
+
+.textcontainer
+    margin-top: 10px;
+
+.text
+    font-weight: 300;
+
+.item-nr
+    background: var(--color-theme);
+    color: var(--color-theme-contrast);
+    font-size: 1em;
+    width: 2em;
+    height: 2em;
+    display: inline-flex;
+    border-radius: 50%;
+    justify-content: center;
+    align-items: center;
+    margin-right: 1rem;
\ No newline at end of file
diff --git a/src/styles/choice.module.sass b/src/styles/choice.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..339e345ad84ea27d972b903fa7a5d1e392bfd455
--- /dev/null
+++ b/src/styles/choice.module.sass
@@ -0,0 +1,53 @@
+.option
+    margin-bottom: 0.5rem
+    margin-left: 1rem
+
+.input
+    display: none
+
+.label
+    cursor: pointer
+    display: flex
+    align-items: flex-start
+
+    &:before
+        content: ""
+        flex: 0 0 20px
+        width: 20px
+        height: 20px
+        display: inline-block
+        border: 2px solid var(--color-theme)
+        border-radius: 50%
+        margin-right: 1rem
+        margin-top: 0.2rem
+
+    input[type="radio"]:checked + &:before
+        border-width: 7px
+    
+    input[type="checkbox"]:checked + &:before
+        border-width: 7px
+
+.answer
+    padding: 2rem
+    border-radius: var(--border-radius)
+    background: var(--color-incorrect-light)
+    margin-bottom: 2rem
+
+    p
+        margin-bottom: 0
+        display: inline
+
+.correct
+    background: var(--color-correct-light)
+
+.partial
+    background: var(--color-partial-light)  
+
+.wrong
+    
+
+.answer-label
+    color: var(--color-incorrect-dark)
+
+.answer-label-correct
+    color: var(--color-correct-dark)
diff --git a/src/styles/code.module.sass b/src/styles/code.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..f7182d02507100538b1c0231436c96c72ed35c12
--- /dev/null
+++ b/src/styles/code.module.sass
@@ -0,0 +1,58 @@
+.root
+    margin-left: -2rem
+    width: calc(100% + 4rem)
+    margin-bottom: 5rem
+
+.cell
+    background: var(--syntax-background)
+    border-top: 1px solid var(--color-subtle-medium)
+
+    & > div:first-child
+        padding: 1.5rem 2rem 1rem
+        position: relative
+
+        &:before
+            content: "Input"
+            display: inline-block
+            border-radius: var(--border-radius)
+            color: var(--syntax-background)
+            background: var(--syntax-text)
+            padding: 0 0.5rem
+            position: absolute
+            top: 1rem
+            right: 1.5rem
+            font-size: var(--font-size-xs)
+            font-weight: bold
+            text-transform: uppercase
+            z-index: 5
+
+.output
+    padding: 2rem 9rem 2rem 3rem
+    background: var(--syntax-text)
+    color: var(--syntax-background)
+    position: relative
+
+    &:before
+        content: "Output"
+        display: inline-block
+        border-radius: var(--border-radius)
+        background: var(--syntax-background)
+        color: var(--syntax-text)
+        padding: 0 0.5rem
+        position: absolute
+        top: 1rem
+        right: 1.5rem
+        font-size: var(--font-size-xs)
+        font-weight: bold
+        text-transform: uppercase
+
+
+.codeBox
+    height: auto
+    viewportMargin: Infinity
+
+/* EXTRA SOM VI LΓ„GGER TILL*/
+.action-container
+    display: flex
+    flex-direction: row
+    padding: 1rem
\ No newline at end of file
diff --git a/src/styles/course-content-list.module.sass b/src/styles/course-content-list.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..ffcd8e5babc397f959a80fdd89ea8e4a2bde48ad
--- /dev/null
+++ b/src/styles/course-content-list.module.sass
@@ -0,0 +1,107 @@
+.root
+    width: 100%;
+    display: flex;
+    height: 100%
+    flex-grow: 1
+    
+
+@media(min-height: 1081px) //min-height: Min(100%, fit-content)//Min(calc(100% - var(--hero-height)),100%) // "Max" with big M is a hack to get around sass own max
+    //.root
+    //    height: auto
+@media(max-height: 1080px) //min-height: Min(100%, fit-content)//Min(calc(100% - var(--hero-height)),100%) // "Max" with big M is a hack to get around sass own max
+    //.root
+    //    height: 100%
+
+
+
+.content
+    display: flex
+    flex-direction: column
+
+    margin-bottom: 4rem
+    padding: 0rem 1rem 0rem
+    padding-top: 5rem
+    width: var(--width-container)
+    max-width: 100%
+    background-color: white;
+    
+
+.markdown-content-wrapper
+    display: flex
+    justify-content: center
+    width: 100%
+    
+
+.logo
+    color: var(--color-theme)
+    position: absolute
+    top: 2rem
+    left: 2rem
+
+@media(min-width: 1200px)
+    .logo
+        position: fixed
+
+.header
+    width: var(--width-container)
+    max-width: 100%
+
+.title
+    font-size: var(--font-size-xl)
+    font-family: var(--font-display)
+    line-height: 1.3
+    margin-bottom: 2rem
+
+.footer
+    background: var(--color-subtle-light)
+    width: 100%
+    padding: 3rem
+    margin-top: 5.5rem
+
+.footer-content
+    max-width: 100%
+    width: var(--width-container)
+    margin: 0 auto
+    font-size: var(--font-size-sm)
+    justify-content: space-between
+    flex-flow: row wrap
+
+@media(min-width: 900px)
+    .footer-content
+        display: flex
+
+.footer-section
+    flex: 0 0 48%
+    padding: 0 2rem
+    margin-bottom: 1rem
+
+.footer-links
+    flex: 0 0 100%
+    padding-top: 2rem
+    font-size: var(--font-size-xs)
+    text-align: center
+    color: var(--color-subtle-dark)
+
+.footer-link
+    display: inline
+
+    &:not(:last-child)
+        margin-right: 1rem
+
+        &:after
+            content: "\b7"
+            margin-left: 1rem
+
+.profile
+    width: var(--size-profile-pic)
+    height: var(--size-profile-pic)
+    border-radius: 50%
+    float: right
+    margin: 0 0 1rem 1rem
+    shape-outside: circle()
+
+
+/* EXTRA SOM VI LΓ„GGER TILL */
+.content
+    section
+        max-width: 100%
\ No newline at end of file
diff --git a/src/styles/course-info.module.sass b/src/styles/course-info.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..64324c6580e62485dfefc3742fea5144f5ca076d
--- /dev/null
+++ b/src/styles/course-info.module.sass
@@ -0,0 +1,27 @@
+.container
+    margin-top: 5rem;
+    align-items: center;
+    border-bottom: 1px solid var(--color-subtle-medium);
+    display: flex;
+    flex-direction: column;
+    width: 50%
+
+
+
+.pagetitle
+    text-align: center;
+    padding: 2rem 0rem;
+    border-bottom: 1px solid var(--color-subtle-medium);
+
+.infocontainer
+    padding: 2rem 0;
+
+.infotext
+    padding-top: 1rem;
+
+.sectiontitle
+    font-weight: 400;
+    
+.sectiontext
+    font-weight: 300;
+    margin-top: 1rem;
\ No newline at end of file
diff --git a/src/styles/course-material.module.sass b/src/styles/course-material.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..6d0957da9f11aba3054717d684b1c2fa709fcc18
--- /dev/null
+++ b/src/styles/course-material.module.sass
@@ -0,0 +1,14 @@
+.container
+    margin-top: 5rem;
+    align-items: center;
+    border-bottom: 1px solid var(--color-subtle-medium);
+    display: flex;
+    flex-direction: column;
+    width: 50%
+
+
+
+.pagetitle
+    text-align: center;
+    padding: 2rem 0rem;
+    border-bottom: 1px solid var(--color-subtle-medium);
diff --git a/src/styles/dist/rawinput.module.css b/src/styles/dist/rawinput.module.css
new file mode 100644
index 0000000000000000000000000000000000000000..470c845986cba7d63a244709d8158de1aa0f9993
--- /dev/null
+++ b/src/styles/dist/rawinput.module.css
@@ -0,0 +1,16 @@
+table td, table th {
+  vertical-align: inherit;
+}
+
+.answer-input {
+  height: 34px;
+  background-color: var(--color-subtle-light);
+  border-radius: var(--border-radius);
+  border: solid 1px var(--color-subtle-dark);
+  color: var(--color-front);
+  padding: 0.75rem 1rem;
+  font-family: var(--font-primary);
+  font-size: var(--font-size-sm);
+  width: 100%;
+  box-shadow: 0 0 3px var(--color-subtle-medium);
+}
\ No newline at end of file
diff --git a/src/styles/exercise.module.sass b/src/styles/exercise.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..a884f29c570354843d0d77e0cbec4fa4484087f4
--- /dev/null
+++ b/src/styles/exercise.module.sass
@@ -0,0 +1,77 @@
+.root
+    width: var(--width-container)
+    max-width: 100%
+    padding: 1rem 2rem
+    border: 1px solid var(--color-subtle-medium)
+    border-radius: var(--border-radius)
+    position: relative
+    background: var(--color-back)
+    display: flex
+    flex-direction: column
+    margin-bottom: 2rem
+
+.wide
+    width: 95%
+
+.expanded
+    box-shadow: 0 0 10px var(--color-subtle-medium)
+
+.completed
+    color: var(--color-subtle-dark)
+    background: var(--color-subtle-light)
+
+.title
+    cursor: pointer
+    user-select: none
+    font-size: var(--font-size-lg)
+    font-family: var(--font-display)
+
+.id
+    background: var(--color-theme)
+    color: var(--color-theme-contrast)
+    font-size: 0.8em
+    width: 1.75em
+    height: 1.75em
+    display: inline-flex
+    border-radius: 50%
+    justify-content: center
+    align-items: center
+    margin-right: 1rem
+
+.id-completed
+    background: var(--color-button-primary)
+    color: var(--color-button-primary-contrast)
+
+.title-expanded
+    margin-bottom: 3rem
+
+.icon
+    float: right
+    vertical-align: middle
+    margin-right: 0.5rem
+
+.content
+    visibility: hidden
+    height: 0
+    opacity: 0
+    z-index: 0
+    overflow: hidden
+
+.footer
+    width: 100%
+    text-align: right
+    margin-top: 1rem
+    margin-bottom: 1rem
+    /* HACK */
+    max-height: 34px 
+
+.button
+    cursor: pointer
+    border: 0
+    background: var(--color-theme)
+    color: var(--color-theme-contrast)
+    padding: 0.75rem 1rem
+    font-family: var(--font-primary)
+    font-size: var(--font-size-sm)
+    font-weight: bold
+    border-radius: var(--border-radius)
diff --git a/src/styles/faq-component.module.sass b/src/styles/faq-component.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..c6280273ad707a2ba93e9d35ec56500f1623596c
--- /dev/null
+++ b/src/styles/faq-component.module.sass
@@ -0,0 +1,20 @@
+
+.container
+
+    background-color: transparent;
+    display: flex;
+    justify-content: center;
+    position: relative;
+    padding: 4rem 0rem;
+
+
+.faqbox
+    background-color: white;
+    display: flexbox;
+    width: 700px;
+    border-bottom: 1px solid var(--color-subtle-medium);
+    @media (max-width: 768px)
+        width: 400px;
+
+.title
+    font-weight: 400;
diff --git a/src/styles/faq.module.sass b/src/styles/faq.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..fc54c40731e41c39c3f005a12df328426a9aec2f
--- /dev/null
+++ b/src/styles/faq.module.sass
@@ -0,0 +1,10 @@
+.container
+    margin-top: 5rem;
+    align-items: center;
+    border-bottom: 1px solid var(--color-subtle-medium);
+
+
+.pagetitle
+    text-align: center;
+    padding: 2rem 0rem;
+    border-bottom: 1px solid var(--color-subtle-medium);
diff --git a/src/styles/footer.module.sass b/src/styles/footer.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..1e3b9b79d59eed1b7013d76928340834c255928d
--- /dev/null
+++ b/src/styles/footer.module.sass
@@ -0,0 +1,37 @@
+.footer
+    display: flex
+    bottom: 0;
+    flex-direction: row
+    flex-wrap: wrap;
+    width: 100%;
+    //height: 2.5rem;  
+    background-color: var(--color-theme)
+    color: white;
+    text-align: center;
+    padding-bottom: 5%
+    justify-content: space-evenly;
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    right: 0;
+ 
+
+flex-footer::before
+  content: ""
+
+
+flex-footer::after
+  content: ""
+
+
+.content 
+    width: 100%;
+    display: flex
+    bottom: 0;
+    flex-direction: row
+    flex-wrap: wrap;
+    justify-content: space-evenly;
+    margin-top: 2.5%;
+
+p
+    margin-bottom: 0
diff --git a/src/styles/global.css b/src/styles/global.css
new file mode 100644
index 0000000000000000000000000000000000000000..a055850a296bb6e12bfd1f37113145f318858a2c
--- /dev/null
+++ b/src/styles/global.css
@@ -0,0 +1,31 @@
+#gatsby-focus-wrapper{
+    min-height: 100vh;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+}
+
+html, body{
+}
+
+h1 {
+    font-family: 'Montserrat', sans-serif;
+    font-weight: 400;
+}
+
+h2, h3, button {
+    font-family: 'Montserrat', sans-serif;
+    font-weight: 400;
+}
+
+p, span {
+    font-family: 'Work Sans', sans-serif;
+    font-weight: 300;
+}
+
+
+
+
+#___gatsby {
+    /*height: 100%; */
+}
\ No newline at end of file
diff --git a/src/styles/header.module.sass b/src/styles/header.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..c0772fd8b4f0b24b26772764c57339fc5a38e553
--- /dev/null
+++ b/src/styles/header.module.sass
@@ -0,0 +1,58 @@
+
+.nav
+    background: white;
+    height: 80px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    z-index: 100;
+    position: relative;
+    width: 100%;
+    border-bottom: 1px solid var(--color-subtle-medium);
+
+
+.logo
+    color: black;
+    font-family: "Josefin sans", sans-serif;
+    font-weight: 700;
+    font-size: 16px;
+    spacing: 0;
+    line-height: 18px;
+    padding-left: 1.8rem;
+    cursor: pointer;
+    @media (max-width: 768px)
+        padding-left: 0;
+        padding-left: 1.8rem;
+        text-align: left;
+
+
+.navlink
+    font-weight: 400;
+    color: black;
+    text-decoration: none;
+    padding: 0 1.3rem;
+    height: 100%;
+    cursor: pointer;
+    font-size: 20px;
+    letter-spacing: 2px;
+
+
+.login
+    display: flex;
+    align-items: center;
+    margin-right: 24px;
+    @media (max-width: 768px)
+        display: none;
+
+.navmenu
+    display: flex;
+    align-items: left;
+    padding: 0 1rem;
+
+    @media (max-width: 768px)
+        display: none;
+
+
+.burger
+    @media (min-width: 768px)
+        display: none;
\ No newline at end of file
diff --git a/src/styles/headerburger.module.sass b/src/styles/headerburger.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..03312490b82d4899071e92bafffa63011e0adc16
--- /dev/null
+++ b/src/styles/headerburger.module.sass
@@ -0,0 +1,55 @@
+.bars
+    display: none;
+    @media (max-width: 768px)
+        color: black;
+        display: flex;
+        align-items: center;
+        font-size: 36px;
+        cursor: pointer;
+        z-index: 1;
+        padding-right: 1.8rem;
+
+
+
+.burgermenu
+    background: white;
+    position: absolute;
+    top: 80px;
+    right: 0;
+    width: 50%;
+    overflow: auto;
+    border: 1px solid var(--color-subtle-medium);
+    border-radius: var(--border-radius);
+
+
+    @media (min-width: 768px)
+        display: none;
+
+.menucontent
+    display: flex;
+    flex-direction: column;
+    padding-bottom: 1.5rem;
+    margin-left: 10px;
+    margin-top: 10px;
+
+
+
+
+.navlink
+    color: black;
+    font-weight: 400;
+    display: flex;
+    text-decoration: none;
+    padding: 0 1.3rem;
+    height: 100%;
+    cursor: pointer;
+    font-size: 20px;
+    letter-spacing: 2px;
+    border-bottom: 1px solid var(--color-subtle-medium);
+    width: 50%;
+
+    
+
+.loginbutton
+    padding-top: 10rem;
+
diff --git a/src/styles/hero.module.sass b/src/styles/hero.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..9925c0f5938036a70729f2c3b7a404a5f97e3d7c
--- /dev/null
+++ b/src/styles/hero.module.sass
@@ -0,0 +1,91 @@
+.container
+
+    background-color: white;
+    display: flex;
+    justify-content: center;
+    position: relative;
+    padding: 0 1rem;
+    color: #fff;
+
+    :before
+        content: "";
+        position: absolute;
+        top: 0
+        bottom: 0;
+        right: 0;
+        left: 0;
+        z-index: 2;
+        background: white;
+
+
+.background
+    background: white, center center / cover no-repeat;
+    position: absolute;
+    top: 0;
+    right: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    border-bottom: 1px solid var(--color-subtle-medium);
+
+
+.content
+    z-index: 3;
+    max-height: 100%;
+    padding: 0rem calc((100vq-1300px)/2)
+
+
+.items
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    text-align: center;
+    max-height: 100%;
+    padding: 0;
+    color: black;
+    line-height: 1.1;
+    margin-top: 12rem;
+    margin-bottom: 9rem;
+
+.title
+    font-size: clamp(3rem, 6vw, 5rem);
+    margin-bottom: 4rem;
+    letter-spacing: 3px;
+    padding: 0 0rem;
+
+
+.infotext
+    font-size: clamp(1.6rem, 1.8vw, 2rem);
+    margin-bottom: 2rem;
+    width: 50%;
+    line-height: 2.8rem;
+    @media (max-width: 768px)
+        width: 90%
+
+
+
+.button
+    margin-top: 5rem
+    display: flex;
+    align-items: center;
+    background: #077BF1;
+    white-space: nowrap;
+    color: #fff;
+    padding: 16px 40px;
+    font-size: 20px;
+    outline: none;
+    border: none;
+    min-width: 100px;
+    cursor: pointer;
+    text-decoration: none;
+    transition: 0.3s !important;
+    border-radius: 50px;
+
+    &:hover
+            background: #F26A2E ;
+            transform: translateY(-2px);
+
+    
+
diff --git a/src/styles/hint.module.sass b/src/styles/hint.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..94e4e19f1837b4a77526b1ac44d0aaff9d3e5d12
--- /dev/null
+++ b/src/styles/hint.module.sass
@@ -0,0 +1,29 @@
+.root
+    width: 100%
+
+.actions
+    padding-left: 1rem
+
+.label
+    cursor: pointer
+    background: var(--color-subtle-light)
+    border-width: 0 1px 1px 1px
+    border-style: solid
+    /*border-color: var(--color-subtle-medium)*/
+    padding: 0.5rem 1rem 0.5rem
+    border-bottom-left-radius: var(--border-radius)
+    border-bottom-right-radius: var(--border-radius)
+    font-family: var(--font-primary)
+    font-size: var(--font-size-sm)
+    font-weight: bold
+    margin-right: 1rem
+    color: var(--color-front)
+
+.content
+    background: var(--color-subtle-light)
+    padding: 1rem 1rem
+    font-size: var(--font-size-sm)
+    border-bottom: 0px solid var(--color-subtle-medium)
+    /*1 px fΓΆr border innan */
+    p, ol, ul
+        margin-bottom: 0
diff --git a/src/styles/index.module.sass b/src/styles/index.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..158fef28e252efe0d0b0a06498ead665b7beadea
--- /dev/null
+++ b/src/styles/index.module.sass
@@ -0,0 +1,55 @@
+.logo
+    width: 300px
+    height: auto
+    max-width: 100%
+    margin: 0 auto 6rem
+    display: block
+    color: var(--color-theme)
+
+.subtitle
+    font-family: var(--font-display)
+    width: 600px
+    height: auto
+    max-width: 100%
+    margin: 0 auto 1rem
+    display: block
+    text-align: center
+
+.introduction
+    width: var(--width-container)
+    max-width: 100%
+    padding: 1rem
+    margin: 0 auto
+    display: block
+    text-align: left
+
+.chapter
+    width: var(--width-container)
+    max-width: 100%
+    margin: 0 auto
+    padding: 2rem
+    border: 1px solid var(--color-subtle-medium)
+    border-radius: var(--border-radius)
+    margin-bottom: 2rem
+
+.chapter-title
+    font-family: var(--font-display)
+    font-size: var(--font-size-lg)
+    margin-bottom: 1.5rem
+
+.chapter-desc
+    font-size: var(--font-size-sm)
+    color: var(--color-subtle-dark)
+    margin-bottom: 0
+
+     
+.navigation
+    text-align: center
+    margin: 0 auto
+    width: var(--width-container)
+
+.container
+    padding: 4rem 0rem;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
diff --git a/src/styles/index.sass b/src/styles/index.sass
new file mode 100644
index 0000000000000000000000000000000000000000..09c458699822952a48c3906c97c6e81e2874ce0e
--- /dev/null
+++ b/src/styles/index.sass
@@ -0,0 +1,219 @@
+@import '../../theme'
+
+/* Reset */
+
+*, *:before, *:after
+    box-sizing: border-box
+    padding: 0
+    margin: 0
+    border: 0
+    outline: 0
+
+html
+    font-family: sans-serif
+    text-rendering: optimizeSpeed
+    -ms-text-size-adjust: 100%
+    -webkit-text-size-adjust: 100%
+
+body
+    margin: 0
+
+article, aside, details, figcaption, figure, footer, header, main, menu, nav,
+section, summary, progress
+    display: block
+
+a
+    background-color: transparent
+    color: inherit
+    text-decoration: none
+
+    &:active,
+    &:hover
+        outline: 0
+
+abbr[title]
+    border-bottom: none
+    text-decoration: underline
+    text-decoration: underline dotted
+
+b, strong
+    font-weight: inherit
+    font-weight: bolder
+
+small
+    font-size: 80%
+
+sub, sup
+    position: relative
+    font-size: 65%
+    line-height: 0
+    vertical-align: baseline
+
+sup
+    top: -0.5em
+
+sub
+    bottom: -0.15em
+
+img
+    border: 0
+    height: auto
+    max-width: 100%
+
+svg
+    max-width: 100%
+    color-interpolation-filters: sRGB
+    fill: currentColor
+
+    &:not(:root)
+        overflow: hidden
+
+hr
+    box-sizing: content-box
+    overflow: visible
+    height: 0
+
+pre
+    overflow: auto
+
+code, pre
+    font-family: monospace, monospace
+    font-size: 1em
+
+table
+    text-align: left
+    width: 100%
+    max-width: 100%
+    border-collapse: collapse
+    margin-bottom: 2rem
+
+    td, th
+        vertical-align: top
+        padding: 0.5rem
+        border-bottom: 1px solid var(--color-subtle-medium)
+
+    code
+        white-space: nowrap
+
+button
+    appearance: none
+    background: transparent
+    cursor: pointer
+
+progress
+    appearance: none
+
+/* Layout */
+
+html
+    font-size: 11px
+
+@media(max-width: 767px)
+    html
+        font-size: 10px
+
+body
+    font-family: var(--font-primary)
+    font-size: var(--font-size-md)
+    line-height: var(--line-height)
+    color: var(--color-front)
+    background: var(--color-back)
+
+p
+    margin-bottom: 3rem
+
+::selection
+    background: var(--color-theme)
+    color: var(--color-theme-contrast)
+
+/* Code */
+
+pre, code
+    font-family: var(--font-code)
+    font-weight: 500
+    font-size: 1.25rem
+    line-height: var(--line-height)
+
+pre
+    margin-bottom: 3rem
+
+pre code
+    display: block
+    padding: 2rem !important
+
+/* Syntax highlighting */
+
+.CodeMirror.cm-s-default
+    font-family: var(--font-code)
+    font-size: var(--font-size-sm)
+    background: var(--syntax-background)
+    color: var(--syntax-text)
+    word-wrap: break-word
+
+    .CodeMirror-line
+        padding: 0
+
+    .CodeMirror-selected
+        background: var(--syntax-selected-background)
+
+    .CodeMirror-cursor
+        border-left-color: currentColor
+
+    .cm-variable-2
+        color: inherit
+        font-style: italic
+
+    .cm-comment
+        color: var(--syntax-comment)
+
+    .cm-keyword, .cm-builtin
+        color: var(--syntax-keyword)
+
+    .cm-operator
+        color: var(--syntax-operator)
+
+    .cm-string
+        color: var(--syntax-selector)
+
+    .cm-number
+        color: var(--syntax-number)
+
+    .cm-def
+        color: var(--syntax-function)
+
+.CodeMirror-scroll
+    overflow: hidden !important
+    margin-bottom: -50px !important
+    padding-bottom: 50px !important
+    
+.jp-RenderedText pre
+    .ansi-cyan-fg.ansi-cyan-fg
+        color: var(--ansi-cyan)
+
+    .ansi-green-fg.ansi-green-fg
+        color: var(--ansi-green)
+
+    .ansi-red-fg.ansi-red-fg
+        color: var(--ansi-red)
+
+/* Gatsby Images */
+
+.gatsby-resp-image-link
+    border: 0
+
+.gatsby-resp-image-figure
+    margin-bottom: 4rem
+
+.gatsby-resp-image-figcaption
+    font-size: var(--font-size-xs)
+    color: var(--color-front-light)
+    padding-top: 1rem
+    text-align: center
+
+    code
+        color: inherit
+
+@media(max-width: 420px) 
+  td 
+    display: table-row
+  
\ No newline at end of file
diff --git a/src/styles/input.module.sass b/src/styles/input.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..9d0ef38dc94cb462577abff6ddd6dc30784e504e
--- /dev/null
+++ b/src/styles/input.module.sass
@@ -0,0 +1,5 @@
+input:disabled
+    border-color: var(--color-border-disabled)
+    border-width: 1px
+    background: var(--color-background-disabled)
+    border-style: inset
\ No newline at end of file
diff --git a/src/styles/link.module.sass b/src/styles/link.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..bf3f6060cb2d7b395a3e264bacf2a09f21bfc51f
--- /dev/null
+++ b/src/styles/link.module.sass
@@ -0,0 +1,15 @@
+.root
+    cursor: pointer
+    border-bottom: 1px solid var(--color-theme)
+
+    &:hover
+        border-bottom-color: var(--color-front)
+
+.secondary
+    border-bottom-color: var(--color-subtle-dark)
+
+    &:hover
+        border-bottom-color: var(--color-front)
+
+.hidden
+    border-bottom: 0
diff --git a/src/styles/login.module.sass b/src/styles/login.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..b79aeaa909d06750ab81e4686f40e075f0d8f2f9
--- /dev/null
+++ b/src/styles/login.module.sass
@@ -0,0 +1,18 @@
+.button
+    align-items: center;
+    background: #077BF1;
+    white-space: nowrap;
+    color: #fff;
+    padding: 10px 20px;
+    font-size: 16px;
+    outline: none;
+    border: none;
+    min-width: 100px;
+    cursor: pointer;
+    text-decoration: none;
+    transition: 0.3s !important;
+    border-radius: 50px;
+
+    &:hover
+        background: #F26A2E ;
+        transform: translateY(-2px);
diff --git a/src/styles/multi-choice.module.sass b/src/styles/multi-choice.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..3b70c64a8ba32a043db47f63066d320754f82f7a
--- /dev/null
+++ b/src/styles/multi-choice.module.sass
@@ -0,0 +1,37 @@
+
+.option
+    margin-bottom: 0.5rem
+    margin-left: 1rem
+    display: flex
+    flex-direction: row;
+
+.input
+   margin-right: 10px
+   //margin-top: 0.5rem
+   width: 13px
+   height: 26.4px
+
+.label
+    cursor: pointer
+
+.answer
+    padding: 2rem
+    border-radius: var(--border-radius)
+    background: var(--color-incorrect-light)
+    margin-bottom: 2rem
+
+    p
+        margin-bottom: 0
+        display: inline
+
+.correct
+    background: var(--color-correct-light)
+
+.partial
+    background: var(--color-partial-light)  
+
+.answer-label
+    color: var(--color-incorrect-dark)
+
+.answer-label-correct
+    color: var(--color-correct-dark)
diff --git a/src/styles/navigation.module.sass b/src/styles/navigation.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..4ac0ab4df4cb428e36df17e58d657324d0487476
--- /dev/null
+++ b/src/styles/navigation.module.sass
@@ -0,0 +1,10 @@
+.nav
+    background: var(--color-secondary-back)
+    padding: 1rem 2rem
+    color: var(--color-theme)
+    border-radius: var(--border-radius)
+    max-width: 100%
+
+.nav
+    a
+        border: 0
\ No newline at end of file
diff --git a/src/styles/question.module.sass b/src/styles/question.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..577267a64eec363e410c89fd622e678aa574a496
--- /dev/null
+++ b/src/styles/question.module.sass
@@ -0,0 +1,33 @@
+
+
+.container
+    width: 100%
+    border-top: 1px solid var(--color-subtle-medium);
+    padding: 0px 0px 0px 0px;
+
+
+
+.question
+    background-color: white;
+    width: 100%
+    display: flex;
+    justify-content: space-between;
+    position: relative;
+    cursor: pointer;
+    padding: 0.5rem 0;
+
+.questiontitle
+    font-weight: 400;
+
+
+.answer
+    font-weight: 300;
+
+.toggleicon
+    display: flex;
+    align-items: center;
+    font-size: 20px;
+    cursor: pointer;
+    z-index: 1;
+    color: #888;
+
diff --git a/src/styles/rawinput.module.sass b/src/styles/rawinput.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..5b2a1cc3db368bd74deff7002ab50263bbfd302d
--- /dev/null
+++ b/src/styles/rawinput.module.sass
@@ -0,0 +1,20 @@
+table td, table th
+    vertical-align: inherit
+
+.answer-input
+    height: 34px
+    background-color: var(--color-subtle-light)
+    border-radius: var(--border-radius)
+    border: solid 1px var(--color-subtle-dark)
+    color: var(--color-front)
+    padding: 0.75rem 1rem
+    font-family: var(--font-primary)
+    font-size: var(--font-size-sm)
+    // width: 100%
+    box-shadow: 0 0 3px var(--color-subtle-medium)
+
+.correct
+    background-color: var(--color-correct-dark)
+
+.incorrect
+    background-color: var(--color-incorrect-dark)
\ No newline at end of file
diff --git a/src/styles/reveal.css b/src/styles/reveal.css
new file mode 100644
index 0000000000000000000000000000000000000000..53e1697cdb5aa905c897c9b7df6de7b9279deae4
--- /dev/null
+++ b/src/styles/reveal.css
@@ -0,0 +1,1931 @@
+/*!
+ * reveal.js
+ * http://revealjs.com
+ * MIT licensed
+ *
+ * Copyright (C) 2019 Hakim El Hattab, http://hakim.se
+ */
+
+/*********************************************
+ * VIEW FRAGMENTS
+ *********************************************/
+.reveal .slides section .fragment {
+    opacity: 0;
+    visibility: hidden;
+    transition: all 0.2s ease;
+}
+.reveal .slides section .fragment.visible {
+    opacity: 1;
+    visibility: inherit;
+}
+
+.reveal .slides section .fragment.grow {
+    opacity: 1;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.grow.visible {
+    -webkit-transform: scale(1.3);
+    transform: scale(1.3);
+}
+
+.reveal .slides section .fragment.shrink {
+    opacity: 1;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.shrink.visible {
+    -webkit-transform: scale(0.7);
+    transform: scale(0.7);
+}
+
+.reveal .slides section .fragment.zoom-in {
+    -webkit-transform: scale(0.1);
+    transform: scale(0.1);
+}
+.reveal .slides section .fragment.zoom-in.visible {
+    -webkit-transform: none;
+    transform: none;
+}
+
+.reveal .slides section .fragment.fade-out {
+    opacity: 1;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.fade-out.visible {
+    opacity: 0;
+    visibility: hidden;
+}
+
+.reveal .slides section .fragment.semi-fade-out {
+    opacity: 1;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.semi-fade-out.visible {
+    opacity: 0.5;
+    visibility: inherit;
+}
+
+.reveal .slides section .fragment.strike {
+    opacity: 1;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.strike.visible {
+    text-decoration: line-through;
+}
+
+.reveal .slides section .fragment.fade-up {
+    -webkit-transform: translate(0, 20%);
+    transform: translate(0, 20%);
+}
+.reveal .slides section .fragment.fade-up.visible {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+}
+
+.reveal .slides section .fragment.fade-down {
+    -webkit-transform: translate(0, -20%);
+    transform: translate(0, -20%);
+}
+.reveal .slides section .fragment.fade-down.visible {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+}
+
+.reveal .slides section .fragment.fade-right {
+    -webkit-transform: translate(-20%, 0);
+    transform: translate(-20%, 0);
+}
+.reveal .slides section .fragment.fade-right.visible {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+}
+
+.reveal .slides section .fragment.fade-left {
+    -webkit-transform: translate(20%, 0);
+    transform: translate(20%, 0);
+}
+.reveal .slides section .fragment.fade-left.visible {
+    -webkit-transform: translate(0, 0);
+    transform: translate(0, 0);
+}
+
+.reveal .slides section .fragment.fade-in-then-out,
+.reveal .slides section .fragment.current-visible {
+    opacity: 0;
+    visibility: hidden;
+}
+.reveal .slides section .fragment.fade-in-then-out.current-fragment,
+.reveal .slides section .fragment.current-visible.current-fragment {
+    opacity: 1;
+    visibility: inherit;
+}
+
+.reveal .slides section .fragment.fade-in-then-semi-out {
+    opacity: 0;
+    visibility: hidden;
+}
+.reveal .slides section .fragment.fade-in-then-semi-out.visible {
+    opacity: 0.5;
+    visibility: inherit;
+}
+.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment {
+    opacity: 1;
+    visibility: inherit;
+}
+
+.reveal .slides section .fragment.highlight-red,
+.reveal .slides section .fragment.highlight-current-red,
+.reveal .slides section .fragment.highlight-green,
+.reveal .slides section .fragment.highlight-current-green,
+.reveal .slides section .fragment.highlight-blue,
+.reveal .slides section .fragment.highlight-current-blue {
+    opacity: 1;
+    visibility: inherit;
+}
+
+.reveal .slides section .fragment.highlight-red.visible {
+    color: #ff2c2d;
+}
+
+.reveal .slides section .fragment.highlight-green.visible {
+    color: #17ff2e;
+}
+
+.reveal .slides section .fragment.highlight-blue.visible {
+    color: #1b91ff;
+}
+
+.reveal .slides section .fragment.highlight-current-red.current-fragment {
+    color: #ff2c2d;
+}
+
+.reveal .slides section .fragment.highlight-current-green.current-fragment {
+    color: #17ff2e;
+}
+
+.reveal .slides section .fragment.highlight-current-blue.current-fragment {
+    color: #1b91ff;
+}
+
+/*********************************************
+ * DEFAULT ELEMENT STYLES
+ *********************************************/
+/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */
+.reveal:after {
+    content: '';
+    font-style: italic;
+}
+
+.reveal iframe {
+    z-index: 1;
+}
+
+/** Prevents layering issues in certain browser/transition combinations */
+.reveal a {
+    position: relative;
+}
+
+.reveal .stretch {
+    max-width: none;
+    max-height: none;
+}
+
+.reveal pre.stretch code {
+    height: 100%;
+    max-height: 100%;
+    box-sizing: border-box;
+}
+
+/*********************************************
+ * CONTROLS
+ *********************************************/
+@-webkit-keyframes bounce-right {
+    0%,
+    10%,
+    25%,
+    40%,
+    50% {
+        -webkit-transform: translateX(0);
+        transform: translateX(0);
+    }
+    20% {
+        -webkit-transform: translateX(10px);
+        transform: translateX(10px);
+    }
+    30% {
+        -webkit-transform: translateX(-5px);
+        transform: translateX(-5px);
+    }
+}
+@keyframes bounce-right {
+    0%,
+    10%,
+    25%,
+    40%,
+    50% {
+        -webkit-transform: translateX(0);
+        transform: translateX(0);
+    }
+    20% {
+        -webkit-transform: translateX(10px);
+        transform: translateX(10px);
+    }
+    30% {
+        -webkit-transform: translateX(-5px);
+        transform: translateX(-5px);
+    }
+}
+
+@-webkit-keyframes bounce-down {
+    0%,
+    10%,
+    25%,
+    40%,
+    50% {
+        -webkit-transform: translateY(0);
+        transform: translateY(0);
+    }
+    20% {
+        -webkit-transform: translateY(10px);
+        transform: translateY(10px);
+    }
+    30% {
+        -webkit-transform: translateY(-5px);
+        transform: translateY(-5px);
+    }
+}
+
+@keyframes bounce-down {
+    0%,
+    10%,
+    25%,
+    40%,
+    50% {
+        -webkit-transform: translateY(0);
+        transform: translateY(0);
+    }
+    20% {
+        -webkit-transform: translateY(10px);
+        transform: translateY(10px);
+    }
+    30% {
+        -webkit-transform: translateY(-5px);
+        transform: translateY(-5px);
+    }
+}
+
+.reveal .controls {
+    display: none;
+    position: absolute;
+    top: auto;
+    bottom: 12px;
+    right: 12px;
+    left: auto;
+    z-index: 1;
+    color: #000;
+    pointer-events: none;
+    font-size: 10px;
+}
+.reveal .controls button {
+    position: absolute;
+    padding: 0;
+    background-color: transparent;
+    border: 0;
+    outline: 0;
+    cursor: pointer;
+    color: currentColor;
+    -webkit-transform: scale(0.9999);
+    transform: scale(0.9999);
+    transition: color 0.2s ease, opacity 0.2s ease, -webkit-transform 0.2s ease;
+    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
+    z-index: 2;
+    pointer-events: auto;
+    font-size: inherit;
+    visibility: hidden;
+    opacity: 0;
+    -webkit-appearance: none;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.reveal .controls .controls-arrow:before,
+.reveal .controls .controls-arrow:after {
+    content: '';
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 2.6em;
+    height: 0.5em;
+    border-radius: 0.25em;
+    background-color: currentColor;
+    transition: all 0.15s ease, background-color 0.8s ease;
+    -webkit-transform-origin: 0.2em 50%;
+    transform-origin: 0.2em 50%;
+    will-change: transform;
+}
+.reveal .controls .controls-arrow {
+    position: relative;
+    width: 3.6em;
+    height: 3.6em;
+}
+.reveal .controls .controls-arrow:before {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
+}
+.reveal .controls .controls-arrow:after {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
+}
+.reveal .controls .controls-arrow:hover:before {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(40deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(40deg);
+}
+.reveal .controls .controls-arrow:hover:after {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-40deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(-40deg);
+}
+.reveal .controls .controls-arrow:active:before {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(36deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(36deg);
+}
+.reveal .controls .controls-arrow:active:after {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-36deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(-36deg);
+}
+.reveal .controls .navigate-left {
+    right: 6.4em;
+    bottom: 3.2em;
+    -webkit-transform: translateX(-10px);
+    transform: translateX(-10px);
+}
+.reveal .controls .navigate-right {
+    right: 0;
+    bottom: 3.2em;
+    -webkit-transform: translateX(10px);
+    transform: translateX(10px);
+}
+.reveal .controls .navigate-right .controls-arrow {
+    -webkit-transform: rotate(180deg);
+    transform: rotate(180deg);
+}
+.reveal .controls .navigate-right.highlight {
+    -webkit-animation: bounce-right 2s 50 both ease-out;
+    animation: bounce-right 2s 50 both ease-out;
+}
+.reveal .controls .navigate-up {
+    right: 3.2em;
+    bottom: 6.4em;
+    -webkit-transform: translateY(-10px);
+    transform: translateY(-10px);
+}
+.reveal .controls .navigate-up .controls-arrow {
+    -webkit-transform: rotate(90deg);
+    transform: rotate(90deg);
+}
+.reveal .controls .navigate-down {
+    right: 3.2em;
+    bottom: 0;
+    -webkit-transform: translateY(10px);
+    transform: translateY(10px);
+}
+.reveal .controls .navigate-down .controls-arrow {
+    -webkit-transform: rotate(-90deg);
+    transform: rotate(-90deg);
+}
+.reveal .controls .navigate-down.highlight {
+    -webkit-animation: bounce-down 2s 50 both ease-out;
+    animation: bounce-down 2s 50 both ease-out;
+}
+.reveal .controls[data-controls-back-arrows='faded'] .navigate-left.enabled,
+.reveal .controls[data-controls-back-arrows='faded'] .navigate-up.enabled {
+    opacity: 0.3;
+}
+.reveal .controls[data-controls-back-arrows='faded'] .navigate-left.enabled:hover,
+.reveal .controls[data-controls-back-arrows='faded'] .navigate-up.enabled:hover {
+    opacity: 1;
+}
+.reveal .controls[data-controls-back-arrows='hidden'] .navigate-left.enabled,
+.reveal .controls[data-controls-back-arrows='hidden'] .navigate-up.enabled {
+    opacity: 0;
+    visibility: hidden;
+}
+.reveal .controls .enabled {
+    visibility: visible;
+    opacity: 0.9;
+    cursor: pointer;
+    -webkit-transform: none;
+    transform: none;
+}
+.reveal .controls .enabled.fragmented {
+    opacity: 0.5;
+}
+.reveal .controls .enabled:hover,
+.reveal .controls .enabled.fragmented:hover {
+    opacity: 1;
+}
+
+.reveal[data-navigation-mode='linear'].has-horizontal-slides .navigate-up,
+.reveal[data-navigation-mode='linear'].has-horizontal-slides .navigate-down {
+    display: none;
+}
+
+.reveal[data-navigation-mode='linear'].has-horizontal-slides .navigate-left,
+.reveal:not(.has-vertical-slides) .controls .navigate-left {
+    bottom: 1.4em;
+    right: 5.5em;
+}
+
+.reveal[data-navigation-mode='linear'].has-horizontal-slides .navigate-right,
+.reveal:not(.has-vertical-slides) .controls .navigate-right {
+    bottom: 1.4em;
+    right: 0.5em;
+}
+
+.reveal:not(.has-horizontal-slides) .controls .navigate-up {
+    right: 1.4em;
+    bottom: 5em;
+}
+
+.reveal:not(.has-horizontal-slides) .controls .navigate-down {
+    right: 1.4em;
+    bottom: 0.5em;
+}
+
+.reveal.has-dark-background .controls {
+    color: #fff;
+}
+
+.reveal.has-light-background .controls {
+    color: #000;
+}
+
+.reveal.no-hover .controls .controls-arrow:hover:before,
+.reveal.no-hover .controls .controls-arrow:active:before {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
+}
+
+.reveal.no-hover .controls .controls-arrow:hover:after,
+.reveal.no-hover .controls .controls-arrow:active:after {
+    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
+    transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
+}
+
+@media screen and (min-width: 500px) {
+    .reveal .controls[data-controls-layout='edges'] {
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0;
+    }
+    .reveal .controls[data-controls-layout='edges'] .navigate-left,
+    .reveal .controls[data-controls-layout='edges'] .navigate-right,
+    .reveal .controls[data-controls-layout='edges'] .navigate-up,
+    .reveal .controls[data-controls-layout='edges'] .navigate-down {
+        bottom: auto;
+        right: auto;
+    }
+    .reveal .controls[data-controls-layout='edges'] .navigate-left {
+        top: 50%;
+        left: 8px;
+        margin-top: -1.8em;
+    }
+    .reveal .controls[data-controls-layout='edges'] .navigate-right {
+        top: 50%;
+        right: 8px;
+        margin-top: -1.8em;
+    }
+    .reveal .controls[data-controls-layout='edges'] .navigate-up {
+        top: 8px;
+        left: 50%;
+        margin-left: -1.8em;
+    }
+    .reveal .controls[data-controls-layout='edges'] .navigate-down {
+        bottom: 8px;
+        left: 50%;
+        margin-left: -1.8em;
+    }
+}
+
+/*********************************************
+ * PROGRESS BAR
+ *********************************************/
+.reveal .progress {
+    position: absolute;
+    display: none;
+    height: 3px;
+    width: 100%;
+    bottom: 0;
+    left: 0;
+    z-index: 10;
+    background-color: rgba(0, 0, 0, 0.2);
+    color: #fff;
+}
+
+.reveal .progress:after {
+    content: '';
+    display: block;
+    position: absolute;
+    height: 10px;
+    width: 100%;
+    top: -10px;
+}
+
+.reveal .progress span {
+    display: block;
+    height: 100%;
+    width: 0px;
+    background-color: currentColor;
+    transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+}
+
+/*********************************************
+ * SLIDE NUMBER
+ *********************************************/
+.reveal .slide-number {
+    position: absolute;
+    display: block;
+    right: 8px;
+    bottom: 8px;
+    z-index: 31;
+    font-family: Helvetica, sans-serif;
+    font-size: 12px;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(0, 0, 0, 0.4);
+    padding: 5px;
+}
+
+.reveal .slide-number a {
+    color: currentColor;
+}
+
+.reveal .slide-number-delimiter {
+    margin: 0 3px;
+}
+
+/*********************************************
+ * SLIDES
+ *********************************************/
+.reveal {
+    position: relative;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    -ms-touch-action: pinch-zoom;
+    touch-action: pinch-zoom;
+}
+
+.reveal .slides {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    margin: auto;
+    pointer-events: none;
+    overflow: visible;
+    z-index: 1;
+    text-align: center;
+    -webkit-perspective: 600px;
+    perspective: 600px;
+    -webkit-perspective-origin: 50% 40%;
+    perspective-origin: 50% 40%;
+}
+
+.reveal .slides > section {
+    -webkit-perspective: 600px;
+    perspective: 600px;
+}
+
+.reveal .slides > section,
+.reveal .slides > section > section {
+    display: none;
+    position: absolute;
+    width: 100%;
+    padding: 20px 0px;
+    pointer-events: auto;
+    z-index: 10;
+    -webkit-transform-style: flat;
+    transform-style: flat;
+    transition: -webkit-transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        -webkit-transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+    transition: transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985),
+        opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+}
+
+/* Global transition speed settings */
+.reveal[data-transition-speed='fast'] .slides section {
+    transition-duration: 400ms;
+}
+
+.reveal[data-transition-speed='slow'] .slides section {
+    transition-duration: 1200ms;
+}
+
+/* Slide-specific transition speed overrides */
+.reveal .slides section[data-transition-speed='fast'] {
+    transition-duration: 400ms;
+}
+
+.reveal .slides section[data-transition-speed='slow'] {
+    transition-duration: 1200ms;
+}
+
+.reveal .slides > section.stack {
+    padding-top: 0;
+    padding-bottom: 0;
+    pointer-events: none;
+    height: 100%;
+}
+
+.reveal .slides > section.present,
+.reveal .slides > section > section.present {
+    display: block;
+    z-index: 11;
+    opacity: 1;
+}
+
+.reveal .slides > section:empty,
+.reveal .slides > section > section:empty,
+.reveal .slides > section[data-background-interactive],
+.reveal .slides > section > section[data-background-interactive] {
+    pointer-events: none;
+}
+
+.reveal.center,
+.reveal.center .slides,
+.reveal.center .slides section {
+    min-height: 0 !important;
+}
+
+/* Don't allow interaction with invisible slides */
+.reveal .slides > section.future,
+.reveal .slides > section > section.future,
+.reveal .slides > section.past,
+.reveal .slides > section > section.past {
+    pointer-events: none;
+}
+
+.reveal.overview .slides > section,
+.reveal.overview .slides > section > section {
+    pointer-events: auto;
+}
+
+.reveal .slides > section.past,
+.reveal .slides > section.future,
+.reveal .slides > section > section.past,
+.reveal .slides > section > section.future {
+    opacity: 0;
+}
+
+/*********************************************
+ * Mixins for readability of transitions
+ *********************************************/
+/*********************************************
+ * SLIDE TRANSITION
+ * Aliased 'linear' for backwards compatibility
+ *********************************************/
+.reveal.slide section {
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+}
+
+.reveal .slides > section[data-transition='slide'].past,
+.reveal .slides > section[data-transition~='slide-out'].past,
+.reveal.slide .slides > section:not([data-transition]).past {
+    -webkit-transform: translate(-150%, 0);
+    transform: translate(-150%, 0);
+}
+
+.reveal .slides > section[data-transition='slide'].future,
+.reveal .slides > section[data-transition~='slide-in'].future,
+.reveal.slide .slides > section:not([data-transition]).future {
+    -webkit-transform: translate(150%, 0);
+    transform: translate(150%, 0);
+}
+
+.reveal .slides > section > section[data-transition='slide'].past,
+.reveal .slides > section > section[data-transition~='slide-out'].past,
+.reveal.slide .slides > section > section:not([data-transition]).past {
+    -webkit-transform: translate(0, -150%);
+    transform: translate(0, -150%);
+}
+
+.reveal .slides > section > section[data-transition='slide'].future,
+.reveal .slides > section > section[data-transition~='slide-in'].future,
+.reveal.slide .slides > section > section:not([data-transition]).future {
+    -webkit-transform: translate(0, 150%);
+    transform: translate(0, 150%);
+}
+
+.reveal.linear section {
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+}
+
+.reveal .slides > section[data-transition='linear'].past,
+.reveal .slides > section[data-transition~='linear-out'].past,
+.reveal.linear .slides > section:not([data-transition]).past {
+    -webkit-transform: translate(-150%, 0);
+    transform: translate(-150%, 0);
+}
+
+.reveal .slides > section[data-transition='linear'].future,
+.reveal .slides > section[data-transition~='linear-in'].future,
+.reveal.linear .slides > section:not([data-transition]).future {
+    -webkit-transform: translate(150%, 0);
+    transform: translate(150%, 0);
+}
+
+.reveal .slides > section > section[data-transition='linear'].past,
+.reveal .slides > section > section[data-transition~='linear-out'].past,
+.reveal.linear .slides > section > section:not([data-transition]).past {
+    -webkit-transform: translate(0, -150%);
+    transform: translate(0, -150%);
+}
+
+.reveal .slides > section > section[data-transition='linear'].future,
+.reveal .slides > section > section[data-transition~='linear-in'].future,
+.reveal.linear .slides > section > section:not([data-transition]).future {
+    -webkit-transform: translate(0, 150%);
+    transform: translate(0, 150%);
+}
+
+/*********************************************
+ * CONVEX TRANSITION
+ * Aliased 'default' for backwards compatibility
+ *********************************************/
+.reveal .slides section[data-transition='default'].stack,
+.reveal.default .slides section.stack {
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+}
+
+.reveal .slides > section[data-transition='default'].past,
+.reveal .slides > section[data-transition~='default-out'].past,
+.reveal.default .slides > section:not([data-transition]).past {
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+}
+
+.reveal .slides > section[data-transition='default'].future,
+.reveal .slides > section[data-transition~='default-in'].future,
+.reveal.default .slides > section:not([data-transition]).future {
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+}
+
+.reveal .slides > section > section[data-transition='default'].past,
+.reveal .slides > section > section[data-transition~='default-out'].past,
+.reveal.default .slides > section > section:not([data-transition]).past {
+    -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
+    transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
+}
+
+.reveal .slides > section > section[data-transition='default'].future,
+.reveal .slides > section > section[data-transition~='default-in'].future,
+.reveal.default .slides > section > section:not([data-transition]).future {
+    -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
+    transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
+}
+
+.reveal .slides section[data-transition='convex'].stack,
+.reveal.convex .slides section.stack {
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+}
+
+.reveal .slides > section[data-transition='convex'].past,
+.reveal .slides > section[data-transition~='convex-out'].past,
+.reveal.convex .slides > section:not([data-transition]).past {
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+}
+
+.reveal .slides > section[data-transition='convex'].future,
+.reveal .slides > section[data-transition~='convex-in'].future,
+.reveal.convex .slides > section:not([data-transition]).future {
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+}
+
+.reveal .slides > section > section[data-transition='convex'].past,
+.reveal .slides > section > section[data-transition~='convex-out'].past,
+.reveal.convex .slides > section > section:not([data-transition]).past {
+    -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
+    transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
+}
+
+.reveal .slides > section > section[data-transition='convex'].future,
+.reveal .slides > section > section[data-transition~='convex-in'].future,
+.reveal.convex .slides > section > section:not([data-transition]).future {
+    -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
+    transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
+}
+
+/*********************************************
+ * CONCAVE TRANSITION
+ *********************************************/
+.reveal .slides section[data-transition='concave'].stack,
+.reveal.concave .slides section.stack {
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+}
+
+.reveal .slides > section[data-transition='concave'].past,
+.reveal .slides > section[data-transition~='concave-out'].past,
+.reveal.concave .slides > section:not([data-transition]).past {
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
+}
+
+.reveal .slides > section[data-transition='concave'].future,
+.reveal .slides > section[data-transition~='concave-in'].future,
+.reveal.concave .slides > section:not([data-transition]).future {
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
+}
+
+.reveal .slides > section > section[data-transition='concave'].past,
+.reveal .slides > section > section[data-transition~='concave-out'].past,
+.reveal.concave .slides > section > section:not([data-transition]).past {
+    -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
+    transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
+}
+
+.reveal .slides > section > section[data-transition='concave'].future,
+.reveal .slides > section > section[data-transition~='concave-in'].future,
+.reveal.concave .slides > section > section:not([data-transition]).future {
+    -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
+    transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
+}
+
+/*********************************************
+ * ZOOM TRANSITION
+ *********************************************/
+.reveal .slides section[data-transition='zoom'],
+.reveal.zoom .slides section:not([data-transition]) {
+    transition-timing-function: ease;
+}
+
+.reveal .slides > section[data-transition='zoom'].past,
+.reveal .slides > section[data-transition~='zoom-out'].past,
+.reveal.zoom .slides > section:not([data-transition]).past {
+    visibility: hidden;
+    -webkit-transform: scale(16);
+    transform: scale(16);
+}
+
+.reveal .slides > section[data-transition='zoom'].future,
+.reveal .slides > section[data-transition~='zoom-in'].future,
+.reveal.zoom .slides > section:not([data-transition]).future {
+    visibility: hidden;
+    -webkit-transform: scale(0.2);
+    transform: scale(0.2);
+}
+
+.reveal .slides > section > section[data-transition='zoom'].past,
+.reveal .slides > section > section[data-transition~='zoom-out'].past,
+.reveal.zoom .slides > section > section:not([data-transition]).past {
+    -webkit-transform: scale(16);
+    transform: scale(16);
+}
+
+.reveal .slides > section > section[data-transition='zoom'].future,
+.reveal .slides > section > section[data-transition~='zoom-in'].future,
+.reveal.zoom .slides > section > section:not([data-transition]).future {
+    -webkit-transform: scale(0.2);
+    transform: scale(0.2);
+}
+
+/*********************************************
+ * CUBE TRANSITION
+ *
+ * WARNING:
+ * this is deprecated and will be removed in a
+ * future version.
+ *********************************************/
+.reveal.cube .slides {
+    -webkit-perspective: 1300px;
+    perspective: 1300px;
+}
+
+.reveal.cube .slides section {
+    padding: 30px;
+    min-height: 700px;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    box-sizing: border-box;
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+}
+
+.reveal.center.cube .slides section {
+    min-height: 0;
+}
+
+.reveal.cube .slides section:not(.stack):before {
+    content: '';
+    position: absolute;
+    display: block;
+    width: 100%;
+    height: 100%;
+    left: 0;
+    top: 0;
+    background: rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+    -webkit-transform: translateZ(-20px);
+    transform: translateZ(-20px);
+}
+
+.reveal.cube .slides section:not(.stack):after {
+    content: '';
+    position: absolute;
+    display: block;
+    width: 90%;
+    height: 30px;
+    left: 5%;
+    bottom: 0;
+    background: none;
+    z-index: 1;
+    border-radius: 4px;
+    box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
+    -webkit-transform: translateZ(-90px) rotateX(65deg);
+    transform: translateZ(-90px) rotateX(65deg);
+}
+
+.reveal.cube .slides > section.stack {
+    padding: 0;
+    background: none;
+}
+
+.reveal.cube .slides > section.past {
+    -webkit-transform-origin: 100% 0%;
+    transform-origin: 100% 0%;
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
+    transform: translate3d(-100%, 0, 0) rotateY(-90deg);
+}
+
+.reveal.cube .slides > section.future {
+    -webkit-transform-origin: 0% 0%;
+    transform-origin: 0% 0%;
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
+    transform: translate3d(100%, 0, 0) rotateY(90deg);
+}
+
+.reveal.cube .slides > section > section.past {
+    -webkit-transform-origin: 0% 100%;
+    transform-origin: 0% 100%;
+    -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
+    transform: translate3d(0, -100%, 0) rotateX(90deg);
+}
+
+.reveal.cube .slides > section > section.future {
+    -webkit-transform-origin: 0% 0%;
+    transform-origin: 0% 0%;
+    -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
+    transform: translate3d(0, 100%, 0) rotateX(-90deg);
+}
+
+/*********************************************
+ * PAGE TRANSITION
+ *
+ * WARNING:
+ * this is deprecated and will be removed in a
+ * future version.
+ *********************************************/
+.reveal.page .slides {
+    -webkit-perspective-origin: 0% 50%;
+    perspective-origin: 0% 50%;
+    -webkit-perspective: 3000px;
+    perspective: 3000px;
+}
+
+.reveal.page .slides section {
+    padding: 30px;
+    min-height: 700px;
+    box-sizing: border-box;
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+}
+
+.reveal.page .slides section.past {
+    z-index: 12;
+}
+
+.reveal.page .slides section:not(.stack):before {
+    content: '';
+    position: absolute;
+    display: block;
+    width: 100%;
+    height: 100%;
+    left: 0;
+    top: 0;
+    background: rgba(0, 0, 0, 0.1);
+    -webkit-transform: translateZ(-20px);
+    transform: translateZ(-20px);
+}
+
+.reveal.page .slides section:not(.stack):after {
+    content: '';
+    position: absolute;
+    display: block;
+    width: 90%;
+    height: 30px;
+    left: 5%;
+    bottom: 0;
+    background: none;
+    z-index: 1;
+    border-radius: 4px;
+    box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
+    -webkit-transform: translateZ(-90px) rotateX(65deg);
+}
+
+.reveal.page .slides > section.stack {
+    padding: 0;
+    background: none;
+}
+
+.reveal.page .slides > section.past {
+    -webkit-transform-origin: 0% 0%;
+    transform-origin: 0% 0%;
+    -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
+    transform: translate3d(-40%, 0, 0) rotateY(-80deg);
+}
+
+.reveal.page .slides > section.future {
+    -webkit-transform-origin: 100% 0%;
+    transform-origin: 100% 0%;
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+}
+
+.reveal.page .slides > section > section.past {
+    -webkit-transform-origin: 0% 0%;
+    transform-origin: 0% 0%;
+    -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
+    transform: translate3d(0, -40%, 0) rotateX(80deg);
+}
+
+.reveal.page .slides > section > section.future {
+    -webkit-transform-origin: 0% 100%;
+    transform-origin: 0% 100%;
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+}
+
+/*********************************************
+ * FADE TRANSITION
+ *********************************************/
+.reveal .slides section[data-transition='fade'],
+.reveal.fade .slides section:not([data-transition]),
+.reveal.fade .slides > section > section:not([data-transition]) {
+    -webkit-transform: none;
+    transform: none;
+    transition: opacity 0.5s;
+}
+
+.reveal.fade.overview .slides section,
+.reveal.fade.overview .slides > section > section {
+    transition: none;
+}
+
+/*********************************************
+ * NO TRANSITION
+ *********************************************/
+.reveal .slides section[data-transition='none'],
+.reveal.none .slides section:not([data-transition]) {
+    -webkit-transform: none;
+    transform: none;
+    transition: none;
+}
+
+/*********************************************
+ * PAUSED MODE
+ *********************************************/
+.reveal .pause-overlay {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background: black;
+    visibility: hidden;
+    opacity: 0;
+    z-index: 100;
+    transition: all 1s ease;
+}
+
+.reveal .pause-overlay .resume-button {
+    position: absolute;
+    bottom: 20px;
+    right: 20px;
+    color: #ccc;
+    border-radius: 2px;
+    padding: 6px 14px;
+    border: 2px solid #ccc;
+    font-size: 16px;
+    background: transparent;
+    cursor: pointer;
+}
+.reveal .pause-overlay .resume-button:hover {
+    color: #fff;
+    border-color: #fff;
+}
+
+.reveal.paused .pause-overlay {
+    visibility: visible;
+    opacity: 1;
+}
+
+/*********************************************
+ * FALLBACK
+ *********************************************/
+.no-transforms {
+    overflow-y: auto;
+}
+
+.no-transforms .reveal {
+    overflow: visible;
+}
+
+.no-transforms .reveal .slides {
+    position: relative;
+    width: 80%;
+    max-width: 1280px;
+    height: auto;
+    top: 0;
+    margin: 0 auto;
+    text-align: center;
+}
+
+.no-transforms .reveal .controls,
+.no-transforms .reveal .progress {
+    display: none;
+}
+
+.no-transforms .reveal .slides section {
+    display: block;
+    opacity: 1;
+    position: relative;
+    height: auto;
+    min-height: 0;
+    top: 0;
+    left: 0;
+    margin: 10vh 0;
+    margin: 70px 0;
+    -webkit-transform: none;
+    transform: none;
+}
+
+.reveal .no-transition,
+.reveal .no-transition * {
+    transition: none !important;
+}
+
+/*********************************************
+ * PER-SLIDE BACKGROUNDS
+ *********************************************/
+.reveal .backgrounds {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    top: 0;
+    left: 0;
+    -webkit-perspective: 600px;
+    perspective: 600px;
+}
+
+.reveal .slide-background {
+    display: none;
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    opacity: 0;
+    visibility: hidden;
+    overflow: hidden;
+    background-color: rgba(0, 0, 0, 0);
+    transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+}
+
+.reveal .slide-background-content {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    background-position: 50% 50%;
+    background-repeat: no-repeat;
+    background-size: cover;
+}
+
+.reveal .slide-background.stack {
+    display: block;
+}
+
+.reveal .slide-background.present {
+    opacity: 1;
+    visibility: visible;
+    z-index: 2;
+}
+
+.print-pdf .reveal .slide-background {
+    opacity: 1 !important;
+    visibility: visible !important;
+}
+
+/* Video backgrounds */
+.reveal .slide-background video {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    max-width: none;
+    max-height: none;
+    top: 0;
+    left: 0;
+    -o-object-fit: cover;
+    object-fit: cover;
+}
+
+.reveal .slide-background[data-background-size='contain'] video {
+    -o-object-fit: contain;
+    object-fit: contain;
+}
+
+/* Immediate transition style */
+.reveal[data-background-transition='none'] > .backgrounds .slide-background,
+.reveal > .backgrounds .slide-background[data-background-transition='none'] {
+    transition: none;
+}
+
+/* Slide */
+.reveal[data-background-transition='slide'] > .backgrounds .slide-background,
+.reveal > .backgrounds .slide-background[data-background-transition='slide'] {
+    opacity: 1;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+}
+
+.reveal[data-background-transition='slide'] > .backgrounds .slide-background.past,
+.reveal > .backgrounds .slide-background.past[data-background-transition='slide'] {
+    -webkit-transform: translate(-100%, 0);
+    transform: translate(-100%, 0);
+}
+
+.reveal[data-background-transition='slide'] > .backgrounds .slide-background.future,
+.reveal > .backgrounds .slide-background.future[data-background-transition='slide'] {
+    -webkit-transform: translate(100%, 0);
+    transform: translate(100%, 0);
+}
+
+.reveal[data-background-transition='slide']
+    > .backgrounds
+    .slide-background
+    > .slide-background.past,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.past[data-background-transition='slide'] {
+    -webkit-transform: translate(0, -100%);
+    transform: translate(0, -100%);
+}
+
+.reveal[data-background-transition='slide']
+    > .backgrounds
+    .slide-background
+    > .slide-background.future,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.future[data-background-transition='slide'] {
+    -webkit-transform: translate(0, 100%);
+    transform: translate(0, 100%);
+}
+
+/* Convex */
+.reveal[data-background-transition='convex'] > .backgrounds .slide-background.past,
+.reveal > .backgrounds .slide-background.past[data-background-transition='convex'] {
+    opacity: 0;
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
+}
+
+.reveal[data-background-transition='convex'] > .backgrounds .slide-background.future,
+.reveal > .backgrounds .slide-background.future[data-background-transition='convex'] {
+    opacity: 0;
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
+}
+
+.reveal[data-background-transition='convex']
+    > .backgrounds
+    .slide-background
+    > .slide-background.past,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.past[data-background-transition='convex'] {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
+}
+
+.reveal[data-background-transition='convex']
+    > .backgrounds
+    .slide-background
+    > .slide-background.future,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.future[data-background-transition='convex'] {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
+}
+
+/* Concave */
+.reveal[data-background-transition='concave'] > .backgrounds .slide-background.past,
+.reveal > .backgrounds .slide-background.past[data-background-transition='concave'] {
+    opacity: 0;
+    -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
+}
+
+.reveal[data-background-transition='concave'] > .backgrounds .slide-background.future,
+.reveal > .backgrounds .slide-background.future[data-background-transition='concave'] {
+    opacity: 0;
+    -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
+}
+
+.reveal[data-background-transition='concave']
+    > .backgrounds
+    .slide-background
+    > .slide-background.past,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.past[data-background-transition='concave'] {
+    opacity: 0;
+    -webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
+    transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
+}
+
+.reveal[data-background-transition='concave']
+    > .backgrounds
+    .slide-background
+    > .slide-background.future,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.future[data-background-transition='concave'] {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
+    transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
+}
+
+/* Zoom */
+.reveal[data-background-transition='zoom'] > .backgrounds .slide-background,
+.reveal > .backgrounds .slide-background[data-background-transition='zoom'] {
+    transition-timing-function: ease;
+}
+
+.reveal[data-background-transition='zoom'] > .backgrounds .slide-background.past,
+.reveal > .backgrounds .slide-background.past[data-background-transition='zoom'] {
+    opacity: 0;
+    visibility: hidden;
+    -webkit-transform: scale(16);
+    transform: scale(16);
+}
+
+.reveal[data-background-transition='zoom'] > .backgrounds .slide-background.future,
+.reveal > .backgrounds .slide-background.future[data-background-transition='zoom'] {
+    opacity: 0;
+    visibility: hidden;
+    -webkit-transform: scale(0.2);
+    transform: scale(0.2);
+}
+
+.reveal[data-background-transition='zoom']
+    > .backgrounds
+    .slide-background
+    > .slide-background.past,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.past[data-background-transition='zoom'] {
+    opacity: 0;
+    visibility: hidden;
+    -webkit-transform: scale(16);
+    transform: scale(16);
+}
+
+.reveal[data-background-transition='zoom']
+    > .backgrounds
+    .slide-background
+    > .slide-background.future,
+.reveal
+    > .backgrounds
+    .slide-background
+    > .slide-background.future[data-background-transition='zoom'] {
+    opacity: 0;
+    visibility: hidden;
+    -webkit-transform: scale(0.2);
+    transform: scale(0.2);
+}
+
+/* Global transition speed settings */
+.reveal[data-transition-speed='fast'] > .backgrounds .slide-background {
+    transition-duration: 400ms;
+}
+
+.reveal[data-transition-speed='slow'] > .backgrounds .slide-background {
+    transition-duration: 1200ms;
+}
+
+/*********************************************
+ * OVERVIEW
+ *********************************************/
+.reveal.overview {
+    -webkit-perspective-origin: 50% 50%;
+    perspective-origin: 50% 50%;
+    -webkit-perspective: 700px;
+    perspective: 700px;
+}
+.reveal.overview .slides {
+    -moz-transform-style: preserve-3d;
+}
+.reveal.overview .slides section {
+    height: 100%;
+    top: 0 !important;
+    opacity: 1 !important;
+    overflow: hidden;
+    visibility: visible !important;
+    cursor: pointer;
+    box-sizing: border-box;
+}
+.reveal.overview .slides section:hover,
+.reveal.overview .slides section.present {
+    outline: 10px solid rgba(150, 150, 150, 0.4);
+    outline-offset: 10px;
+}
+.reveal.overview .slides section .fragment {
+    opacity: 1;
+    transition: none;
+}
+.reveal.overview .slides section:after,
+.reveal.overview .slides section:before {
+    display: none !important;
+}
+.reveal.overview .slides > section.stack {
+    padding: 0;
+    top: 0 !important;
+    background: none;
+    outline: none;
+    overflow: visible;
+}
+.reveal.overview .backgrounds {
+    -webkit-perspective: inherit;
+    perspective: inherit;
+    -moz-transform-style: preserve-3d;
+}
+.reveal.overview .backgrounds .slide-background {
+    opacity: 1;
+    visibility: visible;
+    outline: 10px solid rgba(150, 150, 150, 0.1);
+    outline-offset: 10px;
+}
+.reveal.overview .backgrounds .slide-background.stack {
+    overflow: visible;
+}
+
+.reveal.overview .slides section,
+.reveal.overview-deactivating .slides section {
+    transition: none;
+}
+
+.reveal.overview .backgrounds .slide-background,
+.reveal.overview-deactivating .backgrounds .slide-background {
+    transition: none;
+}
+
+/*********************************************
+ * RTL SUPPORT
+ *********************************************/
+.reveal.rtl .slides,
+.reveal.rtl .slides h1,
+.reveal.rtl .slides h2,
+.reveal.rtl .slides h3,
+.reveal.rtl .slides h4,
+.reveal.rtl .slides h5,
+.reveal.rtl .slides h6 {
+    direction: rtl;
+    font-family: sans-serif;
+}
+
+.reveal.rtl pre,
+.reveal.rtl code {
+    direction: ltr;
+}
+
+.reveal.rtl ol,
+.reveal.rtl ul {
+    text-align: right;
+}
+
+.reveal.rtl .progress span {
+    float: right;
+}
+
+/*********************************************
+ * PARALLAX BACKGROUND
+ *********************************************/
+.reveal.has-parallax-background .backgrounds {
+    transition: all 0.8s ease;
+}
+
+/* Global transition speed settings */
+.reveal.has-parallax-background[data-transition-speed='fast'] .backgrounds {
+    transition-duration: 400ms;
+}
+
+.reveal.has-parallax-background[data-transition-speed='slow'] .backgrounds {
+    transition-duration: 1200ms;
+}
+
+/*********************************************
+ * OVERLAY FOR LINK PREVIEWS AND HELP
+ *********************************************/
+.reveal > .overlay {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: 1000;
+    background: rgba(0, 0, 0, 0.9);
+    opacity: 0;
+    visibility: hidden;
+    transition: all 0.3s ease;
+}
+
+.reveal > .overlay.visible {
+    opacity: 1;
+    visibility: visible;
+}
+
+.reveal > .overlay .spinner {
+    position: absolute;
+    display: block;
+    top: 50%;
+    left: 50%;
+    width: 32px;
+    height: 32px;
+    margin: -16px 0 0 -16px;
+    z-index: 10;
+    background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
+    visibility: visible;
+    opacity: 0.6;
+    transition: all 0.3s ease;
+}
+
+.reveal > .overlay header {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    height: 40px;
+    z-index: 2;
+    border-bottom: 1px solid #222;
+}
+
+.reveal > .overlay header a {
+    display: inline-block;
+    width: 40px;
+    height: 40px;
+    line-height: 36px;
+    padding: 0 10px;
+    float: right;
+    opacity: 0.6;
+    box-sizing: border-box;
+}
+
+.reveal > .overlay header a:hover {
+    opacity: 1;
+}
+
+.reveal > .overlay header a .icon {
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background-position: 50% 50%;
+    background-size: 100%;
+    background-repeat: no-repeat;
+}
+
+.reveal > .overlay header a.close .icon {
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC);
+}
+
+.reveal > .overlay header a.external .icon {
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==);
+}
+
+.reveal > .overlay .viewport {
+    position: absolute;
+    display: -webkit-box;
+    display: -ms-flexbox;
+    display: flex;
+    top: 40px;
+    right: 0;
+    bottom: 0;
+    left: 0;
+}
+
+.reveal > .overlay.overlay-preview .viewport iframe {
+    width: 100%;
+    height: 100%;
+    max-width: 100%;
+    max-height: 100%;
+    border: 0;
+    opacity: 0;
+    visibility: hidden;
+    transition: all 0.3s ease;
+}
+
+.reveal > .overlay.overlay-preview.loaded .viewport iframe {
+    opacity: 1;
+    visibility: visible;
+}
+
+.reveal > .overlay.overlay-preview.loaded .viewport-inner {
+    position: absolute;
+    z-index: -1;
+    left: 0;
+    top: 45%;
+    width: 100%;
+    text-align: center;
+    letter-spacing: normal;
+}
+
+.reveal > .overlay.overlay-preview .x-frame-error {
+    opacity: 0;
+    transition: opacity 0.3s ease 0.3s;
+}
+
+.reveal > .overlay.overlay-preview.loaded .x-frame-error {
+    opacity: 1;
+}
+
+.reveal > .overlay.overlay-preview.loaded .spinner {
+    opacity: 0;
+    visibility: hidden;
+    -webkit-transform: scale(0.2);
+    transform: scale(0.2);
+}
+
+.reveal > .overlay.overlay-help .viewport {
+    overflow: auto;
+    color: #fff;
+}
+
+.reveal > .overlay.overlay-help .viewport .viewport-inner {
+    width: 600px;
+    margin: auto;
+    padding: 20px 20px 80px 20px;
+    text-align: center;
+    letter-spacing: normal;
+}
+
+.reveal > .overlay.overlay-help .viewport .viewport-inner .title {
+    font-size: 20px;
+}
+
+.reveal > .overlay.overlay-help .viewport .viewport-inner table {
+    border: 1px solid #fff;
+    border-collapse: collapse;
+    font-size: 16px;
+}
+
+.reveal > .overlay.overlay-help .viewport .viewport-inner table th,
+.reveal > .overlay.overlay-help .viewport .viewport-inner table td {
+    width: 200px;
+    padding: 14px;
+    border: 1px solid #fff;
+    vertical-align: middle;
+}
+
+.reveal > .overlay.overlay-help .viewport .viewport-inner table th {
+    padding-top: 20px;
+    padding-bottom: 20px;
+}
+
+/*********************************************
+ * PLAYBACK COMPONENT
+ *********************************************/
+.reveal .playback {
+    position: absolute;
+    left: 15px;
+    bottom: 20px;
+    z-index: 30;
+    cursor: pointer;
+    transition: all 400ms ease;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.reveal.overview .playback {
+    opacity: 0;
+    visibility: hidden;
+}
+
+/*********************************************
+ * CODE HIGHLGIHTING
+ *********************************************/
+.reveal .hljs table {
+    margin: initial;
+}
+
+.reveal .hljs-ln-code,
+.reveal .hljs-ln-numbers {
+    padding: 0;
+    border: 0;
+}
+
+.reveal .hljs-ln-numbers {
+    opacity: 0.6;
+    padding-right: 0.75em;
+    text-align: right;
+    vertical-align: top;
+}
+
+.reveal .hljs[data-line-numbers]:not([data-line-numbers='']) tr:not(.highlight-line) {
+    opacity: 0.4;
+}
+
+/*********************************************
+ * ROLLING LINKS
+ *********************************************/
+.reveal .roll {
+    display: inline-block;
+    line-height: 1.2;
+    overflow: hidden;
+    vertical-align: top;
+    -webkit-perspective: 400px;
+    perspective: 400px;
+    -webkit-perspective-origin: 50% 50%;
+    perspective-origin: 50% 50%;
+}
+
+.reveal .roll:hover {
+    background: none;
+    text-shadow: none;
+}
+
+.reveal .roll span {
+    display: block;
+    position: relative;
+    padding: 0 2px;
+    pointer-events: none;
+    transition: all 400ms ease;
+    -webkit-transform-origin: 50% 0%;
+    transform-origin: 50% 0%;
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+}
+
+.reveal .roll:hover span {
+    background: rgba(0, 0, 0, 0.5);
+    -webkit-transform: translate3d(0px, 0px, -45px) rotateX(90deg);
+    transform: translate3d(0px, 0px, -45px) rotateX(90deg);
+}
+
+.reveal .roll span:after {
+    content: attr(data-title);
+    display: block;
+    position: absolute;
+    left: 0;
+    top: 0;
+    padding: 0 2px;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    -webkit-transform-origin: 50% 0%;
+    transform-origin: 50% 0%;
+    -webkit-transform: translate3d(0px, 110%, 0px) rotateX(-90deg);
+    transform: translate3d(0px, 110%, 0px) rotateX(-90deg);
+}
+
+/*********************************************
+ * SPEAKER NOTES
+ *********************************************/
+.reveal aside.notes {
+    display: none;
+}
+
+.reveal .speaker-notes {
+    display: none;
+    position: absolute;
+    width: 33.3333333333%;
+    height: 100%;
+    top: 0;
+    left: 100%;
+    padding: 14px 18px 14px 18px;
+    z-index: 1;
+    font-size: 18px;
+    line-height: 1.4;
+    border: 1px solid rgba(0, 0, 0, 0.05);
+    color: #222;
+    background-color: #f5f5f5;
+    overflow: auto;
+    box-sizing: border-box;
+    text-align: left;
+    font-family: Helvetica, sans-serif;
+    -webkit-overflow-scrolling: touch;
+}
+.reveal .speaker-notes .notes-placeholder {
+    color: #ccc;
+    font-style: italic;
+}
+.reveal .speaker-notes:focus {
+    outline: none;
+}
+.reveal .speaker-notes:before {
+    content: 'Speaker notes';
+    display: block;
+    margin-bottom: 10px;
+    opacity: 0.5;
+}
+
+.reveal.show-notes {
+    max-width: 75%;
+    overflow: visible;
+}
+
+.reveal.show-notes .speaker-notes {
+    display: block;
+}
+
+@media screen and (min-width: 1600px) {
+    .reveal .speaker-notes {
+        font-size: 20px;
+    }
+}
+
+@media screen and (max-width: 1024px) {
+    .reveal.show-notes {
+        border-left: 0;
+        max-width: none;
+        max-height: 70%;
+        max-height: 70vh;
+        overflow: visible;
+    }
+    .reveal.show-notes .speaker-notes {
+        top: 100%;
+        left: 0;
+        width: 100%;
+        height: 42.8571428571%;
+        height: 30vh;
+        border: 0;
+    }
+}
+
+@media screen and (max-width: 600px) {
+    .reveal.show-notes {
+        max-height: 60%;
+        max-height: 60vh;
+    }
+    .reveal.show-notes .speaker-notes {
+        top: 100%;
+        height: 66.6666666667%;
+        height: 40vh;
+    }
+    .reveal .speaker-notes {
+        font-size: 14px;
+    }
+}
+
+/*********************************************
+ * ZOOM PLUGIN
+ *********************************************/
+.zoomed .reveal *,
+.zoomed .reveal *:before,
+.zoomed .reveal *:after {
+    -webkit-backface-visibility: visible !important;
+    backface-visibility: visible !important;
+}
+
+.zoomed .reveal .progress,
+.zoomed .reveal .controls {
+    opacity: 0;
+}
+
+.zoomed .reveal .roll span {
+    background: none;
+}
+
+.zoomed .reveal .roll span:after {
+    visibility: hidden;
+}
diff --git a/src/styles/select-choice.module.sass b/src/styles/select-choice.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..63616b3aa4847490827687a0475cf1ec126883b5
--- /dev/null
+++ b/src/styles/select-choice.module.sass
@@ -0,0 +1,7 @@
+.select-choice
+    width: 150px
+    border-radius:  var(--border-radius)
+    border: solid 1px var(--color-subtle-dark)
+    background-color: var(--color-theme)
+    height: 34px
+
diff --git a/src/styles/shared.scss b/src/styles/shared.scss
new file mode 100644
index 0000000000000000000000000000000000000000..092374f7a0494b3e73b687fa25648821a4918f14
--- /dev/null
+++ b/src/styles/shared.scss
@@ -0,0 +1 @@
+$breakpoint-tablet: 1200px
\ No newline at end of file
diff --git a/src/styles/short-answer.module.sass b/src/styles/short-answer.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..744c09de7e835eae8305fd6598b0a9b0f6414bdf
--- /dev/null
+++ b/src/styles/short-answer.module.sass
@@ -0,0 +1,13 @@
+.answer-input
+    height: 34px
+    background-color: var(--color-subtle-light)
+    border-radius: var(--border-radius)
+    border: solid 1px var(--color-subtle-dark)
+    color: var(--color-front)
+    padding: 0.75rem 1rem
+    font-family: var(--font-primary)
+    font-size: var(--font-size-sm)
+
+    margin-top: 3rem
+    margin-bottom: 2.25rem
+    box-shadow: 0 0 3px var(--color-subtle-medium)
diff --git a/src/styles/slides.module.sass b/src/styles/slides.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..06aac7f7e3965980e03de46c077b06aa98fc8ca9
--- /dev/null
+++ b/src/styles/slides.module.sass
@@ -0,0 +1,115 @@
+.root
+    position: relative
+    width: 100%
+    height: 600px
+    overflow: hidden
+
+.slides
+    text-align: left !important
+
+\:global
+    .reveal
+        h1
+            border-bottom: 1px solid var(--color-subtle-medium)
+
+        h1, h2, h3, pre, ul, ol
+            margin-bottom: 3rem
+
+        li
+            margin-left: 2rem
+
+        img
+            margin-bottom: 2rem
+
+        img[align]
+            padding: 2rem
+
+        td
+            border-bottom: 1px solid var(--color-subtle-medium)
+
+        th
+            border-bottom: 2px solid var(--color-theme)
+
+        a
+            color: var(--color-theme)
+            text-decoration: underline
+
+        section
+            height: 100%
+            padding: 1rem
+
+        section:first-child h1,
+        section:last-child h1
+            font-size: 4rem
+            border: 0
+            text-align: center
+            width: 100%
+            height: 100%
+            display: flex
+            align-items: center
+            justify-content: center
+
+        pre
+            margin-bottom: 1.5rem
+
+        pre code
+            width: 100%
+            display: block
+            padding: 0.5rem 1rem !important
+            border-radius: var(--border-radius)
+            background: var(--syntax-background)
+            color: var(--syntax-text)
+            position: relative
+
+        pre code.language-out
+            background: var(--syntax-text)
+            color: var(--syntax-background)
+
+            &:before
+                content: "Output"
+                position: absolute
+                top: 0.5rem
+                right: 1rem
+                font-family: var(--font-primary)
+                text-transform: uppercase
+                font-weight: bold
+                font-size: var(--font-size-xs)
+
+    .reveal.show-notes
+        max-width: 70%
+
+    .reveal .speaker-notes
+        background: var(--color-back)
+        border: 2px solid var(--color-subtle-medium)
+        color: var(--color-subtle-dark)
+        font-size: var(--font-size-xs)
+        font-family: var(--font-primary)
+        border-radius: var(--border-radius)
+        width: 40%
+        margin-left: 2.75%
+        height: 100%
+        overflow: auto
+
+        p
+            margin-bottom: 1.5rem
+
+        &:before
+            content: "Script"
+            font-weight: bold
+            color: inherit
+            opacity: 1
+
+    @media(max-width: 1024px)
+        .reveal.show-notes
+            max-width: 100%
+
+        .reveal.show-notes .speaker-notes
+            width: 100%
+            margin-left: 0
+            top: 125%
+            overflow: auto
+
+    @media(max-width: 600px)
+        .reveal.show-notes .speaker-notes
+            height: auto
+            top: 100%
diff --git a/src/styles/task-item.module.sass b/src/styles/task-item.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..a27e3cbc98ffc6a59f2874ee4caa0a55672c7336
--- /dev/null
+++ b/src/styles/task-item.module.sass
@@ -0,0 +1,53 @@
+.item
+    min-width: 400px;
+    margin: 0 auto 2.5rem;
+    border: 1px solid var(--color-subtle-medium);
+    border-radius: var(--border-radius);
+
+.header
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 1.5rem 1.5rem;
+
+.leftheader
+    display: flex;
+    align-items: center;
+    justify-content: left;
+
+.rightheader
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+
+.item:hover
+    box-shadow: 0 0 12px #ccc;
+
+
+.title
+    font-size: var(--font-size-md);
+
+.description
+    margin-top: 10px;
+
+.progress
+
+.icon
+    align-items: center;
+
+
+.separator
+    margin: 0 1rem;
+
+.item-nr
+    background: var(--color-theme);
+    color: var(--color-theme-contrast);
+    font-size: 1em;
+    width: 1.8em;
+    height: 1.8em;
+    display: inline-flex;
+    border-radius: 50%;
+    justify-content: center;
+    align-items: center;
+    margin-right: 1.5rem;
\ No newline at end of file
diff --git a/src/styles/task.module.sass b/src/styles/task.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..dcbb50e54c06ebb8f68d2d4c5cebd8a240dccd6f
--- /dev/null
+++ b/src/styles/task.module.sass
@@ -0,0 +1,73 @@
+$breakpoint-tablet: 1200px
+    
+.pagination
+    max-width: 100%
+    width: var(--width-container)
+    display: flex
+    justify-content: space-between
+
+
+
+// .container-row 
+//     display: flex
+//     flex-direction: row
+//     background-color: pink
+
+// .nav-left
+//     width: 300px
+//     height: auto
+//     max-width: 100%
+//     margin: 0 auto 6rem
+//     display: block
+//     color: var(--color-theme)
+//     position: fixed
+
+
+.nav-left
+    position: fixed
+    min-width: 300px
+    top: 2rem
+    left: 2rem
+    height: 100%
+
+@media(min-width: $breakpoint-tablet)
+    .nav-left
+        position: fixed
+        
+.nav-left        
+    @media (max-width: $breakpoint-tablet)
+        display: none
+
+/*@media only screen and (max-width: 1337px) */
+.container
+    display: flex;
+    flex-direction: column;
+    align-items: stretch;
+    margin: 0px
+    min-height: 100vh
+
+
+
+
+.nav-left
+    width: 300px
+    position: static
+    // Nav tΓ€cker hela sidan
+    left: 0
+    // End nav tΓ€cker hela sidan
+
+// @media only screen and (max-width: 1300px)
+//     .adaptive-grid
+//         display: grid
+//         grid-template-columns: 30% 70%
+
+// $breakpoint-tablet: 768px
+// @media only screen and (max-width: $breakpoint-tablet)
+//     .adaptive-grid
+//         grid-template-columns: 100%
+
+
+.html-ast-wrapper
+    width: 100%
+    div 
+        /*width: 100%*/
\ No newline at end of file
diff --git a/src/styles/teachers.module.sass b/src/styles/teachers.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..9752f01a974addc3e0e4a592cbee5bec25d04eb2
--- /dev/null
+++ b/src/styles/teachers.module.sass
@@ -0,0 +1,40 @@
+
+.container
+    background-color: transparent;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    position: relative;
+    padding: 4rem 0rem;
+    width: 100%;
+    border-bottom: 1px solid var(--color-subtle-medium);
+    border-top: 1px solid var(--color-subtle-medium);
+
+
+
+
+
+.teachercards
+    display: flex;
+    justify-content: center;
+    margin: 2rem 0;
+    @media (max-width: 768px)
+        flex-direction: column;
+        align-items: center;
+
+
+.teacher
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+    align-items: center;
+    padding: 20px 10px;
+    margin: 1rem 5rem;
+
+
+.teacherimg
+    width: 200px;
+    height: 200px;
+    border-radius: 50%;
+    margin-bottom: 20px;
diff --git a/src/styles/theme-changer.module.sass b/src/styles/theme-changer.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..3c9d1a5c0d4d31f83dc04c4ef3214152158e8cae
--- /dev/null
+++ b/src/styles/theme-changer.module.sass
@@ -0,0 +1,9 @@
+.theme-button
+    position: absolute
+    right: 50px
+    z-index: 100
+    button
+        color: var(--syntax-text)
+
+
+
diff --git a/src/styles/typography.module.sass b/src/styles/typography.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..9ffc200cc26f3bbb9a81004a65cbe22bdb5685e5
--- /dev/null
+++ b/src/styles/typography.module.sass
@@ -0,0 +1,47 @@
+.h3
+    font-size: var(--font-size-md)
+    font-weight: bold
+    margin-bottom: 2rem
+
+.hr
+    border: 0
+    height: 0
+    margin-top: 7rem
+    margin-bottom: 7rem
+
+.ul,
+.ol
+    margin-bottom: 3rem
+
+.ol
+    list-style: none
+    counter-reset: ul
+
+    .li
+        margin-left: 0.5rem
+
+        &:before
+            margin-right: 1rem
+            font-weight: bold
+            counter-increment: ul
+            content: counter(ul) ". "
+
+.li
+    margin-left: 2rem
+
+.code
+    background: var(--color-background-code)
+    padding: 2px 5px
+    border-radius: var(--border-radius)
+
+    pre &
+        background: var(--color-subtle-light)
+
+\:global
+    pre code
+        background: var(--color-subtle-light)
+
+    p code, li code
+        background: var(--color-background-code)
+        padding: 2px 5px
+        border-radius: var(--border-radius)
diff --git a/src/styles/video.module.sass b/src/styles/video.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..40a68036c9235dbd739f9c38df26f3c14bcaf6f2
--- /dev/null
+++ b/src/styles/video.module.sass
@@ -0,0 +1,12 @@
+
+
+.video-container 
+    position: relative
+    padding-top: 56%
+    margin-bottom: 10px;
+    iframe
+        position: absolute
+        top: 0
+        left: 0
+        width: 100%
+        height: 100%
\ No newline at end of file
diff --git a/src/styles/wrapper.module.sass b/src/styles/wrapper.module.sass
new file mode 100644
index 0000000000000000000000000000000000000000..e60954e46332bcd1d8fb12052357bab937d2091c
--- /dev/null
+++ b/src/styles/wrapper.module.sass
@@ -0,0 +1,12 @@
+.root
+    width: 100%;
+    position: relative;
+    min-height: 100vh;
+    padding-bottom: 300px;
+
+
+
+.content
+    display: flex
+    flex-direction: column
+    align-items: center;
\ No newline at end of file
diff --git a/src/templates/chapter.js b/src/templates/chapter.js
new file mode 100644
index 0000000000000000000000000000000000000000..cef16d77fe1b791a944bb4d8ad568ce890d81a5b
--- /dev/null
+++ b/src/templates/chapter.js
@@ -0,0 +1,174 @@
+import React, { useState, useEffect } from 'react'
+import { graphql, navigate } from 'gatsby'
+import useLocalStorage from '@illinois/react-use-local-storage'
+
+import { renderAst } from '../markdown'
+import { ChapterContext } from '../context'
+import CourseContentList from '../components/course-content-list'
+import { Button } from '../components/button'
+import { ChapterItem } from '../components/chapter-item'
+import { TaskItem } from '../components/task-item'
+
+import Navigation from '../components/navigation'
+import classes from '../styles/task.module.sass'
+import Burger from '../components/burger'
+import Wrapper from '../components/wrapper'
+
+import { msalConfig, loginRequest } from './../utility/auth/msalConfig';
+import { MsalProvider } from '../utility/auth/msalContext';
+import Login from '../components/login'
+import Footer from '../components/footer'
+/*
+ const { title, description, prev, next, id, location } = frontmatter
+                <section className={classes.pagination}>
+                    {buttons.filter(({slug, text}) => slug).map(({ slug, text }) => (
+                        <div key={slug}>
+                            <Button variant="secondary" small onClick={() => navigate(slug)}>
+                                {text}
+                            </Button>    
+                        </div>
+                    ))}
+                </section>
+
+*/
+function waitForGlobal(name, timeout = 300) {
+    return new Promise((resolve, reject) => {
+      let waited = 0
+  
+      function wait(interval) {
+        setTimeout(() => {
+          waited += interval
+          // some logic to check if script is loaded
+          // usually it something global in window object
+          if (window[name] !== undefined) {
+            return resolve()
+          }
+          if (waited >= timeout * 1000) {
+            return reject({ message: 'Timeout' })
+          }
+          wait(interval * 2)
+        }, interval)
+      }
+  
+      wait(2) //30
+    })
+  }
+
+const Chapter = (props) => {
+   
+    const {data} = props;
+    const {standalone} = props.pageContext; // fullPath, slug ligger ocksΓ₯ dΓ€r
+    const { markdownRemark, site } = data
+    const { courseId } = site.siteMetadata
+    const { frontmatter, htmlAst, tasks } = markdownRemark
+    const { title, description, prev, next, id, location } = frontmatter
+    const [activeExc, setActiveExc] = useState(null)
+
+    const [completed, setCompleted] = useLocalStorage(`${courseId}-completed-${id}`, [])
+    const html = renderAst(htmlAst)
+    const buttons = [
+        { slug: prev ? '/' + location + '/' + prev : prev, text: 'Β« Previous Task' },
+        { slug: next ? '/' + location + '/' + next : next, text: 'Next Task Β»' },
+    ]
+
+    //const [loaded,setLoaded] = useState(false);
+
+    useEffect(() => {
+      /*  frontmatter.forEach(({ node }) => {
+            console.log(node)
+         })*/
+       
+        
+        waitForGlobal('MathJax').then(() => {
+            window.MathJax.Hub.Config({
+              tex2jax: {
+                inlineMath: [['$', '$'], ['\\(', '\\)']],
+                displayMath: [['$$', '$$'], ['[', ']']],
+                processEscapes: true,
+                processEnvironments: true,
+                skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
+                TeX: {
+                  equationNumbers: { autoNumber: 'AMS' },
+                  extensions: ['AMSmath.js', 'AMSsymbols.js'],
+                },
+              },
+            })
+    //        setLoaded(true);
+          })
+          if (window.MathJax != null) {
+            //var math = document.querySelector("."+classes.adaptiveGrid);
+            //window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, math]);
+            window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub])
+            //window.MathJax.typeset();
+          }
+
+          //return () => {window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub])}
+      });
+
+    const chapterTasks = props.pageContext.tasks.map( (task, i) => { 
+        console.log(task.node)
+        return <TaskItem url={task.node.fields.slug} keyValue={i} description={task.node.frontmatter.description} title={task.node.frontmatter.title}> </TaskItem>
+      
+    
+    });
+
+      /**
+       * <Button variant="secondary" small onClick={() => navigate(slug)}>
+                                            {text}
+                                        </Button>
+       */
+
+
+    return (
+        <ChapterContext.Provider value={{ activeExc, setActiveExc, completed, setCompleted}}>       
+        {/* <div className={classes.containerRow}> */}
+        {/* <div className={classes.adaptiveGrid}> */}
+
+            <MsalProvider
+            config={msalConfig}
+            scopes={loginRequest}
+            >
+            
+            
+            <Wrapper>
+              <CourseContentList title={title} description={description}>
+                {chapterTasks}
+              </CourseContentList>
+            </Wrapper>
+
+            { /*<Login></Login>
+                <Layout title={title} description={description}>
+                    <p>Framsteg 0/24</p>
+                    {chapterTasks}
+
+                </Layout>
+                <Footer></Footer> */ }
+            </MsalProvider>
+        { /*</div> */} 
+    </ChapterContext.Provider>
+
+    )
+}
+
+export default Chapter
+
+export const pageQuery = graphql`
+    query($slug: String!) {
+        site {
+            siteMetadata {
+                courseId
+            }
+        }
+        markdownRemark(fields: { slug: { eq: $slug } }) {
+            htmlAst
+            frontmatter {
+                id
+                title
+                description
+                location
+                prev
+                next
+            }
+        }
+    }
+`
diff --git a/src/templates/task-placeholder.js b/src/templates/task-placeholder.js
new file mode 100644
index 0000000000000000000000000000000000000000..014e6e9bd3ff3fceca4d4256307576311fa501e1
--- /dev/null
+++ b/src/templates/task-placeholder.js
@@ -0,0 +1,171 @@
+import React, { useState, useEffect } from 'react'
+import { graphql, navigate } from 'gatsby'
+import useLocalStorage from '@illinois/react-use-local-storage'
+
+import { renderAst } from '../markdown'
+import { ChapterContext } from '../context'
+import CourseContentList from '../components/course-content-list'
+import { Button } from '../components/button'
+import Navigation from '../components/navigation'
+import classes from '../styles/task.module.sass'
+import Burger from '../components/burger'
+import Wrapper from '../components/wrapper'
+
+import { msalConfig, loginRequest } from './../utility/auth/msalConfig';
+import { MsalProvider } from '../utility/auth/msalContext';
+import Login from '../components/login'
+import Footer from '../components/footer'
+/*
+ const { title, description, prev, next, id, location } = frontmatter
+                <section className={classes.pagination}>
+                    {buttons.filter(({slug, text}) => slug).map(({ slug, text }) => (
+                        <div key={slug}>
+                            <Button variant="secondary" small onClick={() => navigate(slug)}>
+                                {text}
+                            </Button>    
+                        </div>
+                    ))}
+                </section>
+
+*/
+function waitForGlobal(name, timeout = 300) {
+    return new Promise((resolve, reject) => {
+      let waited = 0
+  
+      function wait(interval) {
+        setTimeout(() => {
+          waited += interval
+          // some logic to check if script is loaded
+          // usually it something global in window object
+          if (window[name] !== undefined) {
+            return resolve()
+          }
+          if (waited >= timeout * 1000) {
+            return reject({ message: 'Timeout' })
+          }
+          wait(interval * 2)
+        }, interval)
+      }
+  
+      wait(2) //30
+    })
+  }
+
+const Template = (props) => {
+   
+    const {data} = props;
+    const {standalone} = props.pageContext; // fullPath, slug ligger ocksΓ₯ dΓ€r
+    const { markdownRemark, site } = data
+    const { courseId } = site.siteMetadata
+    const { frontmatter, htmlAst } = markdownRemark
+    const { title, description, prev, next, id, location } = frontmatter
+    const [activeExc, setActiveExc] = useState(null)
+
+    const [completed, setCompleted] = useLocalStorage(`${courseId}-completed-${id}`, [])
+    const html = renderAst(htmlAst)
+
+    const ChapterData = React.createContext(frontmatter);
+
+    const buttons = [
+        { slug: prev ? '/' + location + '/' + prev : prev, text: 'Β« Previous Task' },
+        { slug: next ? '/' + location + '/' + next : next, text: 'Next Task Β»' },
+    ]
+
+    //const [loaded,setLoaded] = useState(false);
+
+    useEffect(() => {
+     
+        waitForGlobal('MathJax').then(() => {
+            window.MathJax.Hub.Config({
+              tex2jax: {
+                inlineMath: [['$', '$'], ['\\(', '\\)']],
+                displayMath: [['$$', '$$'], ['[', ']']],
+                processEscapes: true,
+                processEnvironments: true,
+                skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
+                TeX: {
+                  equationNumbers: { autoNumber: 'AMS' },
+                  extensions: ['AMSmath.js', 'AMSsymbols.js'],
+                },
+              },
+            })
+    //        setLoaded(true);
+          })
+          if (window.MathJax != null) {
+            //var math = document.querySelector("."+classes.adaptiveGrid);
+            //window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, math]);
+            window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub])
+            //window.MathJax.typeset();
+          }
+
+          //return () => {window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub])}
+      });
+  
+    const html_copy = React.Children.map(html.props.children, child =>
+        React.cloneElement(child, { chapterData: frontmatter }));
+
+    return (
+        <ChapterContext.Provider value={{ activeExc, setActiveExc, completed, setCompleted}}>       
+            {/* <div className={classes.containerRow}> */}
+            <div className={classes.container}>
+
+
+                   <MsalProvider
+                config={msalConfig}
+                scopes={loginRequest}
+                >
+                    <Wrapper>            
+                        <CourseContentList title={title} description={description}>
+                        <Button variant="secondary" small onClick={() => navigate('/' + location)}>Go back to chapter</Button>  
+
+                            <ChapterData.Provider>
+                                <div className={classes.htmlAstWrapper}>
+                                    {html_copy}
+
+                                </div>
+                            </ChapterData.Provider>
+                            <section className={classes.pagination}>
+                                {buttons.map(({ slug, text }, index) => (
+                                    
+                                    <div key={index}>
+                                        { slug && 
+                                            (<Button variant="secondary" small onClick={() => navigate(slug)}>
+                                                {text}
+                                            </Button>)    
+                                        }
+                                    </div>
+                                ))}
+                            </section>
+                        
+                        </CourseContentList>
+                    </Wrapper>
+            
+                </MsalProvider>
+            </div>
+        </ChapterContext.Provider>
+    )
+}
+
+export default Template
+
+export const pageQuery = graphql`
+    query($slug: String!) {
+        site {
+            siteMetadata {
+                courseId
+            }
+        }
+        markdownRemark(fields: { slug: { eq: $slug } }) {
+            htmlAst
+            frontmatter {
+                id
+                title
+                description
+                location 
+                chapter_id
+                prev
+                next
+            }
+        }
+    }
+`
diff --git a/src/theme-changer.js b/src/theme-changer.js
new file mode 100644
index 0000000000000000000000000000000000000000..58c57571a3eb00f49f205be129c6d4fc4cf5c84d
--- /dev/null
+++ b/src/theme-changer.js
@@ -0,0 +1,54 @@
+import React, { useState, useEffect } from 'react'
+import classes from './styles/theme-changer.module.sass'
+//import 'localstorage-polyfill'
+
+const ThemeChanger = () => {
+
+
+  const [themeState, setThemeState] = useState(typeof window !== 'undefined' ? (localStorage.getItem('Theme') === 'dark' ? false : true) : false);
+
+  const handleChange = () => {
+    setThemeState(!themeState);
+    if (themeState) {
+      localStorage.setItem('Theme', 'dark');
+      document.body.classList.add('dark-mode');
+    } else {
+      localStorage.setItem('Theme', 'light');
+      document.body.classList.remove('dark-mode');
+    }
+  }
+  useEffect(() => {
+    const getTheme = localStorage.getItem('Theme');
+    if (getTheme === 'dark') return document.body.classList.add('dark-mode');
+  })
+  return (
+    <div className={classes.themeButton}>
+      <button onClick={handleChange}>{themeState ? 'Dark Mode' : 'Light Mode'}</button>
+    </div>
+  )
+  // useEffect(() => {
+  //   const getTheme = localStorage.getItem('Theme');
+  //   if (getTheme === 'dark') {
+  //     setThemeState(true);
+  //   }
+  // }, []);
+
+  // useEffect(() => {
+  //   if (themeState) {
+  //     localStorage.setItem('Theme', 'dark');
+  //     document.body.classList.add('dark-mode');
+  //   } else {
+  //     localStorage.setItem('Theme', 'light');
+  //     document.body.classList.remove('dark-mode');
+  //   }
+  // }, [themeState]);
+
+  // return (
+  //   <div className={classes.themeButton}>
+  //     <button onClick={() => setThemeState(!themeState)}>{themeState ? 'Light Mode' : 'Dark Mode'}</button>
+  //   </div>
+  // );
+
+}
+
+export default ThemeChanger;
\ No newline at end of file
diff --git a/src/utility/auth/msalConfig.js b/src/utility/auth/msalConfig.js
new file mode 100644
index 0000000000000000000000000000000000000000..093267a3cc8364198592b25bde5b93d203b22864
--- /dev/null
+++ b/src/utility/auth/msalConfig.js
@@ -0,0 +1,31 @@
+export const msalConfig = {
+    auth: {
+        // clientId for appRegistration in Azure AD.        
+        // ida-spacy-test-ar (in production): 'c6b6983e-0fcd-4337-82e8-5b7391841773'
+        clientId: 'c6b6983e-0fcd-4337-82e8-5b7391841773',//ida-spacy-test-ar (in production),                     
+        // 913f18ec-7f26-4c5f-a816-784fe9a58edd is the tenantId for liuonline.onmicrosoft.com
+        authority: 'https://login.microsoftonline.com/913f18ec-7f26-4c5f-a816-784fe9a58edd',
+        redirectUri: 'https://localhost:8000',
+    },
+    cache: {
+        cacheLocation: "localStorage", // This configures where your cache will be stored
+        storeAuthStateInCookie: false, // Set this to "true" if you are having issues on IE11 or Edge
+    }
+};
+
+// Add here scopes for id token to be used at MS Identity Platform endpoints.
+export const loginRequest = {
+    scopes: ["openid", "profile", "User.Read","https://liuonline.onmicrosoft.com/ida-spacy-progress-api-test-ar/user_impersonation"],
+    forceRefresh: false // Set this to "true" to skip a cached token and go to the server to get a new token
+};
+ 
+// Add here scopes for id token to be used at MS Identity Platform endpoints.
+export const apiRequest = {
+    scopes: ["User.Read"],
+    forceRefresh: false // Set this to "true" to skip a cached token and go to the server to get a new token
+};
+
+export const idaSpacyProgressApiRequest = {
+    scopes: ["https://liuonline.onmicrosoft.com/ida-spacy-progress-api-test-ar/user_impersonation"],
+    forceRefresh: false // Set this to "true" to skip a cached token and go to the server to get a new token
+};
\ No newline at end of file
diff --git a/src/utility/auth/msalContext.js b/src/utility/auth/msalContext.js
new file mode 100644
index 0000000000000000000000000000000000000000..8dc9a1bbd07c275069be04be85dfb75e00ad296d
--- /dev/null
+++ b/src/utility/auth/msalContext.js
@@ -0,0 +1,269 @@
+import React, { useState, useEffect, useContext } from "react";
+import * as msal from "@azure/msal-browser";
+import { apiRequest, idaSpacyProgressApiRequest } from "./msalConfig";
+import { 
+    getUserDetails, 
+    addCompletedExercise, 
+    removeCompletedExercise,
+    getUserProgress, 
+    // getUserProgressByChapter, 
+    // getUserProgressByChapterAndSection, 
+    getUserLastCompleted } 
+from '../graph/GraphService';
+
+// const ua = window.navigator.userAgent;
+// const msie = ua.indexOf("MSIE ");
+// const msie11 = ua.indexOf("Trident/");
+// const msedge = ua.indexOf("Edge/");
+// const isIE = msie > 0 || msie11 > 0;
+// const isEdge = msedge > 0;
+//const isIE = 0;
+//const isEdge = 0;
+
+export const MsalContext = React.createContext();
+export const useMsal = () => useContext(MsalContext);
+export const MsalProvider = ({
+    children,
+    config
+}) => {
+
+    const [isAuthenticated, setIsAuthenticated] = useState();
+    const [user, setUser] = useState();
+    const [token, setToken] = useState();
+    const [publicClient, setPublicClient] = useState();
+    const [profile, setProfile] = useState();
+    const [loading, setLoading] = useState(false);
+    const [popupOpen, setPopupOpen] = useState(false);
+    const [loginError, setLoginError] = useState(false);
+    const [progress, setProgress] = useState();
+    
+
+    useEffect(() => {
+        const pc = new msal.PublicClientApplication(config);
+        setPublicClient(pc);
+
+        pc.handleRedirectPromise().then((response) =>
+        {
+            setLoading(false);
+            if (response) {
+                setUser(getCurrentAccount(pc.getAllAccounts()));
+                setIsAuthenticated(true);
+                if(response.accessToken) {
+                  setToken(response.accessToken);
+                }
+            }
+        }).catch(error => {
+            console.log(error);
+            setLoginError(error);
+        });
+
+        if (getCurrentAccount(pc.getAllAccounts())) {
+            setUser(getCurrentAccount(pc.getAllAccounts()));
+            setIsAuthenticated(true);
+        }
+        // eslint-disable-next-line
+    }, []);
+
+    useEffect(() => {        
+        if (isAuthenticated && !progress){     
+            console.log("Init progress for current user");
+            getUserProgressFromApi();            
+        }        
+        // eslint-disable-next-line
+    }, [isAuthenticated])
+
+    const login = async (loginRequest, method) => {
+        const signInType = (isIE() || isEdge()) ? "loginRedirect" : method;
+        if (signInType === "loginPopup") {
+            setPopupOpen(true);
+
+            try {
+                await publicClient.loginPopup(loginRequest);
+                
+                if (getCurrentAccount(publicClient.getAllAccounts())) {
+                    setUser(getCurrentAccount(publicClient.getAllAccounts()));
+                    setIsAuthenticated(true);
+                }
+            } catch (error) {
+                console.log(error);
+                setLoginError(error);
+            } finally {
+                setPopupOpen(false);
+            }
+        } else if (signInType === "loginRedirect") {
+            setLoading(true);
+
+            publicClient.loginRedirect(loginRequest)
+        }
+    }
+
+    const logout = () => {
+        publicClient.logout();
+    }
+
+    const isIE = () => {
+        const ua = window.navigator.userAgent;
+        const msie = ua.indexOf("MSIE ");
+        const msie11 = ua.indexOf("Trident/");
+        return msie > 0 || msie11 > 0;
+    }
+
+    const isEdge = () => {
+        const ua = window.navigator.userAgent;
+        const msedge = ua.indexOf("Edge/");
+        return msedge > 0;
+
+    }
+
+    // in a B2C solution a user may have several valid account logged in (e.g. one facebook, one google)
+    // in this scenario we need to know which account to use. In our case the user can only use LiU accounts 
+    // and there should only be one.
+    const getCurrentAccount = (accounts) => {
+        if (accounts.length > 0){            
+            return accounts[0];
+        }
+        return null;
+    }
+
+
+    //////////////////////////////
+    // Handle tokens for api-calls
+    //////////////////////////////
+
+    const getTokenPopup = async (loginRequest) => {
+        try {
+            const response = await publicClient.acquireTokenSilent(loginRequest);
+            setToken(response.accessToken);            
+            return response.accessToken;
+        } catch (error) {            
+            try {
+                setPopupOpen(true);                
+                const response = await publicClient.acquireTokenPopup(loginRequest);                
+                setToken(response.accessToken);
+                return response.accessToken;
+            }
+            catch (error) {
+                console.log(error);
+                setLoginError(error);
+            }
+            finally {
+                setPopupOpen(false);
+            }
+        }
+    }
+
+    // This function can be removed if you do not need to support IE
+    const getTokenRedirect = async (loginRequest) => {
+        try {
+            setToken(await publicClient.acquireTokenSilent(loginRequest));
+        }
+        catch(error) {
+               
+            try{
+                setLoading(true);
+                
+                publicClient.acquireTokenRedirect(loginRequest);
+            }
+            catch(error) { 
+                console.log(error);
+                setLoginError(error);
+            }
+        }
+    }
+
+    const getToken = async (loginRequest, method) => {        
+        const signInType = (isIE() || isEdge())? "loginRedirect" : method;
+        if(signInType === "loginRedirect") {
+            return await getTokenRedirect(loginRequest);
+        } else
+        {
+            return await getTokenPopup(loginRequest);
+        }
+    }    
+    
+    // get user profile from graph /me endpoint
+    const getUserProfileFromGraph = async () => {
+
+        // to be able to request token silently (no login popup)
+        // we need to provide the current logged in account in our request
+        const silentTokenGraphTokenRequest = {
+            scopes: apiRequest.scopes,
+            account: user
+        };
+
+        var accessToken = await getToken(silentTokenGraphTokenRequest, "popupToken");
+        var profile = await getUserDetails(accessToken);
+        if (profile){
+            setProfile(profile);
+        }
+    }
+
+    const getUserProgressFromApi = async() => {
+        const silentTokenGraphTokenRequest = {
+            scopes: idaSpacyProgressApiRequest.scopes,
+            account: user
+        };
+
+        var accessToken = await getToken(silentTokenGraphTokenRequest, "popupToken");        
+        var progressResponse = await getUserProgress(accessToken, "spacytest-instance");        
+        setProgress(progressResponse);                
+    }
+    
+    const saveCompletedExerciseToApI = async(chapterId, sectionId, exerciseId, exerciseData) => {
+        const silentTokenGraphTokenRequest = {
+            scopes: idaSpacyProgressApiRequest.scopes,
+            account: user
+        };
+
+        var accessToken = await getToken(silentTokenGraphTokenRequest, "popupToken");                
+        await addCompletedExercise(accessToken, "spacytest-instance", chapterId, sectionId, exerciseId, exerciseData);
+        var progressResponse = await getUserProgress(accessToken, "spacytest-instance");
+        setProgress(progressResponse);        
+    }
+
+    const removeCompletedExerciseFromApi = async(chapterId, sectionId, exerciseId) => {        
+        const silentTokenGraphTokenRequest = {
+            scopes: idaSpacyProgressApiRequest.scopes,
+            account: user
+        };
+
+        var accessToken = await getToken(silentTokenGraphTokenRequest, "popupToken");                
+        await removeCompletedExercise(accessToken, "spacytest-instance", chapterId, sectionId, exerciseId);
+        var progressResponse = await getUserProgress(accessToken, "spacytest-instance");
+        setProgress(progressResponse); 
+    }
+
+    const getUserLastCompletedFromApi = async() => {
+        const silentTokenGraphTokenRequest = {
+            scopes: idaSpacyProgressApiRequest.scopes,
+            account: user
+        };
+
+        var accessToken = await getToken(silentTokenGraphTokenRequest, "popupToken");
+        return await getUserLastCompleted(accessToken, "spacytest-instance");
+    }
+
+    return (
+        <MsalContext.Provider
+            value={{
+                isAuthenticated,
+                user,
+                token,
+                loading,
+                popupOpen,
+                loginError,
+                profile,
+                progress,
+                login,
+                logout,
+                getUserProfileFromGraph,
+                getUserProgressFromApi,
+                saveCompletedExerciseToApI,
+                removeCompletedExerciseFromApi,
+                getUserLastCompletedFromApi                
+            }}
+        >
+            {children}
+        </MsalContext.Provider>
+    );
+};
\ No newline at end of file
diff --git a/src/utility/graph/GraphService.js b/src/utility/graph/GraphService.js
new file mode 100644
index 0000000000000000000000000000000000000000..6b299c00ff55dccc800a850ea54436f411aeb7e7
--- /dev/null
+++ b/src/utility/graph/GraphService.js
@@ -0,0 +1,97 @@
+var graph = require('@microsoft/microsoft-graph-client');
+
+const apiBaseUrl = "https://ida-spacy-progress-api-test-wa.azurewebsites.net"; // "https://localhost:44352"
+
+function getAuthenticatedClient(accessToken) {
+    const client = graph.Client.init({
+        authProvider: (done) => {
+            done(null, accessToken);
+        }
+    });
+
+    return client;
+}
+
+export async function getUserDetails(accessToken) {
+        
+    const client = getAuthenticatedClient(accessToken);
+
+    const user = await client
+        .api('/me')
+        .get();
+
+    return user;
+}
+
+export const getUserLastCompleted = async(accessToken, courseInstanceId) => {    
+    const response = await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId + "/lastCompleted", {
+        method: 'GET',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        },
+    });
+    return await response.json();
+}
+
+export const getUserProgressByChapterAndSection = async(accessToken, courseInstanceId, chapterId, sectionId) => {    
+    const response = await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId + "/" + chapterId + "/" + sectionId, {
+        method: 'GET',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        },
+    });
+    return await response.json();
+}
+
+export const getUserProgressByChapter = async(accessToken, courseInstanceId, chapterId) => {    
+    const response = await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId + "/" + chapterId, {
+        method: 'GET',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        },
+    });
+    return await response.json();
+}
+
+export const getUserProgress = async(accessToken, courseInstanceId) => {    
+    const response = await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId, {
+        method: 'GET',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        },
+    });
+    return await response.json();
+}
+
+export const addCompletedExercise = async(accessToken, courseInstanceId, chapterId, sectionId, exerciseId, exerciseData) => {
+
+    const data = {        
+        moduleId: chapterId,
+        sectionId: sectionId,
+        exerciseId: exerciseId,
+        exerciseData: exerciseData ? JSON.stringify(exerciseData) : "{}"
+    }
+    
+    await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId, {
+        method: 'PUT',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        },
+        body: JSON.stringify(data)
+    });    
+}
+
+export const removeCompletedExercise = async(accessToken, courseInstanceId, chapterId, sectionId, exerciseId) => {        
+    await fetch(apiBaseUrl + "/api/Progress/" + courseInstanceId + "/" + chapterId + "/" + sectionId + "/" + exerciseId, {
+        method: 'DELETE',
+        headers: {
+            'Authorization': 'Bearer ' + accessToken,
+            'Content-Type': 'application/json'
+        }
+    });    
+}
diff --git a/src/utility/graph/UserUtils.js b/src/utility/graph/UserUtils.js
new file mode 100644
index 0000000000000000000000000000000000000000..2808924b7b4498acd5642cd3abf8ca7449c57e14
--- /dev/null
+++ b/src/utility/graph/UserUtils.js
@@ -0,0 +1,66 @@
+import { getUserDetails } from './GraphService';
+
+export function normalizeError(error) {
+    var normalizedError = {};
+    if (typeof (error) === 'string') {
+        var errParts = error.split('|');
+        normalizedError = errParts.length > 1 ?
+            { message: errParts[1], debug: errParts[0] } :
+            { message: error };
+    } else {
+        normalizedError = {
+            message: error.message,
+            debug: JSON.stringify(error)
+        };
+    }
+    return normalizedError;
+}
+
+export async function getUserProfile(userAgentApplication, scopes) {
+    try {
+        var accessToken = await getAccessToken(userAgentApplication, scopes);
+
+        if (accessToken) {
+            return await getUserDetails(accessToken);
+        }
+        return null;
+    }
+    catch (err) {
+        throw err;
+    }
+}
+
+async function getAccessToken(userAgentApplication, scopes) {
+    try {
+        var silentResult = await userAgentApplication
+            .acquireTokenSilent({
+                scopes: scopes
+            });
+
+        return silentResult.accessToken;
+    } catch (err) {
+        if (isInteractionRequired(err)) {
+            var interactiveResult = await userAgentApplication
+                .acquireTokenPopup({
+                    scopes: scopes
+                });
+
+            return interactiveResult.accessToken;
+        } else {
+            throw err;
+        }
+    }
+}
+
+function isInteractionRequired(error) {
+    if (!error.message || error.message.length <= 0) {
+        return false;
+    }
+
+    return (
+        error.message.indexOf('consent_required') > -1 ||
+        error.message.indexOf('interaction_required') > -1 ||
+        error.message.indexOf('login_required') > -1 ||
+        error.message.indexOf('no_account_in_silent_request') > -1
+    );
+}
\ No newline at end of file
diff --git a/src/utility/index.js b/src/utility/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..56408713a5cbd1883ae9b4840420856c88717e07
--- /dev/null
+++ b/src/utility/index.js
@@ -0,0 +1,35 @@
+export const randomId = () => 
+{
+    return Math.floor(Math.random() * 4096) + 1
+}
+
+export const hasChildren = (element) => {
+    if(element !== undefined 
+        && element.props !== undefined 
+        && element.props.children !== undefined 
+        && element.props.children.length !== 0) 
+        {
+            return true;
+        }
+    
+    return false;
+}
+
+
+export const findChild = (child, target) => {
+    if((child.type.tag === target || child.type.tag === target)) {
+        return child;
+    }
+
+    const item = child.props.children.find((element) => {
+        if(element.type) {
+            const found = (element.type.tag === target ||  element.type.tag === target)
+            return found;
+        }
+
+        
+        return false;
+    });
+
+    return item;
+}
\ No newline at end of file
diff --git a/static/icon.png b/static/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..169c2e31fb8137b7a10400fb61d437934e6abdb2
Binary files /dev/null and b/static/icon.png differ
diff --git a/static/icon_check.svg b/static/icon_check.svg
new file mode 100644
index 0000000000000000000000000000000000000000..49922e29752f152c073daeaf6d11cf4d469fd975
--- /dev/null
+++ b/static/icon_check.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
+  <path d="M9 16.172l10.594-10.594 1.406 1.406-12 12-5.578-5.578 1.406-1.406z" />
+</svg>
diff --git a/static/icon_slides.svg b/static/icon_slides.svg
new file mode 100644
index 0000000000000000000000000000000000000000..932b76be59f4368b8e8798c0378a188257b10924
--- /dev/null
+++ b/static/icon_slides.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="32" viewBox="0 0 26 17" fill="currentColor">
+  <path d="M23.8 2.5A2.5 2.5 0 0 0 21.3 0H2.5A2.5 2.5 0 0 0 0 2.5v9.9a2.5 2.5 0 0 0 2.3 2.5v-1A1.5 1.5 0 0 1 1 12.4V2.5A1.5 1.5 0 0 1 2.5 1h18.8a1.5 1.5 0 0 1 1.5 1.5v3h1zM2.3 13.9v1z M23.5 20.3H4.8a2.5 2.5 0 0 1-2.5-2.5V8a2.5 2.5 0 0 1 2.5-2.5h18.7A2.5 2.5 0 0 1 26 8v9.8a2.5 2.5 0 0 1-2.5 2.5zM4.8 6.5A1.4 1.4 0 0 0 3.3 8v9.8a1.4 1.4 0 0 0 1.5 1.5h18.7a1.4 1.4 0 0 0 1.5-1.5V8a1.4 1.4 0 0 0-1.5-1.5z M15.8 9.5h7.1v1h-7.1z M15.8 12.4h7.1v1h-7.1z M15.9 15.3H23v1h-7.1z M4.9 10h1.5v6.5H4.9zM7.4 11.7h1.5v4.74H7.4zM10 11.7h1.5v4.74H10z" />
+  <circle cx="14.1" cy="10" r="0.7" />
+  <circle cx="14.1" cy="12.9" r="0.7" />
+  <circle cx="14.2" cy="15.8" r="0.7" />
+</svg>
diff --git a/static/logo.svg b/static/logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6a903be0c09b61f77a8a8f299c6ca35fb9e8b592
--- /dev/null
+++ b/static/logo.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="783.6" height="351.4" viewBox="0 0 783.6 351.4">
+  <path d="M129.4 159.4l-29.8 2.1 5.1-49.3-29.8 49.5-19.6 1.3-20.1-47.3-5.3 50.7L0 168.5 12.3 51.4l25.4-1.8 30.7 68.6 45.5-73.9 27.9-2zM219.6 110.5l-5 43-29.8 2 4.9-42.9-36.2-71.1 33.4-2.3 19 42.6 29.4-46 35.7-2.5zM410.3 34.1c10.2 7.5 15.9 18 17.1 31.8l-30.9 4.5c-2.1-14-10.6-20.3-23.4-19.4a31.9 31.9 0 0 0-22.7 11.2c-5.9 6.8-9.1 15.6-9.8 26-1.5 20.5 9.3 30.9 25.2 29.8s24.8-9.3 28.7-23.7l31 1.2a60.8 60.8 0 0 1-20.6 34.2 62.1 62.1 0 0 1-36.8 14.7c-18.2 1.3-32.7-3.3-43.5-13.6s-15.4-25-14.1-43.9 7.7-32.5 19.2-43.7 25.8-17.5 42.9-18.7c15-1.1 27.7 2.1 37.7 9.6zM544.7 29.5c11.4 10.6 17 25 16.2 43.3s-6.6 32.2-17.8 43.5-25.4 17.7-42.9 18.9-33.7-3.2-45.1-13.8-17-25.1-16.3-43.4 6.6-32.2 17.8-43.5 25.7-17.7 43.1-18.9 33.5 3.4 45 13.9zm-75.6 49.8c.1 19.7 11.6 30.7 29.5 29.4 19.8-1.3 32.2-15.9 32.1-37.2-.1-19.7-11.6-30.7-29.6-29.4-19.8 1.3-32.1 15.9-32 37.2zM680.8 20c11.4 10.6 16.9 24.9 16.2 43.3s-6.6 32.2-17.8 43.5-25.5 17.7-43 18.9-33.6-3.3-45-13.8-17-25.1-16.3-43.5 6.6-32.1 17.8-43.5 25.6-17.6 43.1-18.8 33.5 3.4 45 13.9zm-75.7 49.7c.2 19.8 11.7 30.8 29.6 29.5 19.8-1.4 32.1-15.9 32.1-37.2-.2-19.7-11.7-30.7-29.6-29.5-19.8 1.4-32.1 16-32.1 37.2zM737.7 90.3l45.9-3.2-2.7 26.8-75.8 5.3L717.4 2.1 747.3 0zM119.8 240.9c10.1 7.5 15.8 18 17.1 31.7l-30.9 4.5c-2.1-14-10.6-20.2-23.4-19.3A31.6 31.6 0 0 0 59.9 269c-5.9 6.8-9.2 15.6-9.9 26-1.5 20.5 9.3 30.9 25.3 29.8s24.8-9.4 28.6-23.8l31 1.3c-3.2 14-10 25.4-20.6 34.2a63.1 63.1 0 0 1-36.7 14.7c-18.3 1.3-32.7-3.3-43.5-13.6s-15.5-25-14.1-43.9 7.6-32.5 19.1-43.8 25.8-17.5 43-18.7c15-1 27.6 2.2 37.7 9.7zM254.1 236.3c11.5 10.5 17 24.9 16.3 43.3s-6.6 32.2-17.8 43.5-25.5 17.6-43 18.9-33.6-3.3-45.1-13.8-16.9-25.1-16.2-43.5 6.6-32.1 17.8-43.5 25.6-17.6 43.1-18.8 33.5 3.4 44.9 13.9zM178.5 286c.2 19.8 11.7 30.8 29.6 29.5 19.8-1.4 32.1-15.9 32-37.2-.1-19.7-11.6-30.7-29.5-29.5-19.8 1.4-32.2 16-32.1 37.2zM396.7 211l-7 68.2c-3.8 32.4-23.1 51.8-54.5 54-16.2 1.1-28.8-2.7-37.5-11.4s-12-21.2-10.2-37.3l6.9-66.4 29.8-2.1-7.3 67.3c-1.6 16.5 4.5 24.3 18.4 23.3s23-10 24.7-27l6.9-66.6zM477.6 278.9l18.1 41.4-31.2 2.1-16.3-37.7-14.4 1-4.1 39.2-29.8 2.1 12.3-117.1 48.2-3.4c11.9-.8 21.6 2.2 28.8 9.2s10.5 16.6 9.6 29c-1.8 16.6-8.9 27.9-21.2 34.2zm-41-19.9l18.8-1.3c7.5-.6 12.3-5.1 13.1-13.2s-3.1-11.8-10.4-11.3l-18.9 1.4zM595.8 205.6c8.1 6.1 11.8 14.8 11 26.1l-30.3 3.4c.5-8-3.5-12.2-11.4-11.7s-14 5.2-14.6 11.9 2.9 7.9 16.8 10.5 22.9 6 29.3 11 9.6 12.4 8.9 22.5c-2 24.7-21.3 36.9-44.1 38.1-15 1-26.7-1.6-35.4-7.8s-12.4-15.6-11.4-27.8l30.4-3.2c-.6 8.7 5 13.6 14.4 13s15.3-4.5 15.6-11.2-4.9-9-16.8-11.1-19.7-4.4-27.5-9-11.5-12.9-10.6-24.3a38.9 38.9 0 0 1 12.2-26.1c7.4-7.2 17.7-11.4 30.7-12.3s24.8 1.7 32.8 8zM699.8 216.3l-46 3.2-1.8 17.6 39.4-2.8-2.8 26.2-39.5 2.7-2 19.9 46.2-3.2-2.9 26.7-75.9 5.4 12.3-117.1 75.8-5.3z"/>
+</svg>
diff --git a/static/profile.jpg b/static/profile.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3d4dcf3dc717c3b206600a3712e0ae13467ab889
Binary files /dev/null and b/static/profile.jpg differ
diff --git a/static/social.jpg b/static/social.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..da89225e8e10835ff22ba5530c2fe9e6f9123eaf
Binary files /dev/null and b/static/social.jpg differ
diff --git a/tasks/chapter1.md b/tasks/chapter1.md
new file mode 100644
index 0000000000000000000000000000000000000000..7b23ff37b10b2002c42daf07a8f7fafb85f2c3f3
--- /dev/null
+++ b/tasks/chapter1.md
@@ -0,0 +1,9 @@
+---
+title: 'Chapter 1'
+description:
+  'This chapter is awesome.'
+type: chapter
+next: 
+prev: 
+id: 76c4cee9-b75d-4375-a698-35e84f063d0a
+---
diff --git a/tasks/chapter1/ktr2020-01a.md b/tasks/chapter1/ktr2020-01a.md
new file mode 100644
index 0000000000000000000000000000000000000000..427950eb066c477159408b5f36cc35167ff94584
--- /dev/null
+++ b/tasks/chapter1/ktr2020-01a.md
@@ -0,0 +1,256 @@
+---
+title: 'KTR 2020 01a'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: 
+prev: 
+id: 1222
+---
+
+Here are confusion matrices from the evaluation of three text classifiers.
+In each matrix, the marked cell gives the number of times the system classified adocument as class C whereas the gold-standard class for the document was A.
+
+(classifer 1)
+
+<video url="https://www.youtube.com/embed/5ctbvkAMQO4"></video>
+
+<table>
+
+<tbody>
+
+<tr>
+
+<th></th>
+
+<th>A</th>
+
+<th>B</th>
+
+<th>C</th>
+
+</tr>
+
+<tr>
+
+<td>A</td>
+
+<td>12</td>
+
+<td>9</td>
+
+<td>6</td>
+
+</tr>
+
+<tr>
+
+<td>B</td>
+
+<td>6</td>
+
+<td>15</td>
+
+<td>3</td>
+
+</tr>
+
+<tr>
+
+<td>C</td>
+
+<td>9</td>
+
+<td>3</td>
+
+<td>18</td>
+
+</tr>
+
+</tbody>
+
+</table>
+
+(classifer 2)
+
+<table>
+
+<tbody>
+
+<tr>
+
+<th></th>
+
+<th>A</th>
+
+<th>B</th>
+
+<th>C</th>
+
+</tr>
+
+<tr>
+
+<td>A</td>
+
+<td>18</td>
+
+<td>6</td>
+
+<td>3</td>
+
+</tr>
+
+<tr>
+
+<td>B</td>
+
+<td>3</td>
+
+<td>12</td>
+
+<td>9</td>
+
+</tr>
+
+<tr>
+
+<td>C</td>
+
+<td>6</td>
+
+<td>9</td>
+
+<td>15</td>
+
+</tr>
+
+</tbody>
+
+</table>
+
+(classifer 3)
+
+<table>
+
+<tbody>
+
+<tr>
+
+<th></th>
+
+<th>A</th>
+
+<th>B</th>
+
+<th>C</th>
+
+</tr>
+
+<tr>
+
+<td>A</td>
+
+<td>15</td>
+
+<td>6</td>
+
+<td>6</td>
+
+</tr>
+
+<tr>
+
+<td>B</td>
+
+<td>9</td>
+
+<td>12</td>
+
+<td>3</td>
+
+</tr>
+
+<tr>
+
+<td>C</td>
+
+<td>3</td>
+
+<td>9</td>
+
+<td>18</td>
+
+</tr>
+
+</tbody>
+
+</table>
+
+
+
+<exercise id="20" title="Getting Started 1">
+
+Which of the three classifiers has the highest:
+
+recall with respect to class B?
+
+<choice>
+<opt text="Classifer 1" correct="true">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="Classifer 2">
+
+Good job!
+
+</opt>
+
+<opt text="Classifer 3">
+
+This is not correct either.
+
+</opt>
+</choice>
+
+</exercise>
+
+<exercise id="22" title="Getting Started">
+
+precision with respect to class A
+
+<choice>
+<opt text="Classifer 1">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="Classifer 2" correct="true">
+
+Good job!
+
+</opt>
+
+<opt text="Classifer 3">
+
+This is not correct either.
+
+</opt>
+
+</choice>
+
+<codeblock id="01_03">
+
+This is a hint.
+
+</codeblock>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/ktr2020-01b.md b/tasks/chapter1/ktr2020-01b.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a9ced5c0bf1c48591511e584adb00ea56426c30
--- /dev/null
+++ b/tasks/chapter1/ktr2020-01b.md
@@ -0,0 +1,91 @@
+---
+title: 'KTR 2020 01b'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: chapter1
+next: ktr2020-01a
+prev: ktr2020-01b
+id: 202012
+---
+<exercise id="21" title="Getting Started">
+
+
+
+Use Maximum Likelihood estimation with add-one smoothing to estimate theclass probabilities and word probabilities of a Naive Bayes text classifier on the following document collection. Assume that the vocabulary consists of all words in the collection. Answer with fractions.
+
+<table>
+
+<tbody>
+
+<tr>
+
+<th></th>
+
+<th>document</th>
+
+<th>class</th>
+
+</tr>
+
+<tr>
+
+<td>1</td>
+
+<td>Stockholm Oslo</td>
+
+<td>S</td>
+
+</tr>
+
+<tr>
+
+<td>2</td>
+
+<td>Copenhagen Stockholm</td>
+
+<td>D</td>
+
+</tr>
+
+<tr>
+
+<td>3</td>
+
+<td>Stockholm Copenhagen</td>
+
+<td>S</td>
+
+</tr>
+
+<tr>
+
+<td>4</td>
+
+<td>Copenhagen</td>
+
+<td>D</td>
+
+</tr>
+
+</tbody>
+
+</table>
+
+P(S) = <exact-match correct="2/4" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+P(Stockholm|S) = <exact-match correct="3/7" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+P(Copenhagen|S) = <exact-match correct="2/7" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+P(D) = <exact-match correct="2/6" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+P(Oslo|D) = <exact-match correct="1/6" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+𝑃(Copenhagen|S) = <exact-match correct="3/6" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/ktr2020-04a.md b/tasks/chapter1/ktr2020-04a.md
new file mode 100644
index 0000000000000000000000000000000000000000..cc0aa3c350fb01592f91cee023fd745816d25a97
--- /dev/null
+++ b/tasks/chapter1/ktr2020-04a.md
@@ -0,0 +1,49 @@
+---
+title: 'KTR 2020 04a'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: 
+prev: 
+id: 202041
+---
+<exercise id="21" title="Getting Started">
+
+You sum up all rule probabilities in a certain probabilistic context-free grammar.
+Which (zero or more) of the following values can you not get as a result?
+
+
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+<opt text="i.0.42" correct="true">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="ii.1">
+
+Good job!
+
+</opt>
+
+<opt text="iii.4.2" correct="true">
+
+This is not correct either.
+
+</opt>
+
+<opt text="iv.42">
+
+This is not correct either.
+
+</opt>
+
+</multichoice>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/ktr2020-05a.md b/tasks/chapter1/ktr2020-05a.md
new file mode 100644
index 0000000000000000000000000000000000000000..a4c639269df3d13eb4cee94c71cea1b05a175680
--- /dev/null
+++ b/tasks/chapter1/ktr2020-05a.md
@@ -0,0 +1,40 @@
+---
+title: 'KTR 2020 05a'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: 
+prev: 
+id: 202051
+---
+<exercise id="21" title="Getting Started">
+
+Choose the correct semantic relation: synonym, antonym, hyponym, hypernym?
+
+buy is a/an ... of purchase
+
+chair is a/an ... of furniture 
+
+automobile is a/an ... of car 
+
+bird is a/an ... of eagle 
+
+synonym is a/an ... of antonym
+
+
+<exact-match correct="buy is a synonym of purchase" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+<exact-match correct="chair is a hyponym of furniture" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+<exact-match correct="automobile is a synonym of car" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+<exact-match correct="bird is a hypernym of eagle" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+<exact-match correct="synonym is an antonym to antonym" right="Bra jobbat!" wrong="Fel svar"></exact-match>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/ktr2020-05b.md b/tasks/chapter1/ktr2020-05b.md
new file mode 100644
index 0000000000000000000000000000000000000000..b6cc84d93ac25ba4471c6751fa3857db5c2c9788
--- /dev/null
+++ b/tasks/chapter1/ktr2020-05b.md
@@ -0,0 +1,28 @@
+---
+title: 'KTR 2020 05b'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: 
+prev: 
+id: 202052
+---
+<exercise id="21" title="Getting Started">
+
+Here are three signatures (glosses and examples) from Wiktionary for different senses of the word colour:
+
+1 The spectral composition of visible light.Humans and birds can perceive colour.
+
+2 A particular set of visible spectral compositions, perceived or named as a class.Most languages have names for the colours black, white, red, and green. 
+
+3 Hue as opposed to achromatic colours (black, white, and grays). He referred to the white flag as one β€˜drained of all colour’. Based on these signatures, which of the three senses of the word colour does the Lesk algorithm predict in the following sentence? Ignore the word colour, stop words, and punctuation. As the large flag of blue colour was raised in a highly visible spot at the top of the mountain, a light rain began to fall.
+
+
+<exact-match correct="sense 1" right="Bra jobbat!" wrong="Fel svar"/>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/ktr2020-05c.md b/tasks/chapter1/ktr2020-05c.md
new file mode 100644
index 0000000000000000000000000000000000000000..e6b2c6881c5e29fd7a92f283be0bf52dadf14af5
--- /dev/null
+++ b/tasks/chapter1/ktr2020-05c.md
@@ -0,0 +1,25 @@
+---
+title: 'KTR 2020 05c'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: 
+prev: 
+id: 202053
+---
+<exercise id="21" title="Getting Started">
+
+We have seen that semantic similarity can be quantified in terms of cosinesimilarity of word vectors in a high-dimensional vector space constructed from co-occurrence counts. Based on this idea, which (zero or more) of the following words do you expect to end up close to the word apple in such a vector space?
+
+
+i. mango  ii. computer   iii. swim    iv. apples
+
+
+<exact-match correct="mango, computer, apples" right="Bra jobbat!" wrong="Fel svar"/>
+
+
+</exercise>
+
+
diff --git a/tasks/chapter1/test.md b/tasks/chapter1/test.md
new file mode 100644
index 0000000000000000000000000000000000000000..93e2c57cae4e0b5785154acb34c15ce7138d2972
--- /dev/null
+++ b/tasks/chapter1/test.md
@@ -0,0 +1,27 @@
+---
+title: test
+description: ''
+type: task
+location: chapter1
+chapter_id: 76c4cee9-b75d-4375-a698-35e84f063d0a
+next: 
+prev: 
+id: "20bac9e4-78d6-44d2-bf29-72fb89c391c2"
+bla: hej
+---
+
+<exercise id="8b552fcc-f86a-42ab-ba33-8c9ec37736d5" title="Getting Started">
+
+Here are three signatures (glosses and examples) from Wiktionary for different senses of the word colour:
+
+1 The spectral composition of visible light.Humans and birds can perceive colour.
+
+2 A particular set of visible spectral compositions, perceived or named as a class.Most languages have names for the colours black, white, red, and green. 
+
+3 Hue as opposed to achromatic colours (black, white, and grays). He referred to the white flag as one β€˜drained of all colour’. Based on these signatures, which of the three senses of the word colour does the Lesk algorithm predict in the following sentence? Ignore the word colour, stop words, and punctuation. As the large flag of blue colour was raised in a highly visible spot at the top of the mountain, a light rain began to fall.
+
+
+<exact-match correct="sense 1" right="Bra jobbat!" wrong="Fel svar"/>
+
+
+</exercise>
diff --git a/tasks/chapter1/test2.md b/tasks/chapter1/test2.md
new file mode 100644
index 0000000000000000000000000000000000000000..e6c6c96dfaaddd63793d86ec79bb9a908fadd5d9
--- /dev/null
+++ b/tasks/chapter1/test2.md
@@ -0,0 +1,47 @@
+---
+title: test2
+description: 
+type: task
+location: chapter1
+chapter_id: 76c4cee9-b75d-4375-a698-35e84f063d0a
+next: 
+prev: 
+id: 'f0552baa-0864-4a4f-b17b-d95fb9525ad9'
+---
+
+<exercise id="594ff0bd-9dc0-4d65-b118-59a4d6768b94" title="Getting Started">
+
+You sum up all rule probabilities in a certain probabilistic context-free grammar.
+Which (zero or more) of the following values can you not get as a result?
+
+
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+<opt text="i.0.42" correct="true">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="ii.1">
+
+Good job!
+
+</opt>
+
+<opt text="iii.4.2" correct="true">
+
+This is not correct either.
+
+</opt>
+
+<opt text="iv.42">
+
+This is not correct either.
+
+</opt>
+
+</multichoice>
+
+
+</exercise>
\ No newline at end of file
diff --git a/tasks/chapter2.md b/tasks/chapter2.md
new file mode 100644
index 0000000000000000000000000000000000000000..f08bc342e8b423f33df0261cf7e9935f3380dc09
--- /dev/null
+++ b/tasks/chapter2.md
@@ -0,0 +1,9 @@
+---
+title: 'Chapter 2'
+description:
+  'This chapter is awesome.!!!'
+type: chapter
+next: 
+prev: 
+id: 202011
+---
diff --git a/tasks/chapter2/language-modelling-2-2017 copy.md b/tasks/chapter2/language-modelling-2-2017 copy.md
new file mode 100644
index 0000000000000000000000000000000000000000..6f4f1b43e4e8af10997690bf8eeb5757834e61ed
--- /dev/null
+++ b/tasks/chapter2/language-modelling-2-2017 copy.md	
@@ -0,0 +1,11 @@
+---
+title: 'test'
+description:
+  'Language modelling'
+type: task
+location: tasks
+id: 20172
+prev: null
+next: null
+---
+
diff --git a/tasks/chapter2/language-modelling-2-2017.md b/tasks/chapter2/language-modelling-2-2017.md
new file mode 100644
index 0000000000000000000000000000000000000000..742ce5dd27a6befbf3db784183c572cb3c70e9ef
--- /dev/null
+++ b/tasks/chapter2/language-modelling-2-2017.md
@@ -0,0 +1,66 @@
+---
+title: 'Language Modelling'
+description:
+  'Language modelling'
+type: task
+location: tasks
+id: 20172
+prev: null
+next: null
+---
+
+
+# Corpus of Contemporary 
+For the 520 million word Corpus of Contemporary American English, 
+we have thefollowing counts of unigrams and bigrams:
+- your, 883,614; rights, 80,891;
+- doorposts,21; 
+- your rights, 378; 
+- your doorposts, 0.
+
+<exercise id="41" title="Confusion Matrix">
+
+
+<multi-answer>
+
+a) Estimate the probabilities $P(your)$ and $P(rights∣your)$ using Maximum Likeli-hood estimation. Answer with fractions.
+
+
+|                  | Answer                                           |
+|------------------|--------------------------------------------------|
+| $P(your)$        | <regex-input regex="12\/133" id=1></regex-input> |
+| $P(rights∣your)$ | <regex-input regex="12\/133" id=2></regex-input> |
+
+
+<br>
+<br>
+
+<br>
+<br>
+
+b) Estimate the bigram probability $P(doorposts∣your)$ using Maximum Likelihoodestimation and add- k smoothing with $k = 0.01$. Assume that the vocabularyconsists of $1,254,193$ unique words. Answer with a fraction.
+
+Answer:
+<regex-input regex="58\/63" id=3></regex-input>
+
+</multi-answer>
+
+
+
+
+
+</exercise>
+
+
+<exercise id=13>
+Set up a fraction for the tagger’s accuracy.
+
+
+<multi-answer>
+
+<strong>P(</strong><regex-input regex="right" id=1></regex-input><strong>|</strong><regex-input regex="left" id=2></regex-input><strong>)</strong>
+
+</multi-answer>
+
+
+</exercise>
diff --git a/tasks/chapter2/part-of-speech-3-2017.md b/tasks/chapter2/part-of-speech-3-2017.md
new file mode 100644
index 0000000000000000000000000000000000000000..c69de958faf89b6c0bf9dfb2e458e6612b05edca
--- /dev/null
+++ b/tasks/chapter2/part-of-speech-3-2017.md
@@ -0,0 +1,56 @@
+---
+title: 'Part of speech'
+description:
+  'Part of speech tagging'
+type: task
+location: tasks
+id: 20173
+prev: null
+next: null
+---
+
+
+# Part of speech tagging
+The evaluation of a part-of-speech tagger produced the following confusion matrix.The marked cell gives the number of times the system tagged a word as a verb (VB)whereas the gold standard specified it as a noun (NN).
+
+<exercise id="40" title="Confusion Matrix">
+
+
+<multi-answer>
+
+Estimate the relevant probabilities from the following document collection usingMaximum Likelihood estimation. Answer with fractions.
+
+|     | NN                   | JJ     | VB   |
+|-----|----------------------|--------|------|
+| NN  |58                    |6       | 1    |
+| JJ  |5                     |11      | 2    |
+| VB  |0                     |7       | 43   |
+
+a) Set up a fraction for the tagger’s accuracy.  
+<regex-input regex="12\/133" id=1></regex-input>
+<br>
+<br>
+b) Set up fractions for the tagger’s recall on verbs and its precision on nouns. 
+<regex-input regex="58\/63" id=2></regex-input>
+
+</multi-answer>
+
+
+
+
+
+</exercise>
+
+
+<exercise id=13>
+Set up a fraction for the tagger’s accuracy.
+
+
+<multi-answer>
+
+<strong>P(</strong><regex-input regex="right" id=1></regex-input><strong>|</strong><regex-input regex="left" id=1></regex-input><strong>)</strong>
+
+</multi-answer>
+
+
+</exercise>
diff --git a/tasks/chapter2/short-answer.md b/tasks/chapter2/short-answer.md
new file mode 100644
index 0000000000000000000000000000000000000000..e1056f368125930e86df49e4ce5a468fd1d80225
--- /dev/null
+++ b/tasks/chapter2/short-answer.md
@@ -0,0 +1,37 @@
+---
+title: 'Short answer test'
+description:
+  'This chapter will teach you about many cool things and introduce you to the
+  most important concepts of the course.'
+type: task
+location: tasks
+id: 5
+prev: null
+next: null
+---
+
+<exercise id="3" title="First steps">
+
+Synonym fΓΆr ruta:
+
+<exact-match correct="fΓΆnster" right="Bra jobbat!" wrong="Fel svar"/>
+</exercise>
+
+<exercise id="4" title="First steps">
+
+Siffran tio:
+
+<numeric-match correct=10 right="Bra jobbat!" wrong="Fel svar"/>
+
+
+</exercise>
+
+<exercise id="5" title="First steps">
+
+Give me a number between 10 and 15 and I will guess it!
+
+<range-match from=10 to=15 right="Bra jobbat!" wrong="Fel svar"/>
+
+
+</exercise>
+
diff --git a/tasks/chapter3/task1.md b/tasks/chapter3/task1.md
new file mode 100644
index 0000000000000000000000000000000000000000..63ffb0fce75a1b95f617a4816fe0e6b5dcc839c5
--- /dev/null
+++ b/tasks/chapter3/task1.md
@@ -0,0 +1,45 @@
+---
+title: 'Chapter 1: Getting started'
+description:
+  'This chapter will teach you about many cool things and introduce you to the
+  most important concepts of the course.'
+type: task
+location: tasks
+id: 1
+prev: null
+next: null
+---
+
+  'This chapter will teach you about many cool things and introduce you to the
+  most important concepts of the course 'This chapter will teach you about many cool things and introduce you to the
+  most important concepts of the course. dasdasda
+# Hej
+## Hej
+g
+$$
+L = \frac{1}{2} \rho v^2 S C_L
+$$
+hello $L = \frac{1}{2} \rho v^2 S C_L$ asdads
+
+<exercise id="3" title="First steps">
+
+ds
+This is a code exercise. The content can be formatted in simple Markdown – so
+you can have **bold text**, `code` or [links](https://spacy.io) or ($a^2 + b^2 = c^2$)lists, like($a^2 + b^2 = c^2$)
+the one for the instructions below.($a^2 + b^2 = c^2$)
+- These are instructions and they can have bullet points.
+- The code block below will look for the files `exc_01_03`, `solution_01_03` and
+  `test_01_03` in `/exercises`.
+
+
+$a^2 + b^2 = c^2$
+
+
+<codeblock id="01_03">
+
+This is a hint.
+
+</codeblock>
+
+
+</exercise>
diff --git a/tasks/chapter3/task2.md b/tasks/chapter3/task2.md
new file mode 100644
index 0000000000000000000000000000000000000000..1e983712f4340ebc2424134b3c99b5e8b6db9faa
--- /dev/null
+++ b/tasks/chapter3/task2.md
@@ -0,0 +1,70 @@
+---
+title: 'HALLΓ…3'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+next: task1
+prev: null
+location: tasks
+id: 2
+---
+
+Task 2 Γ€r hΓ€r
+
+<video url="https://www.youtube.com/embed/5ctbvkAMQO4"></video>
+
+<exercise id="21" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+
+<choice>
+
+<opt feedback="This is not the correct answer." text="Answer oneee"></opt>
+
+<opt feedback="Good job!" text="Answer two" correct="true"></opt>
+
+<opt feedback="This is not correct either." text="Answer three"></opt>
+
+</choice>
+
+
+</exercise>
+
+<exercise id=99>
+
+Svara Γ€rligt!
+
+<regex-match regex="test1337[69]" right="Bra jobbat!" wrong="Fel svar"></regex-match>
+
+</exercise>
+
+Vad Γ€r meningen med livet?
+
+<exercise id="212" title="Getting Started">
+
+<select-choice>
+
+<opt text="42">
+</opt>
+
+<opt text="41" correct="true"></opt>
+
+<opt text="43"></opt>
+
+</select-choice>
+<br>
+<select-choice>
+
+<opt text="aaaaaaaaaaaaaaa">
+</opt>
+
+<opt text="bbbbbbbbbbbbbb" correct="true"></opt>
+
+<opt text="ccccccccccccccccccccccccc"></opt>
+
+</select-choice>
+
+
+</exercise>
\ No newline at end of file
diff --git a/tasks/chapter3/task3.md b/tasks/chapter3/task3.md
new file mode 100644
index 0000000000000000000000000000000000000000..8d1cb559afb7560366bc4b0dc4c76c870e2ea1e0
--- /dev/null
+++ b/tasks/chapter3/task3.md
@@ -0,0 +1,37 @@
+---
+title: 'TASK33'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+next: task1
+prev: task2
+location: tasks
+id: 3
+---
+
+
+<exercise id="2" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+
+  <opt text="Answer one" correct="true">
+  This is not the correct answer.
+  </opt>
+
+<opt text="Answer two" correct="true">
+Good job!
+</opt>
+
+<opt text="Answer three">
+This is not correct either.
+</opt>
+
+</multichoice>
+
+
+
+
+</exercise>
diff --git a/tasks/chapter3/task4.md b/tasks/chapter3/task4.md
new file mode 100644
index 0000000000000000000000000000000000000000..417067b13e04eb2f12178573fc7a12b2b40f05b9
--- /dev/null
+++ b/tasks/chapter3/task4.md
@@ -0,0 +1,41 @@
+---
+title: 'task4'
+description:
+  'This chapter will teach you even more stuff and help you learn some new
+  concepts.'
+type: task
+location: tasks
+next: task1
+prev: task2
+id: 4
+---
+<exercise id="21" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+
+<choice>
+<opt text="Answer one">
+
+This is not the correct answer.
+
+</opt>
+
+<opt text="Answer two" correct="true">
+
+Good job!
+
+</opt>
+
+<opt text="Answer three">
+
+This is not correct either.
+
+</opt>
+</choice>
+
+
+</exercise>
+
+
+
diff --git a/tasks/chapter4/text-classification-1-2017.md b/tasks/chapter4/text-classification-1-2017.md
new file mode 100644
index 0000000000000000000000000000000000000000..77dde0f748118c0c4f6f22f59882373d8e279625
--- /dev/null
+++ b/tasks/chapter4/text-classification-1-2017.md
@@ -0,0 +1,40 @@
+---
+title: 'Text classification'
+description:
+  'Naive Bayes text classifier'
+type: task
+location: tasks
+id: 20171
+prev: null
+next: null
+---
+
+
+# Text classification
+A Naive Bayes text classifier has to decide whether the document β€˜Stockholm Oslo’ is news about Sweden (classS) or news about Denmark (klassD).
+
+<exercise id="34" title="News documents">
+
+
+<multi-answer>
+Estimate the relevant probabilities from the following document collection usingMaximum Likelihood estimation. Answer with fractions.
+
+|   | document             |class   |   |                                           |
+|---|----------------------|--------|---|-------------------------------------------|
+| 1 |Stockhokm Oslo        |S       |   | <regex-input regex="1337$" id=1></regex-input>  |
+| 2 |KΓΆpenhamn Stockholm   |D       |   | <regex-input regex="1337$" id=2></regex-input>  |
+| 3 |tockholm KΓΆpenhamn    |S       |   | <regex-input regex="1337$" id=3></regex-input>  |
+| 4 |ΓΆpenhamn Oslo         |D       |   | <regex-input regex="1337$" id=4></regex-input>  |
+
+
+</multi-answer>
+
+
+
+
+
+</exercise>
+
+
+
+
diff --git a/tasks/generate_chapter.py b/tasks/generate_chapter.py
new file mode 100644
index 0000000000000000000000000000000000000000..11f15424163b46c017b94876e4fed2d5ca2d3e90
--- /dev/null
+++ b/tasks/generate_chapter.py
@@ -0,0 +1,64 @@
+import os
+import uuid
+
+def verify_name(name):
+    if len(name) == 0:
+        print("Invalid name\nAborting...")
+        exit()
+
+
+template = {
+    "title" : "",
+    "description" : "",
+    "type" : "",
+    "next" : "",
+    "prev" : "",
+    "id" : ""
+}
+
+def fill_template(chapter_title):
+
+    template["title"] = chapter_title
+    template["type"] = "chapter"
+    template["id"] = "'" + str(uuid.uuid4()) + "'"
+
+    data = ""
+    data += "---\n"
+    for key, val in template.items():
+       data += "{0}: {1}\n".format(key, val)
+
+    data += "---\n"
+
+    return data
+
+
+print("Chapter name:")
+chapter_name = input()
+
+verify_name(chapter_name)
+
+
+for root, dirs, files in os.walk("."):
+    break
+
+if chapter_name in dirs or chapter_name + ".md" in files:
+    print("Chapter already exists")
+    print("Aborting...")
+    exit()
+
+
+print("Generating a chapter named {0}...".format(chapter_name))
+
+data = fill_template(chapter_name)
+
+script_dir = os.path.dirname(os.path.realpath('__file__'))
+abs_file_path = os.path.join(script_dir, chapter_name + ".md")
+
+with open(abs_file_path, "w") as f:
+    f.write(data)
+
+os.mkdir(chapter_name)
+
+
+print("Chapter generated")
+
diff --git a/tasks/generate_id.py b/tasks/generate_id.py
new file mode 100644
index 0000000000000000000000000000000000000000..066026171fcd1c51f0966dea8aaf60a3140c3a57
--- /dev/null
+++ b/tasks/generate_id.py
@@ -0,0 +1,4 @@
+import os
+import uuid
+print("ID: ")
+print(uuid.uuid4())
diff --git a/tasks/generate_task.py b/tasks/generate_task.py
new file mode 100644
index 0000000000000000000000000000000000000000..7d30ebb4a775c461c525de569c8c506b9a205522
--- /dev/null
+++ b/tasks/generate_task.py
@@ -0,0 +1,95 @@
+import os
+import uuid
+
+def verify_name(name):
+    if len(name) == 0:
+        print("Invalid name\nAborting...")
+        exit()
+
+
+template = {
+    "title" : "",
+    "description" : "",
+    "type" : "",
+    "location" : "",
+    "chapter_id" : "", 
+    "next" : "",
+    "prev" : "",
+    "id" : "",
+    "index" : 0
+}
+
+def fill_template(chapter_name, task_name, chapter_id):
+    template["title"] = task_name
+    template["location"] = chapter_name
+    template["chapter_id"] = chapter_id
+    template["type"] = "task"
+    template["id"] = "'" + str(uuid.uuid4()) + "'"
+
+    data = ""
+    data += "---\n"
+    for key, val in template.items():
+       data += "{0}: {1}\n".format(key, val)
+
+    data += "---\n"
+
+    return data
+
+def get_chapter_id(file):
+    data = file.readlines()
+
+    for line in data:
+        if line.startswith("id:"):
+            splitted_line = line.split()
+            return splitted_line[1]
+
+
+
+print("Chapter name:")
+chapter_name = input()
+
+verify_name(chapter_name)
+
+
+for root, dirs, files in os.walk("."):
+    break
+
+if chapter_name not in dirs:
+    print("Chapter not found")
+    print("Aborting...")
+    exit()
+
+print("Chapter found: " + chapter_name)
+
+
+
+print("Task name:")
+task_name = input()
+
+for root, dirs, files in os.walk(chapter_name):
+    if task_name + ".md" in files:
+        print("Task already exists")
+        print("Aborting...")
+        exit()
+
+
+verify_name(task_name)
+
+print("Generating a task named {0} in the chapter {1}...".format(task_name, chapter_name))
+
+chapter_file = open(chapter_name + ".md")
+chapter_id = get_chapter_id(chapter_file)
+
+data = fill_template(chapter_name, task_name, chapter_id)
+
+script_dir = os.path.dirname(os.path.realpath('__file__'))
+rel_path = chapter_name
+abs_file_path = os.path.join(script_dir, rel_path,task_name + ".md")
+
+print(abs_file_path)
+with open(abs_file_path, "w") as f:
+    f.write(data)
+
+
+print("Task generated")
+
diff --git a/tasks/progress_chapter.md b/tasks/progress_chapter.md
new file mode 100644
index 0000000000000000000000000000000000000000..9b8bf999dd38122a707fd3eb25585f595f3175ce
--- /dev/null
+++ b/tasks/progress_chapter.md
@@ -0,0 +1,8 @@
+---
+title: progress_chapter
+description: 
+type: chapter
+next: 
+prev: 
+id: '09d8c918-ad0d-4ebd-b103-30c903d1d45d'
+---
diff --git a/tasks/progress_chapter/prog1.md b/tasks/progress_chapter/prog1.md
new file mode 100644
index 0000000000000000000000000000000000000000..ee3308cf07a2dec5eb61e55a536e7fb68bc7282b
--- /dev/null
+++ b/tasks/progress_chapter/prog1.md
@@ -0,0 +1,31 @@
+---
+title: prog1
+description: 
+type: task
+location: progress_chapter
+chapter_id: '09d8c918-ad0d-4ebd-b103-30c903d1d45d'
+next: 
+prev: 
+id: '9cde2ca8-c4ba-4caa-a5fb-f6c0c796fd13'
+index: 
+---
+
+<exercise id="7c5fc3b5-3ec1-4cb6-bdd7-002c34fff91f" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+
+  <opt text="Answer one" correct="true">
+  This is not the correct answer.
+  </opt>
+
+<opt text="Answer two" correct="true">
+Good job!
+</opt>
+
+<opt text="Answer three">
+This is not correct either.
+</opt>
+
+</multichoice>
diff --git a/tasks/progress_chapter/prog2.md b/tasks/progress_chapter/prog2.md
new file mode 100644
index 0000000000000000000000000000000000000000..900dd7730b08fc606fbf6bf8843904d21654da70
--- /dev/null
+++ b/tasks/progress_chapter/prog2.md
@@ -0,0 +1,31 @@
+---
+title: prog2
+description: 
+type: task
+location: progress_chapter
+chapter_id: '09d8c918-ad0d-4ebd-b103-30c903d1d45d'
+next: 
+prev: 
+id: 'd5588fb0-7290-4bff-a0a0-ce9f38aaeffe'
+index: 1
+---
+
+<exercise id="1e49c1a4-d278-413b-92dc-9465cf7d9f60" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+
+  <opt text="Answer one" correct="true">
+  This is not the correct answer.
+  </opt>
+
+<opt text="Answer two" correct="true">
+Good job!
+</opt>
+
+<opt text="Answer three">
+This is not correct either.
+</opt>
+
+</multichoice>
diff --git a/tasks/progress_chapter/prog3.md b/tasks/progress_chapter/prog3.md
new file mode 100644
index 0000000000000000000000000000000000000000..b256b58dc990b5245ea5e5835a014d0374b1f104
--- /dev/null
+++ b/tasks/progress_chapter/prog3.md
@@ -0,0 +1,31 @@
+---
+title: prog3
+description: 
+type: task
+location: progress_chapter
+chapter_id: '09d8c918-ad0d-4ebd-b103-30c903d1d45d'
+next: 
+prev: 
+id: '23f0b72f-af60-4793-bb9c-7d6b775b72fa'
+index: 2
+---
+
+<exercise id="cf753c41-b63e-4c41-ae94-58ae5a5e7d0a" title="Getting Started">
+
+Let's ask some questions about the slides. Whats the correct answer?
+
+<multichoice right="Fint!" partial="NΓ€stan rΓ€tt." wrong="Inte rΓ€tt alls.">
+
+  <opt text="Answer one" correct="true">
+  This is not the correct answer.
+  </opt>
+
+<opt text="Answer two" correct="true">
+Good job!
+</opt>
+
+<opt text="Answer three">
+This is not correct either.
+</opt>
+
+</multichoice>
diff --git a/tasks/test_chap.md b/tasks/test_chap.md
new file mode 100644
index 0000000000000000000000000000000000000000..73ede23def491e6285e8e65ec445a59c2d5265ae
--- /dev/null
+++ b/tasks/test_chap.md
@@ -0,0 +1,8 @@
+---
+title: test_chap
+description: 
+type: chapter
+next: 
+prev: 
+id: '098c6496-df8c-4a95-b0c5-a101eabd73d9'
+---
diff --git a/tasks/test_chap/test.md b/tasks/test_chap/test.md
new file mode 100644
index 0000000000000000000000000000000000000000..6ff0f5b5a1d9948db7aadc0bf6e967e85347759f
--- /dev/null
+++ b/tasks/test_chap/test.md
@@ -0,0 +1,10 @@
+---
+title: test
+description: 
+type: task
+chapter_id: '098c6496-df8c-4a95-b0c5-a101eabd73d9'
+next: 
+prev: 
+id: '72637e67-6f01-4552-8e56-777b695970b2'
+index: 0
+---
diff --git a/theme.sass b/theme.sass
new file mode 100644
index 0000000000000000000000000000000000000000..7e29cab273b9558d97d8ca2fb4e412687825d660
--- /dev/null
+++ b/theme.sass
@@ -0,0 +1,114 @@
+\:root
+    --font-primary: 'Montserrat', 'Work Sans', Lato, Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'
+    --font-display: 'Montserrat', 'Work Sans', 'IBM Plex Sans', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'
+    --font-code: 'IBM Plex Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace
+
+    // Font Sizes
+    --font-size-xs: 1.15rem
+    --font-size-sm: 1.3rem
+    --font-size-md: 1.5rem
+    --font-size-lg: 1.8rem
+    --font-size-xl: 2.4rem
+
+    --hero-height: 80vh
+
+    // Line heights
+    --line-height: 1.6
+
+    // Colors
+    body
+        --color-back: #fff
+        --color-secondary-back: #f7f7f7
+        --color-front: #444
+        --color-theme: #de7878
+        --color-theme-contrast: #fff
+        --color-subtle-dark: #777
+        --color-subtle-medium: #eee
+        --color-subtle-light: #f9f9f9
+        --color-background-code: #7a818117
+
+        --color-button-primary: #29c15b
+        --color-button-primary-contrast: #fff
+        --color-button-secondary: #cdcdd4
+        --color-button-secondary-contrast: #686873
+        --color-button-danger: #d21313
+        --color-button-danger-contrast: #fff
+
+        --color-correct-light: #e3fde8
+        --color-correct-dark: #44bf7d
+        --color-incorrect-light: #fde7e7
+        --color-incorrect-dark: #d21313
+        --color-partial-dark: #f7f264
+        --color-partial-light: #f7e980
+
+        // Syntax Highlighting
+        // based on https://github.com/sdras/night-owl-vscode-theme
+        --syntax-background: #f7f7f7
+        --syntax-text: #403f53
+        --syntax-selected-background: #7a81812b
+        --syntax-comment: #989fb1
+        --syntax-tag: #994cc3
+        --syntax-number: #aa0982
+        --syntax-selector: #994cc3
+        --syntax-operator: #994cc3
+        --syntax-function: #4876d6
+        --syntax-keyword: #994cc3
+        --syntax-regex: #5ca7e4
+
+        --ansi-green: #12dc55
+        --ansi-red: #f76464
+        --ansi-cyan: #00d8ff
+
+        --color-background-disabled: #b3b3b3
+        --color-border-disabled: #ada9a9
+
+    body.dark-mode
+        --color-back: #121212
+        --color-secondary-back: #1d1d1d
+        --color-front: #ffffff
+        --color-theme: #bb86fc
+        --color-theme-contrast: #fff
+        --color-subtle-dark: #222222
+        --color-subtle-medium: #222222
+        --color-subtle-light: #383838
+        --color-background-code: #7a818117
+
+        --color-button-primary: #58bd2e
+        --color-button-primary-contrast: #fff
+        --color-button-secondary: #cdcdd4
+        --color-button-secondary-contrast: #686873
+        --color-button-danger: #d21313
+        --color-button-danger-contrast: #fff
+
+        --color-correct-light: #1e221e
+        --color-correct-dark: #007737
+        --color-incorrect-light: #663030
+        --color-incorrect-dark: #df5353
+        --color-partial-light: #4b4f04
+        --color-partial-dark: #444437
+
+        // Syntax Highlighting
+        // based on https://github.com/sdras/night-owl-vscode-theme
+        --syntax-background: #121212
+        --syntax-text: #d6deeb
+        --syntax-selected-background: #7a81812b
+        --syntax-comment: #637777
+        --syntax-tag: #caece6
+        --syntax-number: #F78C6C
+        --syntax-selector: #c792ea
+        --syntax-operator: #c792ea
+        --syntax-function: #82AAFF
+        --syntax-keyword: #c792ea
+        --syntax-regex: #5ca7e4
+
+        --ansi-green: #99e5b3
+        --ansi-red: #f76464
+        --ansi-cyan: #00d8ff
+
+        --color-background-disabled: #9c9a9a
+        --color-border-disabled: #ada9a9
+
+    // Sizes
+    --width-container: 800px
+    --size-profile-pic: 125px
+    --border-radius: 5px