This is an automated email from the ASF dual-hosted git repository.

shamrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 11579d758c Update NodeJS dependency to 18.x (#7242)
11579d758c is described below

commit 11579d758ca3b166cbeb49f1090ac4b0cd66311c
Author: ocket8888 <[email protected]>
AuthorDate: Thu Dec 15 07:35:00 2022 -0700

    Update NodeJS dependency to 18.x (#7242)
    
    * Upgrade to use Node version 18 for everything that uses Node
    
    * Remove unused, duplicated, and out-of-date TP Dockerfiles
    
    * Update CHANGELOG
    
    * Fixing missing node symlinks
    
    * Reconcile indentation
    
    Now uses spaces instead of real indentation 🤢
---
 .github/workflows/tp.integration.tests.yml         |    2 +-
 .github/workflows/tpv2.yml                         |   12 +-
 CHANGELOG.md                                       |    1 +
 dev/tpv2/Dockerfile                                |    2 +-
 dev/traffic_portal/Dockerfile                      |    2 +-
 docs/source/admin/traffic_portal/index.rst         |    6 +-
 docs/source/development/traffic_portal.rst         |    2 +-
 experimental/traffic-portal/README.md              |    8 +-
 experimental/traffic-portal/package-lock.json      |   14 +-
 experimental/traffic-portal/package.json           |    4 +-
 .../cdn-in-a-box/traffic_portal/Dockerfile         |    5 +-
 .../traffic_portal_integration_test/Dockerfile     |    6 +-
 .../docker/build/Dockerfile-traffic_portal         |    6 +-
 infrastructure/docker/traffic_portal/Dockerfile    |   38 -
 infrastructure/docker/traffic_portal/run.sh        |   64 -
 traffic_portal/Dockerfile                          |   22 -
 traffic_portal/build/README.md                     |   12 +-
 traffic_portal/build/traffic_portal.spec           |    2 +-
 traffic_portal/docker/Dockerfile                   |   22 -
 traffic_portal/docker/docker-compose.yml           |   32 -
 traffic_portal/docker/reset.sh                     |   28 -
 traffic_portal/package.json                        |    4 +
 traffic_portal/test/integration/README.md          |    2 +-
 traffic_portal/test/integration/package-lock.json  |   28 +-
 traffic_portal/test/integration/package.json       |    6 +-
 traffic_portal/test/integration/pnpm-lock.yaml     | 1775 +++++++++-----------
 26 files changed, 816 insertions(+), 1289 deletions(-)

diff --git a/.github/workflows/tp.integration.tests.yml 
b/.github/workflows/tp.integration.tests.yml
index bf12f24283..eb4f8a6107 100644
--- a/.github/workflows/tp.integration.tests.yml
+++ b/.github/workflows/tp.integration.tests.yml
@@ -20,7 +20,7 @@ name: TP Tests
 env:
   # alpine:3.13
   ALPINE_VERSION: 
sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
-  NODE_VERSION: 16
+  NODE_VERSION: 18
 
 on:
   push:
diff --git a/.github/workflows/tpv2.yml b/.github/workflows/tpv2.yml
index 39b69d4c7c..6b4c335f0d 100644
--- a/.github/workflows/tpv2.yml
+++ b/.github/workflows/tpv2.yml
@@ -52,10 +52,10 @@ jobs:
           restore-keys: |
             ${{ runner.os }}-node-
 
-      - name: Node 16
+      - name: Node 18
         uses: actions/setup-node@v3
         with:
-          node-version: 16.x
+          node-version: 18.x
 
       - name: NPM install
         if: steps.restore-npm-cache.cache-hit != 'true'
@@ -84,10 +84,10 @@ jobs:
           restore-keys: |
             ${{ runner.os }}-node-
 
-      - name: Node 16
+      - name: Node 18
         uses: actions/setup-node@v3
         with:
-          node-version: 16.x
+          node-version: 18.x
 
       - name: NPM install
         if: steps.restore-npm-cache.cache-hit != 'true'
@@ -116,10 +116,10 @@ jobs:
           restore-keys: |
             ${{ runner.os }}-node-
 
-      - name: Node 16
+      - name: Node 18
         uses: actions/setup-node@v3
         with:
-          node-version: 16.x
+          node-version: 18.x
 
       - name: Install latest Chrome
         run: sudo apt-get update && sudo apt-get install google-chrome-stable
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca36c02dc2..c222fe8c07 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,6 +30,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 - [#7037](https://github.com/apache/trafficcontrol/pull/7037) *Traffic Router* 
Uses Traffic Ops API 4.0 by default
 - [#7191](https://github.com/apache/trafficcontrol/issues/7191) 
*tc-health-client* Uses Traffic Ops API 4.0. Also added reload option to 
systemd service file
 - [#4654](https://github.com/apache/trafficcontrol/pull/4654) *Traffic Ops, 
Traffic Portal* Switched Delivery Service active state to a three-value system, 
adding a state that will be used to prevent cache servers from deploying DS 
configuration.
+- [#7242](https://github.com/apache/trafficcontrol/pull/7242) *Traffic Portal* 
Now depends on NodeJS version 18 or later.
 
 ### Fixed
 - [#7231](https://github.com/apache/trafficcontrol/pull/7231) *Traffic Ops, 
Traffic Portal* Fixed `sharedUserNames` display while retrieving CDN locks.
diff --git a/dev/tpv2/Dockerfile b/dev/tpv2/Dockerfile
index e4a8be7e96..20e42e63bf 100644
--- a/dev/tpv2/Dockerfile
+++ b/dev/tpv2/Dockerfile
@@ -23,7 +23,7 @@ RUN openssl genrsa -passout pass:x -out server.pass.key 2048 
&& \
        openssl rand 32 | base64 > /aes.key && \
     chmod 644 /server.key /aes.key
 
-FROM node:16-alpine AS tpv2-dev
+FROM node:18-alpine AS tpv2-dev
 
 ENV TC="/go/src/github.com/apache/trafficcontrol"
 VOLUME $TC
diff --git a/dev/traffic_portal/Dockerfile b/dev/traffic_portal/Dockerfile
index 62a87f4b6f..ef35603e26 100644
--- a/dev/traffic_portal/Dockerfile
+++ b/dev/traffic_portal/Dockerfile
@@ -22,7 +22,7 @@ RUN openssl genrsa -passout pass:x -out server.pass.key 2048 
&& \
        openssl rand 32 | base64 > /aes.key && \
     chmod 644 /server.key /aes.key
 
-FROM node:16-alpine AS trafficportal-dev
+FROM node:18-alpine AS trafficportal-dev
 
 ENV TC="/go/src/github.com/apache/trafficcontrol"
 VOLUME $TC
diff --git a/docs/source/admin/traffic_portal/index.rst 
b/docs/source/admin/traffic_portal/index.rst
index 4880326e42..ceeb009b55 100644
--- a/docs/source/admin/traffic_portal/index.rst
+++ b/docs/source/admin/traffic_portal/index.rst
@@ -16,18 +16,18 @@
 **************
 Traffic Portal
 **************
-Traffic Portal is only supported on CentOS Linux distributions version 7.x and 
8.x. It runs on `NodeJS <https://nodejs.org/>`_ and requires version 12 or 
higher.
+Traffic Portal is only supported on CentOS Linux distributions version 7.x and 
8.x. It runs on `NodeJS <https://nodejs.org/>`_ and requires version 16 or 
higher.
 
 Installing
 ==========
 #. Build the Traffic Portal RPM using the instructions in :ref:`dev-building`.
 #. Copy the Traffic Portal RPM to your server
-#. Install NodeJS. This can be done by building it from source, installing 
with :manpage:`yum(8)` if it happens to be in your available repositories (at 
version 12+), or using the NodeSource setup script.
+#. Install NodeJS. This can be done by building it from source, installing 
with :manpage:`yum(8)` if it happens to be in your available repositories (at 
version 18+), or using the NodeSource setup script.
 
        .. code-block:: bash
                :caption: Installing NodeJS using the NodeSource Setup Script
 
-               curl --silent --location https://rpm.nodesource.com/setup_12.x 
| sudo bash -
+               curl --silent --location https://rpm.nodesource.com/setup_18.x 
| sudo bash -
 
 #. Install the Traffic Portal RPM with :manpage:`yum(8)` or :manpage:`rpm(8)` 
e.g. by running ``yum install path/to/traffic_portal.rpm`` as the root user or 
with :manpage:`sudo(8)`.
 
diff --git a/docs/source/development/traffic_portal.rst 
b/docs/source/development/traffic_portal.rst
index dd575fb4ae..cb44f0f3c1 100644
--- a/docs/source/development/traffic_portal.rst
+++ b/docs/source/development/traffic_portal.rst
@@ -29,7 +29,7 @@ Software Requirements
 =====================
 To work on Traffic Portal you need a \*nix (MacOS and Linux are most commonly 
used) environment that has the following installed:
 
-* `Node.js 12.0.x or above <https://nodejs.org/en/>`_
+* `Node.js 18.0.x or above <https://nodejs.org/en/>`_
 * `Grunt CLI 1.2.0 or above <https://github.com/gruntjs/grunt-cli>`_
 * Access to a working instance of Traffic Ops
 
diff --git a/experimental/traffic-portal/README.md 
b/experimental/traffic-portal/README.md
index d89a3be855..7260354fa7 100644
--- a/experimental/traffic-portal/README.md
+++ b/experimental/traffic-portal/README.md
@@ -21,7 +21,7 @@ CDN architectures. The eventual goal is to slowly eat Traffic 
Portal by
 importing all of its functionality once the self-service UI is complete.
 
 ## Prerequisites
-Traffic Portal runs on [NodeJS](https://nodejs.org/) version 13 (or later) and
+Traffic Portal runs on [NodeJS](https://nodejs.org/) version 18 (or later) and
 uses its built-in NPM package manager to manage dependencies.
 
 ## Building and Running
@@ -165,11 +165,11 @@ End-to-end testing uses NightwatchJS and can be run by 
using `ng e2e`. More
 detailed instructions can be found in the `nightwatch/` folder
 
 ## Extending Traffic Portal
-Traffic Portal supports extending functionality through the use of Angular 
modules. 
+Traffic Portal supports extending functionality through the use of Angular 
modules.
 The `Custom` module (located at `src/app/custom/`) contains the code to do so 
and any additional
 functionality should be added here as you would to any other Angular module. 
By default,
-this module is not built or included in the main bundle, to enable this modify 
the environment 
-(`src/environments`) variable `customModule` to true. 
+this module is not built or included in the main bundle, to enable this modify 
the environment
+(`src/environments`) variable `customModule` to true.
 
 ## Contributing
 This project uses `eslint` and an `.editorconfig` file for maintaining code
diff --git a/experimental/traffic-portal/package-lock.json 
b/experimental/traffic-portal/package-lock.json
index f3e3b562d8..b9f3a88759 100644
--- a/experimental/traffic-portal/package-lock.json
+++ b/experimental/traffic-portal/package-lock.json
@@ -50,7 +50,7 @@
         "@types/jasmine": "~3.6.0",
         "@types/jasminewd2": "~2.0.3",
         "@types/nightwatch": "^2.3.14",
-        "@types/node": "^14.17.34",
+        "@types/node": "^18.11.12",
         "@typescript-eslint/eslint-plugin": "^5.36.2",
         "@typescript-eslint/parser": "^5.36.2",
         "axios": "^0.27.2",
@@ -3926,9 +3926,9 @@
       }
     },
     "node_modules/@types/node": {
-      "version": "14.18.33",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz";,
-      "integrity": 
"sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==",
+      "version": "18.11.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz";,
+      "integrity": 
"sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==",
       "dev": true
     },
     "node_modules/@types/parse-json": {
@@ -21273,9 +21273,9 @@
       }
     },
     "@types/node": {
-      "version": "14.18.33",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz";,
-      "integrity": 
"sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==",
+      "version": "18.11.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz";,
+      "integrity": 
"sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==",
       "dev": true
     },
     "@types/parse-json": {
diff --git a/experimental/traffic-portal/package.json 
b/experimental/traffic-portal/package.json
index 8a78608320..44d8f85a60 100644
--- a/experimental/traffic-portal/package.json
+++ b/experimental/traffic-portal/package.json
@@ -24,7 +24,7 @@
     "Traffic Portal"
   ],
   "engines": {
-    "node": ">=14"
+    "node": ">=18"
   },
   "engineStrict": true,
   "scripts": {
@@ -90,7 +90,7 @@
     "@types/jasmine": "~3.6.0",
     "@types/jasminewd2": "~2.0.3",
     "@types/nightwatch": "^2.3.14",
-    "@types/node": "^14.17.34",
+    "@types/node": "^18.11.12",
     "@typescript-eslint/eslint-plugin": "^5.36.2",
     "@typescript-eslint/parser": "^5.36.2",
     "axios": "^0.27.2",
diff --git a/infrastructure/cdn-in-a-box/traffic_portal/Dockerfile 
b/infrastructure/cdn-in-a-box/traffic_portal/Dockerfile
index 55babf7139..d4ff1efde7 100644
--- a/infrastructure/cdn-in-a-box/traffic_portal/Dockerfile
+++ b/infrastructure/cdn-in-a-box/traffic_portal/Dockerfile
@@ -30,7 +30,7 @@ RUN if [[ "${RHEL_VERSION%%.*}" -eq 7 ]]; then \
         yum -y install dnf || exit 1; \
     fi
 
-RUN curl -sL https://rpm.nodesource.com/setup_12.x | bash -
+RUN curl -sL https://rpm.nodesource.com/setup_18.x | bash -
 
 # Override TRAFFIC_PORTAL_RPM arg to use a different one using --build-arg 
TRAFFIC_PORTAL_RPM=...  Can be local file or http://...
 ARG TRAFFIC_PORTAL_RPM=traffic_portal/traffic_portal.rpm
@@ -48,8 +48,7 @@ RUN dnf install -y epel-release && \
       gettext \
       bind-utils \
       net-tools && \
-    dnf clean all || \
-    echo "ERROR INSTALLING PACKAGES"
+    dnf clean all
 
 ADD $TRAFFIC_PORTAL_RPM /
 RUN rpm -Uvh /$(basename $TRAFFIC_PORTAL_RPM) && \
diff --git 
a/infrastructure/cdn-in-a-box/traffic_portal_integration_test/Dockerfile 
b/infrastructure/cdn-in-a-box/traffic_portal_integration_test/Dockerfile
index 055c027593..9c50e334cd 100644
--- a/infrastructure/cdn-in-a-box/traffic_portal_integration_test/Dockerfile
+++ b/infrastructure/cdn-in-a-box/traffic_portal_integration_test/Dockerfile
@@ -47,10 +47,8 @@ RUN if [[ "${RHEL_VERSION%%.*}" -eq 7 ]]; then \
 
 FROM os-dependencies AS node-dependencies
 # Download and install node
-RUN curl -Lo node.tar.xz 
https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz && \
-    tar --strip-components=1 -C /usr/local -xf node.tar.xz && \
-    rm node.tar.xz && \
-    npm i -g webdriver-manager
+RUN curl -sL https://rpm.nodesource.com/setup_18.x | bash -
+RUN npm i -g webdriver-manager
 
 FROM node-dependencies
 
diff --git a/infrastructure/docker/build/Dockerfile-traffic_portal 
b/infrastructure/docker/build/Dockerfile-traffic_portal
index c71903bbff..ffad25542e 100644
--- a/infrastructure/docker/build/Dockerfile-traffic_portal
+++ b/infrastructure/docker/build/Dockerfile-traffic_portal
@@ -40,10 +40,8 @@ RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-* && \
 ### traffic_portal specific
 FROM common-dependencies AS traffic-portal
 
-RUN    curl -sL https://rpm.nodesource.com/setup_12.x | bash - && \
-       yum -y install \
-               make \
-               nodejs && \
+RUN    curl -sL https://rpm.nodesource.com/setup_18.x | bash - && \
+       yum -y install make nodejs && \
        npm -g install grunt-cli sass
 
 ###
diff --git a/infrastructure/docker/traffic_portal/Dockerfile 
b/infrastructure/docker/traffic_portal/Dockerfile
deleted file mode 100644
index 619f269740..0000000000
--- a/infrastructure/docker/traffic_portal/Dockerfile
+++ /dev/null
@@ -1,38 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-############################################################
-# Dockerfile to build Traffic Portal container images
-# Based on CentOS 7.2
-############################################################
-
-FROM centos/systemd
-
-RUN curl -sL https://rpm.nodesource.com/setup_12.x | bash -
-
-ARG RPM=traffic_portal.rpm
-ADD $RPM /
-
-RUN yum install -y epel-release
-RUN yum install -y jq nodejs openssl gettext bind-utils net-tools /$(basename 
$RPM)
-
-RUN rm /$(basename $RPM)
-
-RUN yum clean all
-
-ADD run.sh /
-CMD /run.sh
diff --git a/infrastructure/docker/traffic_portal/run.sh 
b/infrastructure/docker/traffic_portal/run.sh
deleted file mode 100755
index 7ba8d006fc..0000000000
--- a/infrastructure/docker/traffic_portal/run.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-set -o errexit
-
-NAME="Traffic Portal Application"
-NODE_BIN_DIR="/usr/bin"
-PM2_BIN_DIR="/opt/traffic_portal/node_modules/pm2/bin"
-APPLICATION_PATH="/opt/traffic_portal/server.js"
-PIDFILE="/var/run/traffic_portal.pid"
-LOGFILE="/var/log/traffic_portal/traffic_portal.log"
-RESTART_TIME="2000"
-
-envvars=(TO_SERVER TO_PORT DOMAIN)
-for v in "${envvars}"; do
-       if [[ -z $$v ]]; then echo "$v is unset"; exit 1; fi
-done
-
-CONF_DIR="/opt/traffic_portal/conf"
-
-mkdir -p "${CONF_DIR}"
-
-KEY_FILE="${CONF_DIR}/key.pem"
-CERT_FILE="${CONF_DIR}/cert.pem"
-openssl req -nodes -x509 -newkey rsa:4096 -keyout "${KEY_FILE}" -out 
"${CERT_FILE}" -days 365 -subj "/CN=${DOMAIN}"
-
-CONF_FILE="/etc/traffic_portal/conf/config.js"
-
-sed -i -e "/^\s*base_url:/ s@'.*'@'https://$TO_SERVER:$TO_PORT/api/'@" 
"${CONF_FILE}"
-sed -i -e "/^\s*cert:/ s@'.*'@'${CERT_FILE}'@" "${CONF_FILE}"
-sed -i -e "/^\s*key:/ s@'.*'@'${KEY_FILE}'@" "${CONF_FILE}"
-
-props=/opt/traffic_portal/public/traffic_portal_properties.json
-tmp=$(mktemp)
-
-jq --arg TO_SERVER "$TO_SERVER:$TO_PORT" '.properties.api.baseUrl = 
"https://"+$TO_SERVER' <$props >$tmp
-mv $tmp $props
-
-# Add node to the path for situations in which the environment is passed.
-PATH=$PM2_BIN_DIR:$NODE_BIN_DIR:$PATH
-pm2 \
-    start "$APPLICATION_PATH" \
-    -p $PIDFILE \
-    -l $LOGFILE \
-    --restart-delay $RESTART_TIME \
-    --time \
-    --name "$NAME"
-
-tail -f /dev/null
diff --git a/traffic_portal/Dockerfile b/traffic_portal/Dockerfile
deleted file mode 100644
index 93aa0a6a55..0000000000
--- a/traffic_portal/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-FROM node:4-onbuild
-#FROM buildpack-deps:jessie
-
-RUN apt-get update -y && apt-get install libffi-dev ruby-dev rubygems vim -y
-
-# replace this with your application's default port
-RUN gem update --system && gem install --no-rdoc --no-ri compass && gem 
install --no-rdoc --no-ri sass -v 3.4.22
-RUN npm install -g grunt-cli
-RUN cd /usr/src/app && /usr/local/bin/grunt dist
diff --git a/traffic_portal/build/README.md b/traffic_portal/build/README.md
index 96d3c58cf5..73a8e8afb7 100644
--- a/traffic_portal/build/README.md
+++ b/traffic_portal/build/README.md
@@ -19,7 +19,7 @@
 
 # Traffic Portal Installation / Configuration
 
-### 1. Build Traffic Portal RPM w/ Docker or fetch Traffic Portal RPM from 
[Jenkins](https://builds.apache.org/view/S-Z/view/TrafficControl/job/trafficcontrol-master-build)
+### 1. Build Traffic Portal RPM w/ Docker
 
 * Build instructions: 
https://github.com/apache/trafficcontrol/blob/master/BUILD.md
 
@@ -28,7 +28,7 @@
 * Install the Node.js JavaScript runtime
 
     ```
-    $ curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo 
bash -
+    $ curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo 
bash -
     $ sudo yum install -y nodejs
     ```
 
@@ -60,8 +60,6 @@
     $ http(s)://ip-address:port
     ```
 
-#### Notes
-
-    - Traffic Portal consumes the Traffic Ops API, therefore, an instance of 
Traffic Ops must be running.
-    - Traffic Portal and Traffic Ops must be running on the same protocol 
(http or https).
-    - This is known to work with CentOS 6.7 and Centos 7 as the host 
environment.
+### Notes
+- Traffic Portal consumes the Traffic Ops API, therefore, an instance of 
Traffic Ops must be running.
+- This is known to work with CentOS 7 and Centos 8 as the host environment.
diff --git a/traffic_portal/build/traffic_portal.spec 
b/traffic_portal/build/traffic_portal.spec
index 02b934c4d0..41abc75f9f 100644
--- a/traffic_portal/build/traffic_portal.spec
+++ b/traffic_portal/build/traffic_portal.spec
@@ -25,7 +25,7 @@ License:  Apache License, Version 2.0
 URL:      https://github.com/apache/trafficcontrol/
 Source:   %{_sourcedir}/traffic_portal-%{traffic_control_version}.tgz
 AutoReqProv: no
-Requires: nodejs >= 2:12.0.0
+Requires: nodejs >= 2:18.0.0
 
 %define traffic_portal_home /opt/traffic_portal
 %description
diff --git a/traffic_portal/docker/Dockerfile b/traffic_portal/docker/Dockerfile
deleted file mode 100644
index 93aa0a6a55..0000000000
--- a/traffic_portal/docker/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-FROM node:4-onbuild
-#FROM buildpack-deps:jessie
-
-RUN apt-get update -y && apt-get install libffi-dev ruby-dev rubygems vim -y
-
-# replace this with your application's default port
-RUN gem update --system && gem install --no-rdoc --no-ri compass && gem 
install --no-rdoc --no-ri sass -v 3.4.22
-RUN npm install -g grunt-cli
-RUN cd /usr/src/app && /usr/local/bin/grunt dist
diff --git a/traffic_portal/docker/docker-compose.yml 
b/traffic_portal/docker/docker-compose.yml
deleted file mode 100644
index 45e38a87be..0000000000
--- a/traffic_portal/docker/docker-compose.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-version: '3.8'
-
-services:
-  portal:
-    build:
-      context: ..
-      dockerfile: /opt/traffic_portal/docker/Dockerfile
-    ports:
-      - 80:80
-      - 443:443
-    volumes:
-      - /etc/traffic_portal/conf:/etc/traffic_portal/conf
-      - /etc/pki:/etc/pki
-    networks:
-      - default
-
-networks:
-  default:
-     driver: bridge
diff --git a/traffic_portal/docker/reset.sh b/traffic_portal/docker/reset.sh
deleted file mode 100755
index 91be282908..0000000000
--- a/traffic_portal/docker/reset.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-sudo systemctl stop traffic_portal
-
-docker rm traffic_portal_1 #remove container
-docker rmi traffic_portal #remove image
-docker ps -a
-
-sudo systemctl start traffic_portal
-
-
-
diff --git a/traffic_portal/package.json b/traffic_portal/package.json
index dd98fee6d0..275345f84b 100644
--- a/traffic_portal/package.json
+++ b/traffic_portal/package.json
@@ -10,6 +10,10 @@
     "build": "grunt build",
     "test:ci": "karma start --single-run --browsers=ChromeHeadlessCustom 
karma.conf.js"
   },
+  "engines": {
+    "node": ">=18"
+  },
+  "engineStrict": true,
   "devDependencies": {
     "angular-mocks": "1.8.3",
     "@types/angular": "^1.8.4",
diff --git a/traffic_portal/test/integration/README.md 
b/traffic_portal/test/integration/README.md
index 62acc724b6..4e1254740f 100644
--- a/traffic_portal/test/integration/README.md
+++ b/traffic_portal/test/integration/README.md
@@ -20,7 +20,7 @@
 This directory contains integration tests for Traffic Portal.
 
 ## Prerequisites
-* [Node](https://nodejs.org) v12 or later.
+* [Node](https://nodejs.org) version 18 or later.
 
 ## Building and Running
 To build and run the tests, one can use the `npm` (or `pnpm`) scripts.
diff --git a/traffic_portal/test/integration/package-lock.json 
b/traffic_portal/test/integration/package-lock.json
index b3955ab63c..90cb5c90b9 100644
--- a/traffic_portal/test/integration/package-lock.json
+++ b/traffic_portal/test/integration/package-lock.json
@@ -18,7 +18,7 @@
         "fs-extra": "^8.1.0",
         "jasmine-reporters": "^2.3.2",
         "jasmine2-protractor-utils": "^1.3.0",
-        "node": "^12.12.0",
+        "node": "^18.12.1",
         "protractor": "^7.0.0",
         "protractor-beautiful-reporter": "^1.3.6",
         "protractor-html-reporter-2": "^1.0.4",
@@ -29,7 +29,7 @@
       "devDependencies": {
         "@types/fs-extra": "^9.0.9",
         "@types/jasmine": "^3.4.6",
-        "@types/node": "^12.12.0",
+        "@types/node": "^18.11.12",
         "jasmine": "^3.5.0",
         "typescript": "^3.6.4"
       },
@@ -67,9 +67,9 @@
       "integrity": 
"sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA=="
     },
     "node_modules/@types/node": {
-      "version": "12.20.7",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz";,
-      "integrity": 
"sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA=="
+      "version": "18.11.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz";,
+      "integrity": 
"sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg=="
     },
     "node_modules/@types/q": {
       "version": "0.0.32",
@@ -1245,9 +1245,9 @@
       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
     },
     "node_modules/node": {
-      "version": "12.21.0",
-      "resolved": "https://registry.npmjs.org/node/-/node-12.21.0.tgz";,
-      "integrity": 
"sha512-yJvxtDNX/bQA2XQjRyoxiPK8mbWnMIDFLAeRnteWTUA+KKISMxWbeM5JioO4FzZSxBe7qEmoZXrWa8w5OfMauw==",
+      "version": "18.12.1",
+      "resolved": "https://registry.npmjs.org/node/-/node-18.12.1.tgz";,
+      "integrity": 
"sha512-zQ0AYW1IFDTP+0c+cp3Brn6l9VRvvhBiYCvJSKK/dM7ndMh5PCIi2nwJJ7uFJsGT3OlfLdqyA67G6Otcz1WYug==",
       "hasInstallScript": true,
       "dependencies": {
         "node-bin-setup": "^1.0.0"
@@ -2425,9 +2425,9 @@
       "integrity": 
"sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA=="
     },
     "@types/node": {
-      "version": "12.20.7",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz";,
-      "integrity": 
"sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA=="
+      "version": "18.11.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.12.tgz";,
+      "integrity": 
"sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg=="
     },
     "@types/q": {
       "version": "0.0.32",
@@ -3368,9 +3368,9 @@
       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
     },
     "node": {
-      "version": "12.21.0",
-      "resolved": "https://registry.npmjs.org/node/-/node-12.21.0.tgz";,
-      "integrity": 
"sha512-yJvxtDNX/bQA2XQjRyoxiPK8mbWnMIDFLAeRnteWTUA+KKISMxWbeM5JioO4FzZSxBe7qEmoZXrWa8w5OfMauw==",
+      "version": "18.12.1",
+      "resolved": "https://registry.npmjs.org/node/-/node-18.12.1.tgz";,
+      "integrity": 
"sha512-zQ0AYW1IFDTP+0c+cp3Brn6l9VRvvhBiYCvJSKK/dM7ndMh5PCIi2nwJJ7uFJsGT3OlfLdqyA67G6Otcz1WYug==",
       "requires": {
         "node-bin-setup": "^1.0.0"
       }
diff --git a/traffic_portal/test/integration/package.json 
b/traffic_portal/test/integration/package.json
index e334c33e67..5aea1c063c 100644
--- a/traffic_portal/test/integration/package.json
+++ b/traffic_portal/test/integration/package.json
@@ -13,7 +13,7 @@
     "fs-extra": "^8.1.0",
     "jasmine-reporters": "^2.3.2",
     "jasmine2-protractor-utils": "^1.3.0",
-    "node": "^12.12.0",
+    "node": "^18",
     "protractor": "^7.0.0",
     "protractor-beautiful-reporter": "^1.3.6",
     "protractor-html-reporter-2": "^1.0.4",
@@ -24,7 +24,7 @@
   "devDependencies": {
     "@types/fs-extra": "^9.0.9",
     "@types/jasmine": "^3.4.6",
-    "@types/node": "^12.12.0",
+    "@types/node": "^18",
     "jasmine": "^3.5.0",
     "typescript": "^3.6.4"
   },
@@ -40,7 +40,7 @@
   "author": "Apache Software Foundation",
   "license": "Apache-2.0",
   "engines": {
-    "node": ">=12"
+    "node": ">=18"
   },
   "engineStrict": true
 }
diff --git a/traffic_portal/test/integration/pnpm-lock.yaml 
b/traffic_portal/test/integration/pnpm-lock.yaml
index a59f8bed05..7ac4ace148 100644
--- a/traffic_portal/test/integration/pnpm-lock.yaml
+++ b/traffic_portal/test/integration/pnpm-lock.yaml
@@ -1,6 +1,31 @@
+lockfileVersion: 5.4
+
+specifiers:
+  '@types/fs-extra': ^9.0.9
+  '@types/jasmine': ^3.4.6
+  '@types/node': ^18
+  '@types/random-ipv6': ^1.0.0
+  axios: ^0.21.2
+  chromedriver: ^78.0.1
+  constants: 0.0.2
+  download-file: ^0.1.5
+  file-exists: ^5.0.1
+  fs-extra: ^8.1.0
+  jasmine: ^3.5.0
+  jasmine-reporters: ^2.3.2
+  jasmine2-protractor-utils: ^1.3.0
+  node: ^18
+  protractor: ^7.0.0
+  protractor-beautiful-reporter: ^1.3.6
+  protractor-html-reporter-2: ^1.0.4
+  random-ipv6: ^1.0.2
+  selenium-webdriver: ^4.0.0-alpha.8
+  typescript: ^3.6.4
+  xlsx: ^0.17.0
+
 dependencies:
   '@types/random-ipv6': 1.0.0
-  axios: 0.21.1
+  axios: 0.21.4
   chromedriver: 78.0.1
   constants: 0.0.2
   download-file: 0.1.5
@@ -8,221 +33,219 @@ dependencies:
   fs-extra: 8.1.0
   jasmine-reporters: 2.3.2
   jasmine2-protractor-utils: 1.3.0
-  node: 12.21.0
-  protractor: 5.4.4
+  node: 18.12.1
+  protractor: 7.0.0
   protractor-beautiful-reporter: 1.3.6
   protractor-html-reporter-2: 1.0.4
   random-ipv6: 1.0.2
   selenium-webdriver: 4.0.0-beta.1
-  xlsx: 0.15.6
+  xlsx: 0.17.5
+
 devDependencies:
   '@types/fs-extra': 9.0.9
   '@types/jasmine': 3.6.4
-  '@types/node': 12.20.4
+  '@types/node': 18.11.12
   jasmine: 3.6.4
   typescript: 3.9.9
-lockfileVersion: 5.2
+
 packages:
+
   /@types/fs-extra/9.0.9:
+    resolution: {integrity: 
sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==}
     dependencies:
-      '@types/node': 12.20.7
+      '@types/node': 18.11.12
     dev: true
-    resolution:
-      integrity: 
sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==
+
   /@types/glob/7.1.3:
+    resolution: {integrity: 
sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==}
     dependencies:
       '@types/minimatch': 3.0.3
-      '@types/node': 12.20.4
+      '@types/node': 18.11.12
     dev: false
-    resolution:
-      integrity: 
sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
+
   /@types/jasmine/3.6.4:
+    resolution: {integrity: 
sha512-CTdMERA4iGNcxeqzD7pavb4WLIFq6bGnx6nIJD+1D4Knx24GE6QBPrWVhO8UlIy7gf7rbIt3ZD7iIzryRD2TgA==}
     dev: true
-    resolution:
-      integrity: 
sha512-CTdMERA4iGNcxeqzD7pavb4WLIFq6bGnx6nIJD+1D4Knx24GE6QBPrWVhO8UlIy7gf7rbIt3ZD7iIzryRD2TgA==
+
   /@types/minimatch/3.0.3:
+    resolution: {integrity: 
sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==}
     dev: false
-    resolution:
-      integrity: 
sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-  /@types/node/12.20.4:
-    resolution:
-      integrity: 
sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ==
-  /@types/node/12.20.7:
-    dev: true
-    resolution:
-      integrity: 
sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==
+
+  /@types/node/18.11.12:
+    resolution: {integrity: 
sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==}
+
   /@types/q/0.0.32:
+    resolution: {integrity: 
sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==}
     dev: false
-    resolution:
-      integrity: sha1-vShOV8hPEyXacCur/IKlMoGQwMU=
+
   /@types/random-ipv6/1.0.0:
+    resolution: {integrity: 
sha512-E+g5NxJrj8COIeAIVdzJiuVIlzAwerEQxJfegPVB+WSFAmwBVCGIfaJ0P+GSJaQdEBraTLje9vqZh6jq7YSqLQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-E+g5NxJrj8COIeAIVdzJiuVIlzAwerEQxJfegPVB+WSFAmwBVCGIfaJ0P+GSJaQdEBraTLje9vqZh6jq7YSqLQ==
+
   /@types/selenium-webdriver/3.0.17:
+    resolution: {integrity: 
sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==}
     dev: false
-    resolution:
-      integrity: 
sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==
+
   /adler-32/1.2.0:
+    resolution: {integrity: 
sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==}
+    engines: {node: '>=0.8'}
+    hasBin: true
     dependencies:
       exit-on-epipe: 1.0.1
       printj: 1.1.2
     dev: false
-    engines:
-      node: '>=0.8'
-    hasBin: true
-    resolution:
-      integrity: sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=
+
   /adm-zip/0.4.16:
+    resolution: {integrity: 
sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==}
+    engines: {node: '>=0.3.0'}
     dev: false
-    engines:
-      node: '>=0.3.0'
-    resolution:
-      integrity: 
sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==
+
   /agent-base/4.3.0:
+    resolution: {integrity: 
sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==}
+    engines: {node: '>= 4.0.0'}
     dependencies:
       es6-promisify: 5.0.0
     dev: false
-    engines:
-      node: '>= 4.0.0'
-    resolution:
-      integrity: 
sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
+
   /ajv/6.12.6:
+    resolution: {integrity: 
sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
     dependencies:
       fast-deep-equal: 3.1.3
       fast-json-stable-stringify: 2.1.0
       json-schema-traverse: 0.4.1
       uri-js: 4.4.1
     dev: false
-    resolution:
-      integrity: 
sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+
   /ansi-regex/2.1.1:
+    resolution: {integrity: 
sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-  /ansi-regex/3.0.0:
+
+  /ansi-regex/5.0.1:
+    resolution: {integrity: 
sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+    engines: {node: '>=8'}
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
   /ansi-styles/2.2.1:
+    resolution: {integrity: 
sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+  /ansi-styles/4.3.0:
+    resolution: {integrity: 
sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+    engines: {node: '>=8'}
+    dependencies:
+      color-convert: 2.0.1
+    dev: false
+
   /array-union/1.0.2:
+    resolution: {integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=}
+    engines: {node: '>=0.10.0'}
     dependencies:
       array-uniq: 1.0.3
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
+
   /array-uniq/1.0.3:
+    resolution: {integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+
   /arrify/1.0.1:
+    resolution: {integrity: 
sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
+
   /asn1/0.2.4:
+    resolution: {integrity: 
sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==}
     dependencies:
       safer-buffer: 2.1.2
     dev: false
-    resolution:
-      integrity: 
sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+
   /assert-plus/1.0.0:
+    resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=}
+    engines: {node: '>=0.8'}
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
   /asynckit/0.4.0:
+    resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=}
     dev: false
-    resolution:
-      integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
   /aws-sign2/0.7.0:
+    resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=}
     dev: false
-    resolution:
-      integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+
   /aws4/1.11.0:
+    resolution: {integrity: 
sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==}
     dev: false
-    resolution:
-      integrity: 
sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-  /axios/0.21.1:
+
+  /axios/0.21.4:
+    resolution: {integrity: 
sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
     dependencies:
-      follow-redirects: 1.13.3
+      follow-redirects: 1.15.2
+    transitivePeerDependencies:
+      - debug
     dev: false
-    resolution:
-      integrity: 
sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
+
   /balanced-match/1.0.0:
-    resolution:
-      integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+    resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
+
   /bcrypt-pbkdf/1.0.2:
+    resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=}
     dependencies:
       tweetnacl: 0.14.5
     dev: false
-    resolution:
-      integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+
   /blocking-proxy/1.0.1:
+    resolution: {integrity: 
sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==}
+    engines: {node: '>=6.9.x'}
+    hasBin: true
     dependencies:
       minimist: 1.2.5
     dev: false
-    engines:
-      node: '>=6.9.x'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==
+
   /brace-expansion/1.1.11:
+    resolution: {integrity: 
sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
     dependencies:
       balanced-match: 1.0.0
       concat-map: 0.0.1
-    resolution:
-      integrity: 
sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+
   /browserstack/1.6.1:
+    resolution: {integrity: 
sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==}
     dependencies:
       https-proxy-agent: 2.2.4
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    resolution:
-      integrity: 
sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==
+
   /buffer-crc32/0.2.13:
+    resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
     dev: false
-    resolution:
-      integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
   /buffer-from/1.1.1:
+    resolution: {integrity: 
sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==}
     dev: false
-    resolution:
-      integrity: 
sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
   /camelcase/5.3.1:
+    resolution: {integrity: 
sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
   /caseless/0.12.0:
+    resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=}
     dev: false
-    resolution:
-      integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+
   /cfb/1.2.0:
+    resolution: {integrity: 
sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==}
+    engines: {node: '>=0.8'}
     dependencies:
       adler-32: 1.2.0
       crc-32: 1.2.0
       printj: 1.1.2
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: 
sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==
+
   /chalk/1.1.3:
+    resolution: {integrity: 
sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       ansi-styles: 2.2.1
       escape-string-regexp: 1.0.5
@@ -230,161 +253,145 @@ packages:
       strip-ansi: 3.0.1
       supports-color: 2.0.0
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+
   /chromedriver/78.0.1:
+    resolution: {integrity: 
sha512-eOsyFk4xb9EECs1VMrDbxO713qN+Bu1XUE8K9AuePc3839TPdAegg72kpXSzkeNqRNZiHbnJUItIVCLFkDqceA==}
+    hasBin: true
+    requiresBuild: true
     dependencies:
       del: 4.1.1
       extract-zip: 1.7.0
       mkdirp: 0.5.5
       request: 2.88.2
       tcp-port-used: 1.0.2
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    hasBin: true
-    requiresBuild: true
-    resolution:
-      integrity: 
sha512-eOsyFk4xb9EECs1VMrDbxO713qN+Bu1XUE8K9AuePc3839TPdAegg72kpXSzkeNqRNZiHbnJUItIVCLFkDqceA==
+
   /circular-json/0.3.3:
+    resolution: {integrity: 
sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==}
     deprecated: CircularJSON is in maintenance only, flatted is its successor.
     dev: false
-    resolution:
-      integrity: 
sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
+
   /clamp/1.0.1:
+    resolution: {integrity: sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=}
     dev: false
-    resolution:
-      integrity: sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=
-  /cliui/4.1.0:
+
+  /cliui/6.0.0:
+    resolution: {integrity: 
sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
     dependencies:
-      string-width: 2.1.1
-      strip-ansi: 4.0.0
-      wrap-ansi: 2.1.0
+      string-width: 4.2.3
+      strip-ansi: 6.0.1
+      wrap-ansi: 6.2.0
     dev: false
-    resolution:
-      integrity: 
sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
-  /code-point-at/1.1.0:
+
+  /codepage/1.15.0:
+    resolution: {integrity: 
sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
+    engines: {node: '>=0.8'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-  /codepage/1.14.0:
+
+  /color-convert/2.0.1:
+    resolution: {integrity: 
sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+    engines: {node: '>=7.0.0'}
     dependencies:
-      commander: 2.14.1
-      exit-on-epipe: 1.0.1
+      color-name: 1.1.4
     dev: false
-    engines:
-      node: '>=0.8'
-    hasBin: true
-    resolution:
-      integrity: sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=
+
+  /color-name/1.1.4:
+    resolution: {integrity: 
sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+    dev: false
+
   /combined-stream/1.0.8:
+    resolution: {integrity: 
sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+    engines: {node: '>= 0.8'}
     dependencies:
       delayed-stream: 1.0.0
     dev: false
-    engines:
-      node: '>= 0.8'
-    resolution:
-      integrity: 
sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
-  /commander/2.14.1:
-    dev: false
-    resolution:
-      integrity: 
sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==
-  /commander/2.17.1:
-    dev: false
-    resolution:
-      integrity: 
sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
+
   /concat-map/0.0.1:
-    resolution:
-      integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+    resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
+
   /concat-stream/1.6.2:
+    resolution: {integrity: 
sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
+    engines: {'0': node >= 0.8}
     dependencies:
       buffer-from: 1.1.1
       inherits: 2.0.4
       readable-stream: 2.3.7
       typedarray: 0.0.6
     dev: false
-    engines:
-      '0': node >= 0.8
-    resolution:
-      integrity: 
sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+
   /constants/0.0.2:
+    resolution: {integrity: sha1-+XO887abZJOzs2RXIxJPurziUJQ=}
+    engines: {node: '>= 0.4'}
     dev: false
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: sha1-+XO887abZJOzs2RXIxJPurziUJQ=
+
   /core-util-is/1.0.2:
+    resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
     dev: false
-    resolution:
-      integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
   /crc-32/1.2.0:
+    resolution: {integrity: 
sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==}
+    engines: {node: '>=0.8'}
+    hasBin: true
     dependencies:
       exit-on-epipe: 1.0.1
       printj: 1.1.2
     dev: false
-    engines:
-      node: '>=0.8'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==
-  /cross-spawn/6.0.5:
-    dependencies:
-      nice-try: 1.0.5
-      path-key: 2.0.1
-      semver: 5.7.1
-      shebang-command: 1.2.0
-      which: 1.3.1
-    dev: false
-    engines:
-      node: '>=4.8'
-    resolution:
-      integrity: 
sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+
   /dashdash/1.14.1:
+    resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=}
+    engines: {node: '>=0.10'}
     dependencies:
       assert-plus: 1.0.0
     dev: false
-    engines:
-      node: '>=0.10'
-    resolution:
-      integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+
   /debug/2.6.9:
+    resolution: {integrity: 
sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
     dependencies:
       ms: 2.0.0
     dev: false
-    resolution:
-      integrity: 
sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+
   /debug/3.2.7:
+    resolution: {integrity: 
sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
     dependencies:
       ms: 2.1.3
     dev: false
-    resolution:
-      integrity: 
sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+
   /debug/4.3.1:
-    dependencies:
-      ms: 2.1.2
-    dev: false
-    engines:
-      node: '>=6.0'
+    resolution: {integrity: 
sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==}
+    engines: {node: '>=6.0'}
     peerDependencies:
       supports-color: '*'
     peerDependenciesMeta:
       supports-color:
         optional: true
-    resolution:
-      integrity: 
sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+    dependencies:
+      ms: 2.1.2
+    dev: false
+
   /decamelize/1.2.0:
+    resolution: {integrity: 
sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
   /deep-is/0.1.3:
+    resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=}
     dev: false
-    resolution:
-      integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
   /del/2.2.2:
+    resolution: {integrity: 
sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       globby: 5.0.0
       is-path-cwd: 1.0.0
@@ -394,11 +401,10 @@ packages:
       pinkie-promise: 2.0.1
       rimraf: 2.7.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
+
   /del/4.1.1:
+    resolution: {integrity: 
sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==}
+    engines: {node: '>=6'}
     dependencies:
       '@types/glob': 7.1.3
       globby: 6.1.0
@@ -408,157 +414,132 @@ packages:
       pify: 4.0.1
       rimraf: 2.7.1
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
+
   /delayed-stream/1.0.0:
+    resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=}
+    engines: {node: '>=0.4.0'}
     dev: false
-    engines:
-      node: '>=0.4.0'
-    resolution:
-      integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
   /download-file/0.1.5:
+    resolution: {integrity: sha1-ylC6ZNkJSwyHAu+f/5LSGJ4UERc=}
     dependencies:
       mkdirp: 0.5.5
     dev: false
-    resolution:
-      integrity: sha1-ylC6ZNkJSwyHAu+f/5LSGJ4UERc=
+
   /ecc-jsbn/0.1.2:
+    resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=}
     dependencies:
       jsbn: 0.1.1
       safer-buffer: 2.1.2
     dev: false
-    resolution:
-      integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  /end-of-stream/1.4.4:
-    dependencies:
-      once: 1.4.0
+
+  /emoji-regex/8.0.0:
+    resolution: {integrity: 
sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     dev: false
-    resolution:
-      integrity: 
sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+
   /es6-promise/4.2.8:
+    resolution: {integrity: 
sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
     dev: false
-    resolution:
-      integrity: 
sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
   /es6-promisify/5.0.0:
+    resolution: {integrity: 
sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
     dependencies:
       es6-promise: 4.2.8
     dev: false
-    resolution:
-      integrity: sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
+
   /escape-string-regexp/1.0.5:
+    resolution: {integrity: 
sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+    engines: {node: '>=0.8.0'}
     dev: false
-    engines:
-      node: '>=0.8.0'
-    resolution:
-      integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-  /execa/1.0.0:
-    dependencies:
-      cross-spawn: 6.0.5
-      get-stream: 4.1.0
-      is-stream: 1.1.0
-      npm-run-path: 2.0.2
-      p-finally: 1.0.0
-      signal-exit: 3.0.3
-      strip-eof: 1.0.0
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+
   /exit-on-epipe/1.0.1:
+    resolution: {integrity: 
sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
+    engines: {node: '>=0.8'}
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: 
sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
+
   /exit/0.1.2:
+    resolution: {integrity: 
sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
+    engines: {node: '>= 0.8.0'}
     dev: false
-    engines:
-      node: '>= 0.8.0'
-    resolution:
-      integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+
   /extend/3.0.2:
+    resolution: {integrity: 
sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
     dev: false
-    resolution:
-      integrity: 
sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
   /extract-zip/1.7.0:
+    resolution: {integrity: 
sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==}
+    hasBin: true
     dependencies:
       concat-stream: 1.6.2
       debug: 2.6.9
       mkdirp: 0.5.5
       yauzl: 2.10.0
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    hasBin: true
-    resolution:
-      integrity: 
sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
+
   /extsprintf/1.3.0:
+    resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=}
+    engines: {'0': node >=0.6.0}
     dev: false
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
   /fast-deep-equal/3.1.3:
+    resolution: {integrity: 
sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
     dev: false
-    resolution:
-      integrity: 
sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
   /fast-json-stable-stringify/2.1.0:
+    resolution: {integrity: 
sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
     dev: false
-    resolution:
-      integrity: 
sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
   /fd-slicer/1.1.0:
+    resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=}
     dependencies:
       pend: 1.2.0
     dev: false
-    resolution:
-      integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+
   /file-exists/5.0.1:
+    resolution: {integrity: 
sha512-TeBMgeKbdSsQtcY2XqKY/yTa4BciMD/Gw8YcND0XMDZt4CDj87l1Wl4x7K0ravZ80tZcyIGMD0hj2VSRPR8M8Q==}
+    engines: {node: '>=6.0.0'}
     dev: false
-    engines:
-      node: '>=6.0.0'
-    resolution:
-      integrity: 
sha512-TeBMgeKbdSsQtcY2XqKY/yTa4BciMD/Gw8YcND0XMDZt4CDj87l1Wl4x7K0ravZ80tZcyIGMD0hj2VSRPR8M8Q==
-  /find-up/3.0.0:
+
+  /find-up/4.1.0:
+    resolution: {integrity: 
sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+    engines: {node: '>=8'}
     dependencies:
-      locate-path: 3.0.0
+      locate-path: 5.0.0
+      path-exists: 4.0.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
-  /follow-redirects/1.13.3:
-    dev: false
-    engines:
-      node: '>=4.0'
+
+  /follow-redirects/1.15.2:
+    resolution: {integrity: 
sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+    engines: {node: '>=4.0'}
     peerDependencies:
       debug: '*'
     peerDependenciesMeta:
       debug:
         optional: true
-    resolution:
-      integrity: 
sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==
+    dev: false
+
   /forever-agent/0.6.1:
+    resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=}
     dev: false
-    resolution:
-      integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+
   /form-data/2.3.3:
+    resolution: {integrity: 
sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
+    engines: {node: '>= 0.12'}
     dependencies:
       asynckit: 0.4.0
       combined-stream: 1.0.8
       mime-types: 2.1.29
     dev: false
-    engines:
-      node: '>= 0.12'
-    resolution:
-      integrity: 
sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+
   /frac/1.1.2:
+    resolution: {integrity: 
sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
+    engines: {node: '>=0.8'}
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: 
sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
+
   /fs-extra/0.26.7:
+    resolution: {integrity: sha1-muH92UiXeY7at20JGM9C0MMYT6k=}
     dependencies:
       graceful-fs: 4.2.6
       jsonfile: 2.4.0
@@ -566,60 +547,52 @@ packages:
       path-is-absolute: 1.0.1
       rimraf: 2.7.1
     dev: false
-    resolution:
-      integrity: sha1-muH92UiXeY7at20JGM9C0MMYT6k=
+
   /fs-extra/1.0.0:
+    resolution: {integrity: sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=}
     dependencies:
       graceful-fs: 4.2.6
       jsonfile: 2.4.0
       klaw: 1.3.1
     dev: false
-    resolution:
-      integrity: sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
+
   /fs-extra/3.0.1:
+    resolution: {integrity: sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=}
     dependencies:
       graceful-fs: 4.2.6
       jsonfile: 3.0.1
       universalify: 0.1.2
     dev: false
-    resolution:
-      integrity: sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=
+
   /fs-extra/8.1.0:
+    resolution: {integrity: 
sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
+    engines: {node: '>=6 <7 || >=8'}
     dependencies:
       graceful-fs: 4.2.6
       jsonfile: 4.0.0
       universalify: 0.1.2
     dev: false
-    engines:
-      node: '>=6 <7 || >=8'
-    resolution:
-      integrity: 
sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+
   /fs.realpath/1.0.0:
-    resolution:
-      integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+    resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
+
   /fs/0.0.1-security:
+    resolution: {integrity: sha1-invTcYa23d84E/I4WLV+yq9eQdQ=}
     dev: false
-    resolution:
-      integrity: sha1-invTcYa23d84E/I4WLV+yq9eQdQ=
-  /get-caller-file/1.0.3:
+
+  /get-caller-file/2.0.5:
+    resolution: {integrity: 
sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+    engines: {node: 6.* || 8.* || >= 10.*}
     dev: false
-    resolution:
-      integrity: 
sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-  /get-stream/4.1.0:
-    dependencies:
-      pump: 3.0.0
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+
   /getpass/0.1.7:
+    resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=}
     dependencies:
       assert-plus: 1.0.0
     dev: false
-    resolution:
-      integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+
   /glob/7.1.6:
+    resolution: {integrity: 
sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
     dependencies:
       fs.realpath: 1.0.0
       inflight: 1.0.6
@@ -627,9 +600,10 @@ packages:
       minimatch: 3.0.4
       once: 1.4.0
       path-is-absolute: 1.0.1
-    resolution:
-      integrity: 
sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+
   /globby/5.0.0:
+    resolution: {integrity: 
sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       array-union: 1.0.2
       arrify: 1.0.1
@@ -638,11 +612,10 @@ packages:
       pify: 2.3.0
       pinkie-promise: 2.0.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
+
   /globby/6.1.0:
+    resolution: {integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=}
+    engines: {node: '>=0.10.0'}
     dependencies:
       array-union: 1.0.2
       glob: 7.1.6
@@ -650,635 +623,488 @@ packages:
       pify: 2.3.0
       pinkie-promise: 2.0.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
+
   /graceful-fs/4.2.6:
+    resolution: {integrity: 
sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
   /har-schema/2.0.0:
+    resolution: {integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=}
+    engines: {node: '>=4'}
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
   /har-validator/5.1.5:
+    resolution: {integrity: 
sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==}
+    engines: {node: '>=6'}
+    deprecated: this library is no longer supported
     dependencies:
       ajv: 6.12.6
       har-schema: 2.0.0
-    deprecated: this library is no longer supported
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
+
   /has-ansi/2.0.0:
+    resolution: {integrity: 
sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       ansi-regex: 2.1.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+
   /has-symbols/1.0.2:
+    resolution: {integrity: 
sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}
+    engines: {node: '>= 0.4'}
     dev: false
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: 
sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
   /http-signature/1.2.0:
+    resolution: {integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=}
+    engines: {node: '>=0.8', npm: '>=1.3.7'}
     dependencies:
       assert-plus: 1.0.0
       jsprim: 1.4.1
       sshpk: 1.16.1
     dev: false
-    engines:
-      node: '>=0.8'
-      npm: '>=1.3.7'
-    resolution:
-      integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+
   /https-proxy-agent/2.2.4:
+    resolution: {integrity: 
sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==}
+    engines: {node: '>= 4.5.0'}
     dependencies:
       agent-base: 4.3.0
       debug: 3.2.7
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    engines:
-      node: '>= 4.5.0'
-    resolution:
-      integrity: 
sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==
+
   /immediate/3.0.6:
+    resolution: {integrity: sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=}
     dev: false
-    resolution:
-      integrity: sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
+
   /inflight/1.0.6:
+    resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
     dependencies:
       once: 1.4.0
       wrappy: 1.0.2
-    resolution:
-      integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+
   /inherits/2.0.3:
+    resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=}
     dev: false
-    resolution:
-      integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
   /inherits/2.0.4:
-    resolution:
-      integrity: 
sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+    resolution: {integrity: 
sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
   /ini/1.3.8:
+    resolution: {integrity: 
sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
     dev: false
-    resolution:
-      integrity: 
sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-  /invert-kv/2.0.0:
-    dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: 
sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
+
   /ip-regex/4.3.0:
+    resolution: {integrity: 
sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
+    engines: {node: '>=8'}
     dev: false
-    engines:
-      node: '>=8'
-    resolution:
-      integrity: 
sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==
-  /is-fullwidth-code-point/1.0.0:
-    dependencies:
-      number-is-nan: 1.0.1
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
-  /is-fullwidth-code-point/2.0.0:
+
+  /is-fullwidth-code-point/3.0.0:
+    resolution: {integrity: 
sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+    engines: {node: '>=8'}
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
   /is-function/1.0.2:
+    resolution: {integrity: 
sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
+
   /is-nil/1.0.1:
+    resolution: {integrity: sha1-LauingtYUGOHXntTnQcfWxWTeWk=}
     dev: false
-    resolution:
-      integrity: sha1-LauingtYUGOHXntTnQcfWxWTeWk=
+
   /is-object/1.0.2:
+    resolution: {integrity: 
sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==}
     dev: false
-    resolution:
-      integrity: 
sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+
   /is-path-cwd/1.0.0:
+    resolution: {integrity: 
sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
+
   /is-path-cwd/2.2.0:
+    resolution: {integrity: 
sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
   /is-path-in-cwd/1.0.1:
+    resolution: {integrity: 
sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       is-path-inside: 1.0.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: 
sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
+
   /is-path-in-cwd/2.1.0:
+    resolution: {integrity: 
sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==}
+    engines: {node: '>=6'}
     dependencies:
       is-path-inside: 2.1.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
+
   /is-path-inside/1.0.1:
+    resolution: {integrity: 
sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       path-is-inside: 1.0.2
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-jvW33lBDej/cprToZe96pVy0gDY=
+
   /is-path-inside/2.1.0:
+    resolution: {integrity: 
sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==}
+    engines: {node: '>=6'}
     dependencies:
       path-is-inside: 1.0.2
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
-  /is-stream/1.1.0:
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
   /is-symbol/1.0.3:
+    resolution: {integrity: 
sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==}
+    engines: {node: '>= 0.4'}
     dependencies:
       has-symbols: 1.0.2
     dev: false
-    engines:
-      node: '>= 0.4'
-    resolution:
-      integrity: 
sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+
   /is-typedarray/1.0.0:
+    resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=}
     dev: false
-    resolution:
-      integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
   /is-url/1.2.4:
+    resolution: {integrity: 
sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
     dev: false
-    resolution:
-      integrity: 
sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
+
   /is2/2.0.6:
+    resolution: {integrity: 
sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==}
+    engines: {node: '>=v0.10.0'}
     dependencies:
       deep-is: 0.1.3
       ip-regex: 4.3.0
       is-url: 1.2.4
     dev: false
-    engines:
-      node: '>=v0.10.0'
-    resolution:
-      integrity: 
sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==
+
   /isarray/1.0.0:
+    resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
     dev: false
-    resolution:
-      integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-  /isexe/2.0.0:
-    dev: false
-    resolution:
-      integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
   /isstream/0.1.2:
+    resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=}
     dev: false
-    resolution:
-      integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+
   /jasmine-core/2.8.0:
+    resolution: {integrity: 
sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==}
     dev: false
-    resolution:
-      integrity: sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=
+
   /jasmine-core/3.6.0:
+    resolution: {integrity: 
sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==}
     dev: true
-    resolution:
-      integrity: 
sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==
+
   /jasmine-reporters/2.3.2:
+    resolution: {integrity: 
sha512-u/7AT9SkuZsUfFBLLzbErohTGNsEUCKaQbsVYnLFW1gEuL2DzmBL4n8v90uZsqIqlWvWUgian8J6yOt5Fyk/+A==}
     dependencies:
       mkdirp: 0.5.5
       xmldom: 0.1.31
     dev: false
-    resolution:
-      integrity: 
sha512-u/7AT9SkuZsUfFBLLzbErohTGNsEUCKaQbsVYnLFW1gEuL2DzmBL4n8v90uZsqIqlWvWUgian8J6yOt5Fyk/+A==
+
   /jasmine/2.8.0:
+    resolution: {integrity: 
sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==}
+    hasBin: true
     dependencies:
       exit: 0.1.2
       glob: 7.1.6
       jasmine-core: 2.8.0
     dev: false
-    hasBin: true
-    resolution:
-      integrity: sha1-awicChFXax8W3xG4AUbZHU6Lij4=
+
   /jasmine/3.6.4:
+    resolution: {integrity: 
sha512-hIeOou6y0BgCOKYgXYveQvlY+PTHgDPajFf+vLCYbMTQ+VjAP9+EQv0nuC9+gyCAAWISRFauB1XUb9kFuOKtcQ==}
+    hasBin: true
     dependencies:
       glob: 7.1.6
       jasmine-core: 3.6.0
     dev: true
-    hasBin: true
-    resolution:
-      integrity: 
sha512-hIeOou6y0BgCOKYgXYveQvlY+PTHgDPajFf+vLCYbMTQ+VjAP9+EQv0nuC9+gyCAAWISRFauB1XUb9kFuOKtcQ==
+
   /jasmine2-protractor-utils/1.3.0:
+    resolution: {integrity: sha1-lARqq7x0rQpLdGvNTcMFB1h7Z+M=}
     dependencies:
       fs-extra: 0.26.7
       mkdirp: 0.5.5
       q: 1.5.1
     dev: false
-    resolution:
-      integrity: sha1-lARqq7x0rQpLdGvNTcMFB1h7Z+M=
+
   /jasminewd2/2.2.0:
+    resolution: {integrity: 
sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==}
+    engines: {node: '>= 6.9.x'}
     dev: false
-    engines:
-      node: '>= 6.9.x'
-    resolution:
-      integrity: sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=
+
   /jsbn/0.1.1:
+    resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=}
     dev: false
-    resolution:
-      integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+
   /json-schema-traverse/0.4.1:
+    resolution: {integrity: 
sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
     dev: false
-    resolution:
-      integrity: 
sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
   /json-schema/0.2.3:
+    resolution: {integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=}
     dev: false
-    resolution:
-      integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+
   /json-stringify-safe/5.0.1:
+    resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=}
     dev: false
-    resolution:
-      integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
   /jsonfile/2.4.0:
-    dev: false
+    resolution: {integrity: sha1-NzaitCi4e72gzIO1P6PWM6NcKug=}
     optionalDependencies:
       graceful-fs: 4.2.6
-    resolution:
-      integrity: sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
-  /jsonfile/3.0.1:
     dev: false
+
+  /jsonfile/3.0.1:
+    resolution: {integrity: sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=}
     optionalDependencies:
       graceful-fs: 4.2.6
-    resolution:
-      integrity: sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=
-  /jsonfile/4.0.0:
     dev: false
+
+  /jsonfile/4.0.0:
+    resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=}
     optionalDependencies:
       graceful-fs: 4.2.6
-    resolution:
-      integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+    dev: false
+
   /jsprim/1.4.1:
+    resolution: {integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=}
+    engines: {'0': node >=0.6.0}
     dependencies:
       assert-plus: 1.0.0
       extsprintf: 1.3.0
       json-schema: 0.2.3
       verror: 1.10.0
     dev: false
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+
   /jszip/3.6.0:
+    resolution: {integrity: 
sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==}
     dependencies:
       lie: 3.3.0
       pako: 1.0.11
       readable-stream: 2.3.7
       set-immediate-shim: 1.0.1
     dev: false
-    resolution:
-      integrity: 
sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==
+
   /klaw-sync/2.1.0:
-    dev: false
+    resolution: {integrity: sha1-PTvNhgDnv971MjHHOf8FOu1WDkQ=}
     optionalDependencies:
       graceful-fs: 4.2.6
-    resolution:
-      integrity: sha1-PTvNhgDnv971MjHHOf8FOu1WDkQ=
-  /klaw/1.3.1:
     dev: false
+
+  /klaw/1.3.1:
+    resolution: {integrity: sha1-QIhDO0azsbolnXh4XY6W9zugJDk=}
     optionalDependencies:
       graceful-fs: 4.2.6
-    resolution:
-      integrity: sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
-  /lcid/2.0.0:
-    dependencies:
-      invert-kv: 2.0.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
+
   /lie/3.3.0:
+    resolution: {integrity: 
sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
     dependencies:
       immediate: 3.0.6
     dev: false
-    resolution:
-      integrity: 
sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
-  /locate-path/3.0.0:
+
+  /locate-path/5.0.0:
+    resolution: {integrity: 
sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+    engines: {node: '>=8'}
     dependencies:
-      p-locate: 3.0.0
-      path-exists: 3.0.0
+      p-locate: 4.1.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+
   /lodash/4.17.21:
+    resolution: {integrity: 
sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
     dev: false
-    resolution:
-      integrity: 
sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-  /map-age-cleaner/0.1.3:
-    dependencies:
-      p-defer: 1.0.0
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
+
   /max-safe-int/1.0.0:
+    resolution: {integrity: sha1-RPuo7Jk97ZH7LFo15xz5yfNpzlI=}
     dev: false
-    resolution:
-      integrity: sha1-RPuo7Jk97ZH7LFo15xz5yfNpzlI=
-  /mem/4.3.0:
-    dependencies:
-      map-age-cleaner: 0.1.3
-      mimic-fn: 2.1.0
-      p-is-promise: 2.1.0
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
+
   /mime-db/1.46.0:
+    resolution: {integrity: 
sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==}
+    engines: {node: '>= 0.6'}
     dev: false
-    engines:
-      node: '>= 0.6'
-    resolution:
-      integrity: 
sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
+
   /mime-types/2.1.29:
+    resolution: {integrity: 
sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==}
+    engines: {node: '>= 0.6'}
     dependencies:
       mime-db: 1.46.0
     dev: false
-    engines:
-      node: '>= 0.6'
-    resolution:
-      integrity: 
sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
-  /mimic-fn/2.1.0:
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
   /minimatch/3.0.4:
+    resolution: {integrity: 
sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
     dependencies:
       brace-expansion: 1.1.11
-    resolution:
-      integrity: 
sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+
   /minimist/1.2.5:
+    resolution: {integrity: 
sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
     dev: false
-    resolution:
-      integrity: 
sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
   /mkdirp/0.3.5:
+    resolution: {integrity: sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=}
     deprecated: Legacy versions of mkdirp are no longer supported. Please 
update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 
1.x.)
     dev: false
-    resolution:
-      integrity: sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
+
   /mkdirp/0.5.5:
+    resolution: {integrity: 
sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==}
+    hasBin: true
     dependencies:
       minimist: 1.2.5
     dev: false
-    hasBin: true
-    resolution:
-      integrity: 
sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+
   /ms/2.0.0:
+    resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
     dev: false
-    resolution:
-      integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
   /ms/2.1.2:
+    resolution: {integrity: 
sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
     dev: false
-    resolution:
-      integrity: 
sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
   /ms/2.1.3:
+    resolution: {integrity: 
sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
     dev: false
-    resolution:
-      integrity: 
sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-  /nice-try/1.0.5:
-    dev: false
-    resolution:
-      integrity: 
sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
   /node-bin-setup/1.0.6:
+    resolution: {integrity: 
sha512-uPIxXNis1CRbv1DwqAxkgBk5NFV3s7cMN/Gf556jSw6jBvV7ca4F9lRL/8cALcZecRibeqU+5dFYqFFmzv5a0Q==}
     dev: false
-    resolution:
-      integrity: 
sha512-uPIxXNis1CRbv1DwqAxkgBk5NFV3s7cMN/Gf556jSw6jBvV7ca4F9lRL/8cALcZecRibeqU+5dFYqFFmzv5a0Q==
-  /node/12.21.0:
+
+  /node/18.12.1:
+    resolution: {integrity: 
sha512-zQ0AYW1IFDTP+0c+cp3Brn6l9VRvvhBiYCvJSKK/dM7ndMh5PCIi2nwJJ7uFJsGT3OlfLdqyA67G6Otcz1WYug==}
+    engines: {npm: '>=5.0.0'}
+    hasBin: true
+    requiresBuild: true
     dependencies:
       node-bin-setup: 1.0.6
     dev: false
-    engines:
-      npm: '>=5.0.0'
-    hasBin: true
-    requiresBuild: true
-    resolution:
-      integrity: 
sha512-yJvxtDNX/bQA2XQjRyoxiPK8mbWnMIDFLAeRnteWTUA+KKISMxWbeM5JioO4FzZSxBe7qEmoZXrWa8w5OfMauw==
-  /npm-run-path/2.0.2:
-    dependencies:
-      path-key: 2.0.1
-    dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
-  /number-is-nan/1.0.1:
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
   /oauth-sign/0.9.0:
+    resolution: {integrity: 
sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
   /object-assign/4.1.1:
+    resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
   /once/1.4.0:
+    resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
     dependencies:
       wrappy: 1.0.2
-    resolution:
-      integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
-  /os-locale/3.1.0:
-    dependencies:
-      execa: 1.0.0
-      lcid: 2.0.0
-      mem: 4.3.0
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
+
   /os-tmpdir/1.0.2:
+    resolution: {integrity: 
sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-  /p-defer/1.0.0:
-    dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-  /p-finally/1.0.0:
-    dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-  /p-is-promise/2.1.0:
-    dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
+
   /p-limit/2.3.0:
+    resolution: {integrity: 
sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+    engines: {node: '>=6'}
     dependencies:
       p-try: 2.2.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
-  /p-locate/3.0.0:
+
+  /p-locate/4.1.0:
+    resolution: {integrity: 
sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+    engines: {node: '>=8'}
     dependencies:
       p-limit: 2.3.0
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+
   /p-map/2.1.0:
+    resolution: {integrity: 
sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
   /p-try/2.2.0:
+    resolution: {integrity: 
sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
   /pad-left/2.1.0:
+    resolution: {integrity: sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=}
+    engines: {node: '>=0.10.0'}
     dependencies:
       repeat-string: 1.6.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=
+
   /pako/1.0.11:
+    resolution: {integrity: 
sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
     dev: false
-    resolution:
-      integrity: 
sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-  /path-exists/3.0.0:
+
+  /path-exists/4.0.0:
+    resolution: {integrity: 
sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+    engines: {node: '>=8'}
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
   /path-is-absolute/1.0.1:
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+    resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
+    engines: {node: '>=0.10.0'}
+
   /path-is-inside/1.0.2:
+    resolution: {integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=}
     dev: false
-    resolution:
-      integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
-  /path-key/2.0.1:
-    dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
   /path/0.12.7:
+    resolution: {integrity: sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=}
     dependencies:
       process: 0.11.10
       util: 0.10.4
     dev: false
-    resolution:
-      integrity: sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=
+
   /pend/1.2.0:
+    resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=}
     dev: false
-    resolution:
-      integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
   /performance-now/2.1.0:
+    resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=}
     dev: false
-    resolution:
-      integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
   /pify/2.3.0:
+    resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+
   /pify/4.0.1:
+    resolution: {integrity: 
sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
   /pinkie-promise/2.0.1:
+    resolution: {integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=}
+    engines: {node: '>=0.10.0'}
     dependencies:
       pinkie: 2.0.4
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-ITXW36ejWMBprJsXh3YogihFD/o=
+
   /pinkie/2.0.4:
+    resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+
   /printj/1.1.2:
-    dev: false
-    engines:
-      node: '>=0.8'
+    resolution: {integrity: 
sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==}
+    engines: {node: '>=0.8'}
     hasBin: true
-    resolution:
-      integrity: 
sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
+    dev: false
+
   /process-nextick-args/2.0.1:
+    resolution: {integrity: 
sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
     dev: false
-    resolution:
-      integrity: 
sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
   /process/0.11.10:
+    resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=}
+    engines: {node: '>= 0.6.0'}
     dev: false
-    engines:
-      node: '>= 0.6.0'
-    resolution:
-      integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+
   /protractor-beautiful-reporter/1.3.6:
+    resolution: {integrity: 
sha512-lALPJJV8li3AqweEfKcXSRBK/QSe82FyB13b1+6NQvrAkE6YyoZ91pYg1ZNUcaZU0HO+pPAmbF4mfW+5FLvieg==}
     dependencies:
       circular-json: 0.3.3
       fs-extra: 3.0.1
       klaw-sync: 2.1.0
       mkdirp: 0.3.5
     dev: false
-    resolution:
-      integrity: 
sha512-lALPJJV8li3AqweEfKcXSRBK/QSe82FyB13b1+6NQvrAkE6YyoZ91pYg1ZNUcaZU0HO+pPAmbF4mfW+5FLvieg==
+
   /protractor-html-reporter-2/1.0.4:
+    resolution: {integrity: 
sha512-IlUcRac05bPUWscsWkEYNGNnly35LhNu4rH5/umdrRFiqOkgKdofPjw6sc1cxswTOERErWxQm0tFhl2CBkV1Kw==}
     dependencies:
       fs: 0.0.1-security
       fs-extra: 1.0.0
@@ -1287,9 +1113,12 @@ packages:
       path: 0.12.7
       xmldoc: 0.5.1
     dev: false
-    resolution:
-      integrity: 
sha512-IlUcRac05bPUWscsWkEYNGNnly35LhNu4rH5/umdrRFiqOkgKdofPjw6sc1cxswTOERErWxQm0tFhl2CBkV1Kw==
-  /protractor/5.4.4:
+
+  /protractor/7.0.0:
+    resolution: {integrity: 
sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==}
+    engines: {node: '>=10.13.x'}
+    deprecated: We have news to share - Protractor is deprecated and will 
reach end-of-life by Summer 2023. To learn more and find out about other 
options please refer to this post on the Angular blog. Thank you for using and 
contributing to Protractor. https://goo.gle/state-of-e2e-in-angular
+    hasBin: true
     dependencies:
       '@types/q': 0.0.32
       '@types/selenium-webdriver': 3.0.17
@@ -1305,74 +1134,60 @@ packages:
       source-map-support: 0.4.18
       webdriver-js-extender: 2.1.0
       webdriver-manager: 12.1.8
-      yargs: 12.0.5
+      yargs: 15.4.1
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    engines:
-      node: '>=6.9.x'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==
+
   /psl/1.8.0:
+    resolution: {integrity: 
sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
-  /pump/3.0.0:
-    dependencies:
-      end-of-stream: 1.4.4
-      once: 1.4.0
-    dev: false
-    resolution:
-      integrity: 
sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+
   /punycode/2.1.1:
+    resolution: {integrity: 
sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+    engines: {node: '>=6'}
     dev: false
-    engines:
-      node: '>=6'
-    resolution:
-      integrity: 
sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
   /q/1.4.1:
+    resolution: {integrity: 
sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==}
+    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
     dev: false
-    engines:
-      node: '>=0.6.0'
-      teleport: '>=0.2.0'
-    resolution:
-      integrity: sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=
+
   /q/1.5.1:
+    resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=}
+    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
     dev: false
-    engines:
-      node: '>=0.6.0'
-      teleport: '>=0.2.0'
-    resolution:
-      integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+
   /qs/6.5.2:
+    resolution: {integrity: 
sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==}
+    engines: {node: '>=0.6'}
     dev: false
-    engines:
-      node: '>=0.6'
-    resolution:
-      integrity: 
sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
   /random-integral/1.0.3:
+    resolution: {integrity: sha1-j/PBF1ZcmgS2bd1VnzrtKb0PD2w=}
     dependencies:
       clamp: 1.0.1
       max-safe-int: 1.0.0
       to-integer: 1.0.1
     dev: false
-    resolution:
-      integrity: sha1-j/PBF1ZcmgS2bd1VnzrtKb0PD2w=
+
   /random-ipv6/1.0.2:
+    resolution: {integrity: sha1-vCv75JQrkrZeexqDUWJos0dP354=}
     dependencies:
       clamp: 1.0.1
       pad-left: 2.1.0
       random-natural: 1.0.3
     dev: false
-    resolution:
-      integrity: sha1-vCv75JQrkrZeexqDUWJos0dP354=
+
   /random-natural/1.0.3:
+    resolution: {integrity: sha1-7yhhWwPCy3Gq6/fyT0hyZqRDxcA=}
     dependencies:
       max-safe-int: 1.0.0
       random-integral: 1.0.3
     dev: false
-    resolution:
-      integrity: sha1-7yhhWwPCy3Gq6/fyT0hyZqRDxcA=
+
   /readable-stream/2.3.7:
+    resolution: {integrity: 
sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
     dependencies:
       core-util-is: 1.0.2
       inherits: 2.0.4
@@ -1382,15 +1197,16 @@ packages:
       string_decoder: 1.1.1
       util-deprecate: 1.0.2
     dev: false
-    resolution:
-      integrity: 
sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+
   /repeat-string/1.6.1:
+    resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=}
+    engines: {node: '>=0.10'}
     dev: false
-    engines:
-      node: '>=0.10'
-    resolution:
-      integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
   /request/2.88.2:
+    resolution: {integrity: 
sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==}
+    engines: {node: '>= 6'}
+    deprecated: request has been deprecated, see 
https://github.com/request/request/issues/3142
     dependencies:
       aws-sign2: 0.7.0
       aws4: 1.11.0
@@ -1412,139 +1228,118 @@ packages:
       tough-cookie: 2.5.0
       tunnel-agent: 0.6.0
       uuid: 3.4.0
-    deprecated: request has been deprecated, see 
https://github.com/request/request/issues/3142
     dev: false
-    engines:
-      node: '>= 6'
-    resolution:
-      integrity: 
sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+
   /require-directory/2.1.1:
+    resolution: {integrity: 
sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-  /require-main-filename/1.0.1:
+
+  /require-main-filename/2.0.0:
+    resolution: {integrity: 
sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
     dev: false
-    resolution:
-      integrity: sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
+
   /rimraf/2.7.1:
+    resolution: {integrity: 
sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+    hasBin: true
     dependencies:
       glob: 7.1.6
     dev: false
-    hasBin: true
-    resolution:
-      integrity: 
sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+
   /rimraf/3.0.2:
+    resolution: {integrity: 
sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+    hasBin: true
     dependencies:
       glob: 7.1.6
     dev: false
-    hasBin: true
-    resolution:
-      integrity: 
sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+
   /safe-buffer/5.1.2:
+    resolution: {integrity: 
sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
     dev: false
-    resolution:
-      integrity: 
sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
   /safe-buffer/5.2.1:
+    resolution: {integrity: 
sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
   /safer-buffer/2.1.2:
+    resolution: {integrity: 
sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
     dev: false
-    resolution:
-      integrity: 
sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
   /saucelabs/1.5.0:
+    resolution: {integrity: 
sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==}
     dependencies:
       https-proxy-agent: 2.2.4
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    resolution:
-      integrity: 
sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==
+
   /sax/1.1.6:
+    resolution: {integrity: sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=}
     dev: false
-    resolution:
-      integrity: sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=
+
   /sax/1.2.4:
+    resolution: {integrity: 
sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
     dev: false
-    resolution:
-      integrity: 
sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
   /selenium-webdriver/3.6.0:
+    resolution: {integrity: 
sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==}
+    engines: {node: '>= 6.9.0'}
     dependencies:
       jszip: 3.6.0
       rimraf: 2.7.1
       tmp: 0.0.30
       xml2js: 0.4.23
     dev: false
-    engines:
-      node: '>= 6.9.0'
-    resolution:
-      integrity: 
sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==
+
   /selenium-webdriver/4.0.0-beta.1:
+    resolution: {integrity: 
sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==}
+    engines: {node: '>= 10.15.0'}
     dependencies:
       jszip: 3.6.0
       rimraf: 2.7.1
       tmp: 0.2.1
       ws: 7.4.3
+    transitivePeerDependencies:
+      - bufferutil
+      - utf-8-validate
     dev: false
-    engines:
-      node: '>= 10.15.0'
-    resolution:
-      integrity: 
sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==
+
   /semver/5.7.1:
-    dev: false
+    resolution: {integrity: 
sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
     hasBin: true
-    resolution:
-      integrity: 
sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+    dev: false
+
   /set-blocking/2.0.0:
+    resolution: {integrity: 
sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
     dev: false
-    resolution:
-      integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
   /set-immediate-shim/1.0.1:
+    resolution: {integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
-  /shebang-command/1.2.0:
-    dependencies:
-      shebang-regex: 1.0.0
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
-  /shebang-regex/1.0.0:
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-  /signal-exit/3.0.3:
-    dev: false
-    resolution:
-      integrity: 
sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
   /source-map-support/0.4.18:
+    resolution: {integrity: 
sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==}
     dependencies:
       source-map: 0.5.7
     dev: false
-    resolution:
-      integrity: 
sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
+
   /source-map/0.5.7:
+    resolution: {integrity: 
sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+    engines: {node: '>=0.10.0'}
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-  /ssf/0.10.3:
+
+  /ssf/0.11.2:
+    resolution: {integrity: 
sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
+    engines: {node: '>=0.8'}
     dependencies:
       frac: 1.1.2
     dev: false
-    engines:
-      node: '>=0.8'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==
+
   /sshpk/1.16.1:
+    resolution: {integrity: 
sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==}
+    engines: {node: '>=0.10.0'}
+    hasBin: true
     dependencies:
       asn1: 0.2.4
       assert-plus: 1.0.0
@@ -1556,173 +1351,148 @@ packages:
       safer-buffer: 2.1.2
       tweetnacl: 0.14.5
     dev: false
-    engines:
-      node: '>=0.10.0'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
-  /string-width/1.0.2:
-    dependencies:
-      code-point-at: 1.1.0
-      is-fullwidth-code-point: 1.0.0
-      strip-ansi: 3.0.1
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
-  /string-width/2.1.1:
+
+  /string-width/4.2.3:
+    resolution: {integrity: 
sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+    engines: {node: '>=8'}
     dependencies:
-      is-fullwidth-code-point: 2.0.0
-      strip-ansi: 4.0.0
+      emoji-regex: 8.0.0
+      is-fullwidth-code-point: 3.0.0
+      strip-ansi: 6.0.1
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: 
sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+
   /string_decoder/1.1.1:
+    resolution: {integrity: 
sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
     dependencies:
       safe-buffer: 5.1.2
     dev: false
-    resolution:
-      integrity: 
sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+
   /strip-ansi/3.0.1:
+    resolution: {integrity: 
sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+    engines: {node: '>=0.10.0'}
     dependencies:
       ansi-regex: 2.1.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  /strip-ansi/4.0.0:
+
+  /strip-ansi/6.0.1:
+    resolution: {integrity: 
sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+    engines: {node: '>=8'}
     dependencies:
-      ansi-regex: 3.0.0
+      ansi-regex: 5.0.1
     dev: false
-    engines:
-      node: '>=4'
-    resolution:
-      integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=
-  /strip-eof/1.0.0:
-    dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
   /supports-color/2.0.0:
+    resolution: {integrity: 
sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+    engines: {node: '>=0.8.0'}
     dev: false
-    engines:
-      node: '>=0.8.0'
-    resolution:
-      integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
   /tcp-port-used/1.0.2:
+    resolution: {integrity: 
sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==}
     dependencies:
       debug: 4.3.1
       is2: 2.0.6
+    transitivePeerDependencies:
+      - supports-color
     dev: false
-    resolution:
-      integrity: 
sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==
+
   /tmp/0.0.30:
+    resolution: {integrity: 
sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==}
+    engines: {node: '>=0.4.0'}
     dependencies:
       os-tmpdir: 1.0.2
     dev: false
-    engines:
-      node: '>=0.4.0'
-    resolution:
-      integrity: sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=
+
   /tmp/0.2.1:
+    resolution: {integrity: 
sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
+    engines: {node: '>=8.17.0'}
     dependencies:
       rimraf: 3.0.2
     dev: false
-    engines:
-      node: '>=8.17.0'
-    resolution:
-      integrity: 
sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+
   /to-integer/1.0.1:
+    resolution: {integrity: sha1-URrUHc5qk3MKjztuNaFk/YKUZNo=}
     dependencies:
       is-function: 1.0.2
       is-nil: 1.0.1
       is-object: 1.0.2
       is-symbol: 1.0.3
     dev: false
-    resolution:
-      integrity: sha1-URrUHc5qk3MKjztuNaFk/YKUZNo=
+
   /tough-cookie/2.5.0:
+    resolution: {integrity: 
sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
+    engines: {node: '>=0.8'}
     dependencies:
       psl: 1.8.0
       punycode: 2.1.1
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: 
sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+
   /tunnel-agent/0.6.0:
+    resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=}
     dependencies:
       safe-buffer: 5.2.1
     dev: false
-    resolution:
-      integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+
   /tweetnacl/0.14.5:
+    resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=}
     dev: false
-    resolution:
-      integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+
   /typedarray/0.0.6:
+    resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=}
     dev: false
-    resolution:
-      integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
   /typescript/3.9.9:
-    dev: true
-    engines:
-      node: '>=4.2.0'
+    resolution: {integrity: 
sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==}
+    engines: {node: '>=4.2.0'}
     hasBin: true
-    resolution:
-      integrity: 
sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==
+    dev: true
+
   /universalify/0.1.2:
+    resolution: {integrity: 
sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+    engines: {node: '>= 4.0.0'}
     dev: false
-    engines:
-      node: '>= 4.0.0'
-    resolution:
-      integrity: 
sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
   /uri-js/4.4.1:
+    resolution: {integrity: 
sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
       punycode: 2.1.1
     dev: false
-    resolution:
-      integrity: 
sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+
   /util-deprecate/1.0.2:
+    resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
     dev: false
-    resolution:
-      integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
   /util/0.10.4:
+    resolution: {integrity: 
sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==}
     dependencies:
       inherits: 2.0.3
     dev: false
-    resolution:
-      integrity: 
sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
+
   /uuid/3.4.0:
-    dev: false
+    resolution: {integrity: 
sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
     hasBin: true
-    resolution:
-      integrity: 
sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+    dev: false
+
   /verror/1.10.0:
+    resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=}
+    engines: {'0': node >=0.6.0}
     dependencies:
       assert-plus: 1.0.0
       core-util-is: 1.0.2
       extsprintf: 1.3.0
     dev: false
-    engines:
-      '0': node >=0.6.0
-    resolution:
-      integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+
   /webdriver-js-extender/2.1.0:
+    resolution: {integrity: 
sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==}
+    engines: {node: '>=6.9.x'}
     dependencies:
       '@types/selenium-webdriver': 3.0.17
       selenium-webdriver: 3.6.0
     dev: false
-    engines:
-      node: '>=6.9.x'
-    resolution:
-      integrity: 
sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==
+
   /webdriver-manager/12.1.8:
+    resolution: {integrity: 
sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==}
+    engines: {node: '>=6.9.x'}
+    hasBin: true
     dependencies:
       adm-zip: 0.4.16
       chalk: 1.1.3
@@ -1730,50 +1500,42 @@ packages:
       glob: 7.1.6
       ini: 1.3.8
       minimist: 1.2.5
-      q: 1.4.1
+      q: 1.5.1
       request: 2.88.2
       rimraf: 2.7.1
       semver: 5.7.1
       xml2js: 0.4.23
     dev: false
-    engines:
-      node: '>=6.9.x'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==
+
   /which-module/2.0.0:
+    resolution: {integrity: 
sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}
     dev: false
-    resolution:
-      integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-  /which/1.3.1:
-    dependencies:
-      isexe: 2.0.0
-    dev: false
-    hasBin: true
-    resolution:
-      integrity: 
sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+
   /wmf/1.0.2:
+    resolution: {integrity: 
sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
+    engines: {node: '>=0.8'}
     dev: false
-    engines:
-      node: '>=0.8'
-    resolution:
-      integrity: 
sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==
-  /wrap-ansi/2.1.0:
+
+  /word/0.3.0:
+    resolution: {integrity: 
sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
+    engines: {node: '>=0.8'}
+    dev: false
+
+  /wrap-ansi/6.2.0:
+    resolution: {integrity: 
sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+    engines: {node: '>=8'}
     dependencies:
-      string-width: 1.0.2
-      strip-ansi: 3.0.1
+      ansi-styles: 4.3.0
+      string-width: 4.2.3
+      strip-ansi: 6.0.1
     dev: false
-    engines:
-      node: '>=0.10.0'
-    resolution:
-      integrity: sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
+
   /wrappy/1.0.2:
-    resolution:
-      integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+    resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
+
   /ws/7.4.3:
-    dev: false
-    engines:
-      node: '>=8.3.0'
+    resolution: {integrity: 
sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==}
+    engines: {node: '>=8.3.0'}
     peerDependencies:
       bufferutil: ^4.0.1
       utf-8-validate: ^5.0.2
@@ -1782,105 +1544,78 @@ packages:
         optional: true
       utf-8-validate:
         optional: true
-    resolution:
-      integrity: 
sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
-  /xlsx/0.15.6:
+    dev: false
+
+  /xlsx/0.17.5:
+    resolution: {integrity: 
sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==}
+    engines: {node: '>=0.8'}
+    hasBin: true
     dependencies:
       adler-32: 1.2.0
       cfb: 1.2.0
-      codepage: 1.14.0
-      commander: 2.17.1
+      codepage: 1.15.0
       crc-32: 1.2.0
-      exit-on-epipe: 1.0.1
-      ssf: 0.10.3
+      ssf: 0.11.2
       wmf: 1.0.2
+      word: 0.3.0
     dev: false
-    engines:
-      node: '>=0.8'
-    hasBin: true
-    resolution:
-      integrity: 
sha512-7vD9eutyLs65iDjNFimVN+gk/oDkfkCgpQUjdE82QgzJCrBHC4bGPH7fzKVyy0UPp3gyFVQTQEFJaWaAvZCShQ==
+
   /xml2js/0.4.23:
+    resolution: {integrity: 
sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
+    engines: {node: '>=4.0.0'}
     dependencies:
       sax: 1.2.4
       xmlbuilder: 11.0.1
     dev: false
-    engines:
-      node: '>=4.0.0'
-    resolution:
-      integrity: 
sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
+
   /xmlbuilder/11.0.1:
+    resolution: {integrity: 
sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
+    engines: {node: '>=4.0'}
     dev: false
-    engines:
-      node: '>=4.0'
-    resolution:
-      integrity: 
sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+
   /xmldoc/0.5.1:
+    resolution: {integrity: sha1-kuQ36QDb/wRFDvrpDTyl8WVl9zg=}
     dependencies:
       sax: 1.1.6
     dev: false
-    resolution:
-      integrity: sha1-kuQ36QDb/wRFDvrpDTyl8WVl9zg=
+
   /xmldom/0.1.31:
+    resolution: {integrity: 
sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==}
+    engines: {node: '>=0.1'}
     dev: false
-    engines:
-      node: '>=0.1'
-    resolution:
-      integrity: 
sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
+
   /y18n/4.0.1:
+    resolution: {integrity: 
sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==}
     dev: false
-    resolution:
-      integrity: 
sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
-  /yargs-parser/11.1.1:
+
+  /yargs-parser/18.1.3:
+    resolution: {integrity: 
sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+    engines: {node: '>=6'}
     dependencies:
       camelcase: 5.3.1
       decamelize: 1.2.0
     dev: false
-    resolution:
-      integrity: 
sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
-  /yargs/12.0.5:
+
+  /yargs/15.4.1:
+    resolution: {integrity: 
sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+    engines: {node: '>=8'}
     dependencies:
-      cliui: 4.1.0
+      cliui: 6.0.0
       decamelize: 1.2.0
-      find-up: 3.0.0
-      get-caller-file: 1.0.3
-      os-locale: 3.1.0
+      find-up: 4.1.0
+      get-caller-file: 2.0.5
       require-directory: 2.1.1
-      require-main-filename: 1.0.1
+      require-main-filename: 2.0.0
       set-blocking: 2.0.0
-      string-width: 2.1.1
+      string-width: 4.2.3
       which-module: 2.0.0
       y18n: 4.0.1
-      yargs-parser: 11.1.1
+      yargs-parser: 18.1.3
     dev: false
-    resolution:
-      integrity: 
sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
+
   /yauzl/2.10.0:
+    resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=}
     dependencies:
       buffer-crc32: 0.2.13
       fd-slicer: 1.1.0
     dev: false
-    resolution:
-      integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
-specifiers:
-  '@types/fs-extra': ^9.0.9
-  '@types/jasmine': ^3.4.6
-  '@types/node': ^12.12.0
-  '@types/random-ipv6': ^1.0.0
-  axios: ^0.21.1
-  chromedriver: ^78.0.1
-  constants: 0.0.2
-  download-file: ^0.1.5
-  file-exists: ^5.0.1
-  fs-extra: ^8.1.0
-  jasmine: ^3.5.0
-  jasmine-reporters: ^2.3.2
-  jasmine2-protractor-utils: ^1.3.0
-  node: ^12.12.0
-  protractor: ^5.4.4
-  protractor-beautiful-reporter: ^1.3.6
-  protractor-html-reporter-2: ^1.0.4
-  random-ipv6: ^1.0.2
-  selenium-webdriver: ^4.0.0-alpha.8
-  typescript: ^3.6.4
-  xlsx: ^0.15.1

Reply via email to