From 9a39b610b580b55bcfbe43949fba929f4588f361 Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Fri, 7 Aug 2020 01:13:42 -0400 Subject: [PATCH 01/21] Added healthy-living.html --- healthy-living.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 healthy-living.html diff --git a/healthy-living.html b/healthy-living.html new file mode 100644 index 000000000..c580c54b0 --- /dev/null +++ b/healthy-living.html @@ -0,0 +1,12 @@ + + + +diagrams.net + + + + +
+ + + From ccc166a6d1ee4303910c8fcb5fadc2cd98c085d6 Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Sun, 9 Aug 2020 20:45:38 -0400 Subject: [PATCH 02/21] Database design --- Untitled Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 Untitled Diagram.drawio diff --git a/Untitled Diagram.drawio b/Untitled Diagram.drawio new file mode 100644 index 000000000..f472d176a --- /dev/null +++ b/Untitled Diagram.drawio @@ -0,0 +1 @@ +7Vttb5s6GP01SHcfVoEJSfuxYckmLbmr2m77eOWCA9YIRsZ526+fDTaEOGlhd2m8JlLUwMMTg59zfGyfJpbrz9cfKcziKQlRYgE7XFvuBwsABwCXv4nIpowMbgZlIKI4lEl14AH/RDJoy+gChyhvJDJCEoazZjAgaYoC1ohBSsmqmTYjSfOuGYyQFngIYKJHv+OQxWX02rPr+CeEo1jd2bHllTlUyTKQxzAkq0YIrdmYpEw+4h2ic5iilPErU0h/IGp5o5gx0dNbC4z5ayayryJCogTBDOdXAZnzcJDzlPEMznEiyrzV0FA2xG/njizXp4Sw8mi+9lEisFIwlM80PnC1qgMV7bb4gP9+uZn8sFn6aeV+Y9NpdDd4ei9bWcJkIesra8M2quAo5PWXp/xWmG3uUQIZJumovjJEaXgr0OVJo/ufiJJHMoUp7/wwZ5Cy+hpJZfoY88dzPzgqRZ7b/FzvmnzOnCxogJ7pD+hJSkIaIfZMYl8CHjbYJiv3EZE5YnTDE1Y1xyomxdv8UkFaFGXZZCmUTIqqBqt73BFcEEsOTLcn21HDUlFSNVF2XX5qG+adhno7DfV3GypLozXED7Y6XocKFnVhFHhjlHJbMsoZGEapnt1kgnP9u5TqNxsCtveqlNIZ9YWGiOYar7iiZ+KQwaeCQQUJ5BTmChbwSYlBnHL9LVkSkCSBWY6L9DIS4yScwA1ZMNWQOhvO8BqF9+UMJnI5/ya8sVxSTMwFitXiMkxwlPLjgFNO3HFIUc6fZQJzJjMOknKJKEPrZ1mksPF2QFbDfYtlwNvHMtc+TKgGgl3hcl8WAAUU7zrDMLnnCwWYRgVmTUhEXUNKskc1+kQgE0RDdLRE5VRdFJ8PdZ8kRCCbloJQpBWd84b8xbvr21ee5fEH8Pm5U5/zl0inzCdpzijEBRyIA7VCAqwhI5m8T4Jm6jGoLKY4fiKM8Zn/EKzP0vplrCW2bktoj4ZsT0P27nMXbAnv6ywpVDvGYYjSckiKdSKs8d4D5d76VzXfBWN3ILbEw22NxxYA7mvW39PqT4QQ/sc/5APr1i5V+98vj+Lv18nEqpa6JsGjdLHMHeYZDHAaTcpP9nfw846B39o6OJ7Aa+LZP2el3L8q+zNK2T+1Ug40ZMefnS7gvtJYbAlAvzUAp5LGa63gwSLnfS7VEeyRRuOweFEX/zhYpujgzUUHj6ODN6fWQeUa/ia0ZqngTevyn0oFHd3PK1eIIWSIx+XbWchge7RMkUFH3zk/xDibF6J18To0rwNct5S343kdjr4lPqOpq8Pm2mm/OzPF7XD07fZbsjsq6ho8nekb5FwK4sXz6AqiMbOcvjc+I8nssNzsLpkntz0cfRv+V/seFVcN1kh981yZwmdle3TAyhQpBP9vd3yRQoOdD6BvxQ0cfC3rXxHVXB1U5d23VjxD96MDYsaooW5/+NLDv9gf1tZXOzp/1cM+GmQX+6PlcPz77A/wtu0PYL79AXT746V/ap6T99EBQWOmuIv3cSy9PLn3AXTvw8DB2Lb+5hsfQDc+KnVM4Vys9IMY0n88+93ZLPpNskD4af3jlvKr4PUvktzRLw== \ No newline at end of file From 2dc6ad436516c05fa9b588d646a3fa0bfe3dcc49 Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Sun, 9 Aug 2020 21:37:57 -0400 Subject: [PATCH 03/21] Added Healthy_living.html --- Healthy_living.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Healthy_living.html diff --git a/Healthy_living.html b/Healthy_living.html new file mode 100644 index 000000000..b9b462bcb --- /dev/null +++ b/Healthy_living.html @@ -0,0 +1,12 @@ + + + +diagrams.net + + + + +
+ + + From abac0cb9362aadcdcf1cb793f476e7abb5f6ac82 Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Thu, 17 Sep 2020 10:05:43 -0400 Subject: [PATCH 04/21] Update Healthy_living.html --- Healthy_living.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Healthy_living.html b/Healthy_living.html index b9b462bcb..d9b6b3be0 100644 --- a/Healthy_living.html +++ b/Healthy_living.html @@ -6,7 +6,7 @@ -
+
From dec5ad2ae302762c14819dc5470443747d01eac1 Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Thu, 17 Sep 2020 11:04:27 -0400 Subject: [PATCH 05/21] Update Healthy_living.html --- Healthy_living.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Healthy_living.html b/Healthy_living.html index d9b6b3be0..3d14cab8c 100644 --- a/Healthy_living.html +++ b/Healthy_living.html @@ -6,7 +6,7 @@ -
+
From 4354b2f2a38f62288f21ac78dfd252eb5d42a1dd Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Thu, 17 Sep 2020 11:56:12 -0400 Subject: [PATCH 06/21] Update Healthy_living.html --- Healthy_living.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Healthy_living.html b/Healthy_living.html index 3d14cab8c..decb2a152 100644 --- a/Healthy_living.html +++ b/Healthy_living.html @@ -6,7 +6,7 @@ -
+
From 0379d6ca50c7e4f94d167b4cdc81a3b828c98c3b Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Sat, 19 Sep 2020 10:13:15 -0400 Subject: [PATCH 07/21] database is created with all tables --- healthyliving.sql | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 healthyliving.sql diff --git a/healthyliving.sql b/healthyliving.sql new file mode 100644 index 000000000..35cb7d90c --- /dev/null +++ b/healthyliving.sql @@ -0,0 +1,68 @@ +DROP DATABASE IF EXISTS `healthyliving`; +CREATE DATABASE `healthyliving`; + +USE `healthyliving`; +DROP TABLE IF EXISTS `customers`; + +CREATE TABLE `customers` ( + `customerId` int(11) NOT NULL Primary Key, + `first_name` varchar(50) NOT NULL, + `last_name` varchar(50) NOT NULL, + `street` varchar(80) NOT NULL, + `city` varchar(50) NOT NULL, + `state` varchar(50) DEFAULT NULL, + `zip` varchar(15) DEFAULT NULL, + `email` varchar(50) NOT NULL, + `phone` varchar(50) not null + ); + DROP TABLE IF EXISTS `members`; + +CREATE TABLE `members` ( + `memberId` int(11) NOT NULL Primary Key, + `first_name` varchar(50) NOT NULL, + `last_name` varchar(50) NOT NULL, + `street` varchar(80) NOT NULL, + `city` varchar(50) NOT NULL, + `state` varchar(50) DEFAULT NULL, + `zip` varchar(15) DEFAULT NULL, + `email` varchar(50) NOT NULL, + `phone` varchar(50) not null, + `member_since` varchar(50) not null, + `serviceId` int(10) not null + ); +CREATE TABLE `products` ( + `productId` int(11) NOT NULL Primary Key, + `product_name` varchar(50) NOT NULL, + `description` varchar(50) NOT NULL, + `unit_cost` integer(10) NOT NULL, + `quantity_in_hand` varchar(50) NOT NULL); + + CREATE TABLE `points` ( + `pointId` int(11) NOT NULL Primary Key, + `memberId` int(10) NOT NULL, + `points` int(10) NOT NULL, + `member_date` varchar(10) NOT NULL, + CONSTRAINT `member_id` FOREIGN KEY (`memberId`) REFERENCES `members` (`memberId`)) ; + + CREATE TABLE `invoice` ( + `invoiceId` int(11) NOT NULL Primary Key, + `customerId` int(10) NOT NULL, + `purchase_date` datetime NOT NULL, + CONSTRAINT `customer_id` FOREIGN KEY (`customerId`) REFERENCES `customers` (`customerId`)) ; + + create table `inventory` ( + `inventoryId` int(10) not null Primary key, + `productId` int(10) not null, + `quantity` int(10), + constraint `product_Id` FOREIGN KEY (`productId`) REFERENCES `products` (`productId`)) ; + + CREATE TABLE `cart` ( + `cartId` int(11) NOT NULL Primary Key, + `invoiceId` int(10) NOT NULL, + `inventoryId` int(10) NOT NULL, + `quantity` int(10) NOT NULL, + `unit_Price` varchar(10) NOT NULL, + `discount` varchar(10), + `total` varchar(30) not null, + CONSTRAINT `invoice_id` FOREIGN KEY (`invoiceId`) REFERENCES `invoice` (`invoiceId`), + CONSTRAINT `inventory_id` FOREIGN KEY (`inventoryId`) REFERENCES `inventory` (`inventoryId`)) ; \ No newline at end of file From 39430b6ca440ebdf6e19d2b04ef0ba3eb4710c9e Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 21 Sep 2020 11:08:01 -0400 Subject: [PATCH 08/21] configuration files and service registry complete --- ...iving.html => Healthy_living_DBDesign.html | 0 .../eureka-service-registry/.gitignore | 31 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 114 +++++++ .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + .../eureka-service-registry/mvnw | 286 ++++++++++++++++++ .../eureka-service-registry/mvnw.cmd | 161 ++++++++++ .../eureka-service-registry/pom.xml | 56 ++++ .../EurekaServiceRegistryApplication.java | 15 + .../src/main/resources/application.properties | 6 + ...EurekaServiceRegistryApplicationTests.java | 16 + .../healthyliving-cloud-config/README.md | 1 + .../admin-api.properties | 8 + .../customer-service.properties | 7 + .../inventory-service.properties | 7 + .../invoice-service.properties | 7 + .../levelup-service.properties | 7 + .../product-service.properties | 10 + .../retail-api.properties | 2 + 19 files changed, 735 insertions(+) rename Healthy_living.html => Healthy_living_DBDesign.html (100%) create mode 100644 healthyliving-casestudy/eureka-service-registry/.gitignore create mode 100644 healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/eureka-service-registry/mvnw create mode 100644 healthyliving-casestudy/eureka-service-registry/mvnw.cmd create mode 100644 healthyliving-casestudy/eureka-service-registry/pom.xml create mode 100644 healthyliving-casestudy/eureka-service-registry/src/main/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplication.java create mode 100644 healthyliving-casestudy/eureka-service-registry/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/eureka-service-registry/src/test/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/README.md create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/admin-api.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/customer-service.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/inventory-service.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/invoice-service.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/levelup-service.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/product-service.properties create mode 100644 healthyliving-casestudy/healthyliving-cloud-config/retail-api.properties diff --git a/Healthy_living.html b/Healthy_living_DBDesign.html similarity index 100% rename from Healthy_living.html rename to Healthy_living_DBDesign.html diff --git a/healthyliving-casestudy/eureka-service-registry/.gitignore b/healthyliving-casestudy/eureka-service-registry/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/eureka-service-registry/mvnw.cmd b/healthyliving-casestudy/eureka-service-registry/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/eureka-service-registry/pom.xml b/healthyliving-casestudy/eureka-service-registry/pom.xml new file mode 100644 index 000000000..27d6b3957 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.6.RELEASE + + + com.casestudy + eureka-service-registry + 0.0.1-SNAPSHOT + eureka-service-registry + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/eureka-service-registry/src/main/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplication.java b/healthyliving-casestudy/eureka-service-registry/src/main/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplication.java new file mode 100644 index 000000000..a09cd3c34 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/src/main/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplication.java @@ -0,0 +1,15 @@ +package com.casestudy.eurekaserviceregistry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@SpringBootApplication +@EnableEurekaServer +public class EurekaServiceRegistryApplication { + + public static void main(String[] args) { + SpringApplication.run(EurekaServiceRegistryApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/src/main/resources/application.properties b/healthyliving-casestudy/eureka-service-registry/src/main/resources/application.properties new file mode 100644 index 000000000..78448a03b --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/src/main/resources/application.properties @@ -0,0 +1,6 @@ +server.port = 8761 +eureka.instance.hostname= localhost + +eureka.client.registerWithEureka = false +eureka.client.fetchRegistry = false +eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka diff --git a/healthyliving-casestudy/eureka-service-registry/src/test/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java b/healthyliving-casestudy/eureka-service-registry/src/test/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java new file mode 100644 index 000000000..a4d3dd2bd --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/src/test/java/com/casestudy/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java @@ -0,0 +1,16 @@ +package com.casestudy.eurekaserviceregistry; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EurekaServiceRegistryApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/healthyliving-cloud-config/README.md b/healthyliving-casestudy/healthyliving-cloud-config/README.md new file mode 100644 index 000000000..dc8b13957 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/README.md @@ -0,0 +1 @@ +This is our secret diff --git a/healthyliving-casestudy/healthyliving-cloud-config/admin-api.properties b/healthyliving-casestudy/healthyliving-cloud-config/admin-api.properties new file mode 100644 index 000000000..0569b7b89 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/admin-api.properties @@ -0,0 +1,8 @@ + +server.port=8282 +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/spring_security?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/customer-service.properties b/healthyliving-casestudy/healthyliving-cloud-config/customer-service.properties new file mode 100644 index 000000000..6412ab401 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/customer-service.properties @@ -0,0 +1,7 @@ +server.port=7005 +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/customer?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/inventory-service.properties b/healthyliving-casestudy/healthyliving-cloud-config/inventory-service.properties new file mode 100644 index 000000000..5100a4756 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/inventory-service.properties @@ -0,0 +1,7 @@ +server.port=7003 +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/inventory?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/invoice-service.properties b/healthyliving-casestudy/healthyliving-cloud-config/invoice-service.properties new file mode 100644 index 000000000..ab3842c86 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/invoice-service.properties @@ -0,0 +1,7 @@ +server.port=7002 +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/invoice?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/levelup-service.properties b/healthyliving-casestudy/healthyliving-cloud-config/levelup-service.properties new file mode 100644 index 000000000..85397a1e8 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/levelup-service.properties @@ -0,0 +1,7 @@ +server.port=7001 +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/level_up?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/product-service.properties b/healthyliving-casestudy/healthyliving-cloud-config/product-service.properties new file mode 100644 index 000000000..a77e8ad96 --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/product-service.properties @@ -0,0 +1,10 @@ +# this is the port on which our product-service will run +server.port=7004 + +# allow for RefreshScope +management.endpoints.web.exposure.include=* + +spring.datasource.url=jdbc:mysql://localhost:3306/product?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/healthyliving-cloud-config/retail-api.properties b/healthyliving-casestudy/healthyliving-cloud-config/retail-api.properties new file mode 100644 index 000000000..7ec3aac4c --- /dev/null +++ b/healthyliving-casestudy/healthyliving-cloud-config/retail-api.properties @@ -0,0 +1,2 @@ +server.port=8181 +management.endpoints.web.exposure.include=* From 88ec154746fb8f2d7c53cf168b8e2d740073e0a8 Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 21 Sep 2020 11:42:08 -0400 Subject: [PATCH 09/21] added some files --- trello_board-link.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 trello_board-link.txt diff --git a/trello_board-link.txt b/trello_board-link.txt new file mode 100644 index 000000000..9af2afbaf --- /dev/null +++ b/trello_board-link.txt @@ -0,0 +1 @@ +https://trello.com/b/vn8HEVCk/case-study-holistic \ No newline at end of file From 854a76eea52c67de3f66fd964227b7e8bee332d0 Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 21 Sep 2020 14:07:08 -0400 Subject: [PATCH 10/21] cloned the spring.jsp-login --- casestudy-registration/.gitignore | 562 ++++++++++++++++++ casestudy-registration/README-Sample.md | 74 +++ casestudy-registration/README-annotations.md | 171 ++++++ casestudy-registration/README.md | 13 + casestudy-registration/kill-8080.bat | 1 + casestudy-registration/kill-8080.sh | 1 + casestudy-registration/pom.xml | 75 +++ .../github/curriculeon/MainApplication.java | 11 + .../java/com/github/curriculeon/MyObject.java | 7 + .../curriculeon/config/WebSecurityConfig.java | 53 ++ .../controller/UserProfileController.java | 59 ++ .../github/curriculeon/model/UserProfile.java | 60 ++ .../curriculeon/model/UserProfileRole.java | 44 ++ .../repository/UserProfileRepository.java | 8 + .../repository/UserProfileRoleRepository.java | 8 + .../service/SecurityServiceImpl.java | 46 ++ .../service/UserProfileService.java | 51 ++ .../validator/UserProfileValidator.java | 42 ++ .../src/main/resources/application.properties | 6 + .../src/main/resources/validation.properties | 5 + .../src/main/webapp/footer.jsp | 4 + .../src/main/webapp/head_common.jsp | 11 + .../src/main/webapp/head_files.jsp | 10 + .../src/main/webapp/login.jsp | 35 ++ .../src/main/webapp/registration.jsp | 46 ++ .../src/main/webapp/resources/css/style.css | 43 ++ .../src/main/webapp/welcome.jsp | 28 + .../com/github/curriculeon/MyObjectTest.java | 18 + 28 files changed, 1492 insertions(+) create mode 100644 casestudy-registration/.gitignore create mode 100644 casestudy-registration/README-Sample.md create mode 100644 casestudy-registration/README-annotations.md create mode 100644 casestudy-registration/README.md create mode 100644 casestudy-registration/kill-8080.bat create mode 100644 casestudy-registration/kill-8080.sh create mode 100644 casestudy-registration/pom.xml create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java create mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java create mode 100644 casestudy-registration/src/main/resources/application.properties create mode 100644 casestudy-registration/src/main/resources/validation.properties create mode 100644 casestudy-registration/src/main/webapp/footer.jsp create mode 100644 casestudy-registration/src/main/webapp/head_common.jsp create mode 100644 casestudy-registration/src/main/webapp/head_files.jsp create mode 100644 casestudy-registration/src/main/webapp/login.jsp create mode 100644 casestudy-registration/src/main/webapp/registration.jsp create mode 100644 casestudy-registration/src/main/webapp/resources/css/style.css create mode 100644 casestudy-registration/src/main/webapp/welcome.jsp create mode 100644 casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java diff --git a/casestudy-registration/.gitignore b/casestudy-registration/.gitignore new file mode 100644 index 000000000..6161bf863 --- /dev/null +++ b/casestudy-registration/.gitignore @@ -0,0 +1,562 @@ + +# Created by https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio +# Edit at https://www.gitignore.io/?templates=eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +### Eclipse Patch ### +# Eclipse Core +.project + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Annotation Processing +.apt_generated + +.sts4-cache/ + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +target +target/ +target/* +*.iml +.idea +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/**/sonarlint/ + +# SonarQube Plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator/ + +### NetBeans ### +**/nbproject/private/ +**/nbproject/Makefile-*.mk +**/nbproject/Package-*.bash +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +### NotepadPP ### +# Notepad++ backups # + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# End of https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio diff --git a/casestudy-registration/README-Sample.md b/casestudy-registration/README-Sample.md new file mode 100644 index 000000000..a6e1dc3f7 --- /dev/null +++ b/casestudy-registration/README-Sample.md @@ -0,0 +1,74 @@ +# Project Title + +* **Objective** - To create a product... +* **Purpose** - To gain familiarity the following features... + + + + +## Instructions + + +### Testing Application via Postman + +* Ensure that the `start-class` tag in your `pom.xml` encapsulates `com.github.curriculeon.MyApplication` +* Open a command line and navigate to the project's root directory and run this command: + * `mvn spring-boot:run` +* Launch the [Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) app and enter the URI `http://localhost:8080/` and hit Send. +* If your application cannot run because something is occupying a port, use this command with the respective port number specified: + * **OSX and Linux** + * ``kill -kill `lsof -t -i tcp:8080` `` + * **Windows** + * _For use in command line_: + * `for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a` + * _For use in bat-file_: + * `for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a` + + + + +## How to Download + +#### Part 1 - Forking the Project +* To _fork_ the project, click the `Fork` button located at the top right of the project. + + +#### Part 2 - Navigating to _forked_ Repository +* Navigate to your github profile to find the _newly forked repository_. +* Copy the URL of the project to the clipboard. + +#### Part 3 - Cloning _forked_ repository +* Clone the repository from **your account** into the `~/dev` directory. + * if you do not have a `~/dev` directory, make one by executing the following command: + * `mkdir ~/dev` + * navigate to the `~/dev` directory by executing the following command: + * `cd ~/dev` + * clone the project by executing the following command: + * `git clone https://github.com/MYUSERNAME/NAMEOFPROJECT` + +#### Part 4 - Check Build +* Ensure that the tests run upon opening the project. + * You should see `Tests Failed: 99 of 99 tests` + + + + + + + +## How to Submit + +#### Part 1 - _Pushing_ local changes to remote repository +* from a _terminal_ navigate to the root directory of the _cloned_ project. +* from the root directory of the project, execute the following commands: + * add all changes + * `git add .` + * commit changes to be pushed + * `git commit -m 'I have added changes'` + * push changes to your repository + * `git push -u origin master` + +#### Part 2 - Submitting assignment +* from the browser, navigate to the _forked_ project from **your** github account. +* click the `Pull Requests` tab. +* select `New Pull Request` \ No newline at end of file diff --git a/casestudy-registration/README-annotations.md b/casestudy-registration/README-annotations.md new file mode 100644 index 000000000..5bcd496a0 --- /dev/null +++ b/casestudy-registration/README-annotations.md @@ -0,0 +1,171 @@ +### About Spring Annotations + +#### `@Entity` +* Annotates class signature +* **Description:** + * Allows the persistence provider to recognize it as a persistence class. + * An object representative of a snap shot of data from a database. + * By default, maps this entity to a table whose name is the name of the annotated class. Can be rerouted via the `@Table` annotation + * Entities are said to be _fungible_, or _mutually interchangeable_. +* **Pre-requesites for use:** + * An interface cannot be an entity. + * An enum cannot be an entity. + * The class can be abstract or concrete. + * The class must define a no-arg constructor. + * Each `Entity` must be annotated with a respective `ID`. + + + + + + + + +
+ +#### `@Id` +* Annotates field declarations +* **Description:** + * Denotes the primary key for this `Entity`. + * Can be generated manually by application or by automatically by the persistence provider. +* **Pre-requisites for use:** + * Class must be annotated with `@Entity` + + + + + + + + + +
+ +#### `@GeneratedValue(strategy = GenerationType.ENUM_VALUE)` +* Annotates `Id` fields. +* **Description:** + * Specifies how the persistence provider will generate this value. + * `GenerationType.SEQUENCE` - specifies the use of database SQL sequence + * `GenerationType.IDENTITY` - uses a database identity column + * `GenerationType.TABLE` - instructs provider to store the sequence name and its current value in a table, increasing the value of each time a new instance of the entity is persisted. + * `GenerationType.AUTO` - default when nothing specified. Provider does generation of a key automatically. It will select an appropriate strategy for a particular database. +* **Pre-requesites for use:** + * Field must be annotated with `@Id`. + + + + + + + + + + + +
+ +#### `@Autowired` +* Annotates field declaration or method-parameters +* **Description** + * injects bean by type + * can be used alone. + * If is used alone, it will be wired by type + * If more than one bean of same type are declared in the container `@Autowired` does not know which beans to use for injection. +* **Pre-requesites for use:** + * Field-type must be annotated with some form of `@Component`. + + + + + + + +
+ +#### `@Component` +* Annotates class signature +* **Description** + * denotes that Spring framework will autodetect these classes for dependency injection when annotation-based configuration and classpath scanning is used. +* **Prerequisites for use:** + * none + + + + + + +
+ +#### `@Service` +* Annotates class signature +* **Description** + * specialized form of `@Component` + * responsible for performing service tasks + * in many case you use this annotation for best practice, but isn't _always_ necessary. +* **Prerequisites for use:** + * none + + + + +
+ +#### `@Controller` +* Annotates class signature +* **Description** + * specialized form of `@Component` + * indicates that a particular class serves the role of a controller + * acts as a stereotype for the annotated class, indicating its role + * dispatcher scans such annotated classes for mapped methods and detects @RequestMapping annotations +* **Pre-requesites for use:** + * none + + + + + + + + +
+ +#### `@RequestMapping` +* Annotates a method signature +* **Description** + * annotation maps HTTP requests to handler methods of MVC and REST controllers. +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + + + + + + + +
+ +#### `@PathVariable` +* Annotates a method parameter +* **Description** + * indicates that a method parameter should be bound to a URI template variable +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + + + + + + +
+ +#### `@RequestParam` +* Annotates a method parameter +* **Description** + * indicates that a method parameter should be bound to a web request parameter + * used to extract query parameters, form parameters +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + \ No newline at end of file diff --git a/casestudy-registration/README.md b/casestudy-registration/README.md new file mode 100644 index 000000000..7d49f4bb0 --- /dev/null +++ b/casestudy-registration/README.md @@ -0,0 +1,13 @@ +# Spring Boot With JSP Integration and Login Page Project Template +* **Objective** - The purpose of this repository is to create a standard template to clone from when creating new spring boot projects. +* **Background** - [Amikoreh's repository](https://github.com/amikoreh/java-springboot-registration-login-1) was used as a reference to create this project. + +## How to use +* To use this project as template, _clone_ the project into your `~/dev` directory, +* Upon cloning reconfigure the remote by + 1. delete the `.git` folder associated with project. + 2. `git init` to create a new `.git` folder + 3. point the new `.git` folder to your new remote via `git remote set-url`. +* After reconfiguring remote, open the project in a text editor (VSCode, IntelliJ, SublimeText, Atom, etc.) +* Ensure that the `artifactId` of the project is changed from `spring-template-project` to a more appropriate project name. +* Click view the [`README-Sample.md`](./README-Sample.md) to view _how_ a `README` should be structured for a project. \ No newline at end of file diff --git a/casestudy-registration/kill-8080.bat b/casestudy-registration/kill-8080.bat new file mode 100644 index 000000000..44b34ddda --- /dev/null +++ b/casestudy-registration/kill-8080.bat @@ -0,0 +1 @@ +for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a \ No newline at end of file diff --git a/casestudy-registration/kill-8080.sh b/casestudy-registration/kill-8080.sh new file mode 100644 index 000000000..2198716e0 --- /dev/null +++ b/casestudy-registration/kill-8080.sh @@ -0,0 +1 @@ +kill -kill `lsof -t -i tcp:8080` diff --git a/casestudy-registration/pom.xml b/casestudy-registration/pom.xml new file mode 100644 index 000000000..e58c5d923 --- /dev/null +++ b/casestudy-registration/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + SpringBootSampleWebApp + 0.0.1-SNAPSHOT + war + Curriculeon SpringBoot JSP Login Page + Demo project for Spring Boot With Login JSP View + + org.springframework.boot + spring-boot-starter-parent + 2.1.2.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + + + + com.h2database + h2 + runtime + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.data + spring-data-jpa + + + javax.servlet + jstl + + + + org.apache.tomcat.embed + tomcat-embed-jasper + + + + org.eclipse.jdt.core.compiler + ecj + 4.6.1 + + + junit + junit + 4.12 + test + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java b/casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java new file mode 100644 index 000000000..93877b366 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java @@ -0,0 +1,11 @@ +package com.github.curriculeon; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MainApplication { + public static void main(String[] args) { + SpringApplication.run(MainApplication.class, args); + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java b/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java new file mode 100644 index 000000000..2301f17e8 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java @@ -0,0 +1,7 @@ +package com.github.curriculeon; + +public class MyObject implements Runnable { + public void run() { + // TODO + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java b/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java new file mode 100644 index 000000000..65f3c1402 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java @@ -0,0 +1,53 @@ +package com.github.curriculeon.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +@Configuration +@EnableWebSecurity +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + @Autowired + private UserDetailsService userDetailsService; + + @Bean + public BCryptPasswordEncoder bCryptPasswordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .antMatchers("/resources/**", "/registration").permitAll() + .anyRequest().authenticated() + .and() + .formLogin() + .loginPage("/login") + .permitAll() + .and() + .logout() + .permitAll(); + } + + @Override + @Bean + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + @Autowired + public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { + auth + .parentAuthenticationManager(authenticationManagerBean()) + .userDetailsService(userDetailsService) + .passwordEncoder(bCryptPasswordEncoder()); + } +} \ No newline at end of file diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java b/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java new file mode 100644 index 000000000..3a5023f3c --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java @@ -0,0 +1,59 @@ +package com.github.curriculeon.controller; + +import com.github.curriculeon.model.UserProfile; +import com.github.curriculeon.service.SecurityServiceImpl; +import com.github.curriculeon.service.UserProfileService; +import com.github.curriculeon.validator.UserProfileValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +@Controller +public class UserProfileController { + private UserProfileService userService; + private SecurityServiceImpl securityService; + private UserProfileValidator userValidator; + + @Autowired + public UserProfileController(UserProfileService userService, UserProfileValidator userValidator, SecurityServiceImpl securityService) { + this.userService = userService; + this.userValidator = userValidator; + this.securityService = securityService; + } + + @GetMapping(value = "/registration") + public String registration(Model model) { + model.addAttribute("userForm", new UserProfile()); + return "registration"; + } + + @PostMapping(value = "/registration") + public String registration(@ModelAttribute("userForm") UserProfile userForm, BindingResult bindingResult, Model model) { + userValidator.validate(userForm, bindingResult); + if (bindingResult.hasErrors()) { + return "registration"; + } + userService.save(userForm); + securityService.autologin(userForm.getUsername(), userForm.getPasswordConfirm()); + return "redirect:/welcome"; + } + + @GetMapping(value = "/login") + public String login(Model model, String error, String logout) { + if (error != null) { + model.addAttribute("error", "Your username and password are invalid."); + } + if (logout != null) { + model.addAttribute("message", "You have logged out successfully."); + } + + return "login"; + } + + @GetMapping(value = {"/", "/welcome"}) + public String welcome(Model model) { + return "welcome"; + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java new file mode 100644 index 000000000..833c836c2 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java @@ -0,0 +1,60 @@ +package com.github.curriculeon.model; + +import javax.persistence.*; +import java.util.List; + +@Entity +public class UserProfile { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String username; + private String password; + + @Transient // don't persist; not a column + private String passwordConfirm; + + @ManyToMany + @ElementCollection + private List userRoles; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getPasswordConfirm() { + return passwordConfirm; + } + + public void setPasswordConfirm(String passwordConfirm) { + this.passwordConfirm = passwordConfirm; + } + + public List getUserRoles() { + return userRoles; + } + + public void setUserRoles(List userRoles) { + this.userRoles = userRoles; + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java new file mode 100644 index 000000000..2838c81d7 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java @@ -0,0 +1,44 @@ +package com.github.curriculeon.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import javax.persistence.*; +import java.util.List; + +@Entity +public class UserProfileRole { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String name; + + @JsonIgnore + @ManyToMany + @ElementCollection + private List users; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java new file mode 100644 index 000000000..ae6bc3828 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java @@ -0,0 +1,8 @@ +package com.github.curriculeon.repository; + +import com.github.curriculeon.model.UserProfile; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserProfileRepository extends JpaRepository { + UserProfile findByUsername(String username); +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java new file mode 100644 index 000000000..552c67eb3 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java @@ -0,0 +1,8 @@ +package com.github.curriculeon.repository; + + +import com.github.curriculeon.model.UserProfileRole; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserProfileRoleRepository extends JpaRepository { +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java b/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java new file mode 100644 index 000000000..fbe42fd48 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java @@ -0,0 +1,46 @@ +package com.github.curriculeon.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.stereotype.Service; + +@Service +public class SecurityServiceImpl { + private static final Logger logger = LoggerFactory.getLogger(SecurityServiceImpl.class); + private AuthenticationManager authenticationManager; + + private UserDetailsService userDetailsService; + + @Autowired + public SecurityServiceImpl(AuthenticationManager authenticationManager, UserDetailsService userDetailsService) { + this.authenticationManager = authenticationManager; + this.userDetailsService = userDetailsService; + } + + public String findLoggedInUsername() { + Object userDetails = SecurityContextHolder.getContext().getAuthentication().getDetails(); + if (userDetails instanceof UserDetails) { + return ((UserDetails) userDetails).getUsername(); + } + + return null; + } + + public void autologin(String username, String password) { + UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities()); + + authenticationManager.authenticate(usernamePasswordAuthenticationToken); + + if (usernamePasswordAuthenticationToken.isAuthenticated()) { + SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken); + logger.debug(String.format("Auto login %s successfully!", username)); + } + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java b/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java new file mode 100644 index 000000000..e278f01fa --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java @@ -0,0 +1,51 @@ +package com.github.curriculeon.service; + +import com.github.curriculeon.model.UserProfile; +import com.github.curriculeon.repository.UserProfileRoleRepository; +import com.github.curriculeon.repository.UserProfileRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashSet; +import java.util.Set; + +@Service +public class UserProfileService implements UserDetailsService { + private UserProfileRepository userRepository; + private UserProfileRoleRepository roleRepository; + private BCryptPasswordEncoder bCryptPasswordEncoder; + + @Autowired + public UserProfileService(UserProfileRepository userRepository, UserProfileRoleRepository roleRepository, BCryptPasswordEncoder bCryptPasswordEncoder) { + this.userRepository = userRepository; + this.roleRepository = roleRepository; + this.bCryptPasswordEncoder = bCryptPasswordEncoder; + } + + @Override + @Transactional(readOnly = true) + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + UserProfile user = userRepository.findByUsername(username); + Set grantedAuthorities = new HashSet<>(); + user.getUserRoles().forEach(role -> grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()))); + return new User(user.getUsername(), user.getPassword(), grantedAuthorities); + } + + public void save(UserProfile user) { + user.setPassword(bCryptPasswordEncoder.encode(user.getPassword())); + user.setUserRoles(roleRepository.findAll()); + userRepository.save(user); + } + + public UserProfile findByUsername(String username) { + return userRepository.findByUsername(username); + } +} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java b/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java new file mode 100644 index 000000000..50b95b417 --- /dev/null +++ b/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java @@ -0,0 +1,42 @@ +package com.github.curriculeon.validator; + +import com.github.curriculeon.model.UserProfile; +import com.github.curriculeon.service.UserProfileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; +import org.springframework.validation.Validator; + +@Component +public class UserProfileValidator implements Validator { + @Autowired + private UserProfileService userService; + + @Override + public boolean supports(Class aClass) { + return UserProfile.class.equals(aClass); + } + + @Override + public void validate(Object o, Errors errors) { + UserProfile user = (UserProfile) o; + + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "NotEmpty"); + if (user.getUsername().length() < 6 || user.getUsername().length() > 32) { + errors.rejectValue("username", "Size.userForm.username"); + } + if (userService.findByUsername(user.getUsername()) != null) { + errors.rejectValue("username", "Duplicate.userForm.username"); + } + + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "NotEmpty"); + if (user.getPassword().length() < 8 || user.getPassword().length() > 32) { + errors.rejectValue("password", "Size.userForm.password"); + } + + if (!user.getPasswordConfirm().equals(user.getPassword())) { + errors.rejectValue("passwordConfirm", "Diff.userForm.passwordConfirm"); + } + } +} diff --git a/casestudy-registration/src/main/resources/application.properties b/casestudy-registration/src/main/resources/application.properties new file mode 100644 index 000000000..4415c4a08 --- /dev/null +++ b/casestudy-registration/src/main/resources/application.properties @@ -0,0 +1,6 @@ +spring.mvc.view.prefix: / +spring.mvc.view.suffix: .jsp +spring.messages.basename=validation + +spring.datasource.username=root +spring.datasource.password=root \ No newline at end of file diff --git a/casestudy-registration/src/main/resources/validation.properties b/casestudy-registration/src/main/resources/validation.properties new file mode 100644 index 000000000..9309bdf06 --- /dev/null +++ b/casestudy-registration/src/main/resources/validation.properties @@ -0,0 +1,5 @@ +NotEmpty=This field is required. +Size.userForm.username=Username require between 6 and 32 characters. +Duplicate.userForm.username=Someone is already using this username. +Size.userForm.password=Passwords require at least 8 characters. +Diff.userForm.passwordConfirm=These passwords do not match. \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/footer.jsp b/casestudy-registration/src/main/webapp/footer.jsp new file mode 100644 index 000000000..9cbb80181 --- /dev/null +++ b/casestudy-registration/src/main/webapp/footer.jsp @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/head_common.jsp b/casestudy-registration/src/main/webapp/head_common.jsp new file mode 100644 index 000000000..196e10bcc --- /dev/null +++ b/casestudy-registration/src/main/webapp/head_common.jsp @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/head_files.jsp b/casestudy-registration/src/main/webapp/head_files.jsp new file mode 100644 index 000000000..9c9626c3c --- /dev/null +++ b/casestudy-registration/src/main/webapp/head_files.jsp @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/login.jsp b/casestudy-registration/src/main/webapp/login.jsp new file mode 100644 index 000000000..ccce5f0c8 --- /dev/null +++ b/casestudy-registration/src/main/webapp/login.jsp @@ -0,0 +1,35 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + Log in with your account + + + +
+
+
+ + + +
+
+
+ diff --git a/casestudy-registration/src/main/webapp/registration.jsp b/casestudy-registration/src/main/webapp/registration.jsp new file mode 100644 index 000000000..a4e886276 --- /dev/null +++ b/casestudy-registration/src/main/webapp/registration.jsp @@ -0,0 +1,46 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + Create an account + + + +
+
+
+ + + +
+
+
+ diff --git a/casestudy-registration/src/main/webapp/resources/css/style.css b/casestudy-registration/src/main/webapp/resources/css/style.css new file mode 100644 index 000000000..aaf492b73 --- /dev/null +++ b/casestudy-registration/src/main/webapp/resources/css/style.css @@ -0,0 +1,43 @@ +body { + font-family: 'Montserrat', "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 15px; + padding-top: 50px; + padding-bottom: 50px; + background-color: #efefef; + color: #2b2b2b; +} +.form-heading { + text-align: center; + text-transform: uppercase; +} +.form-signin { + max-width: 360px; + padding: 15px; + margin: 0 auto; +} +.form-signin .form-control { + position: relative; + height: auto; + padding: 10px; + font-size: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.form-signin .form-control:focus { + z-index: 3; +} +.form-signin input, .form-signin button { + margin-top: 10px; +} +.form-signin .form-signin-heading, .form-signin .checkbox { + margin-bottom: 10px; +} +.form-signin .checkbox { + font-weight: normal; +} +.has-error { + color: #ff0000; + line-height: 1; + font-size: 14px; +} \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/welcome.jsp b/casestudy-registration/src/main/webapp/welcome.jsp new file mode 100644 index 000000000..8284ea345 --- /dev/null +++ b/casestudy-registration/src/main/webapp/welcome.jsp @@ -0,0 +1,28 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + Create an account + + + +
+
+
+ + +
+ +
+ +

Welcome ${pageContext.request.userPrincipal.name} | Logout

+ +
+ +
+
+
+ diff --git a/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java b/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java new file mode 100644 index 000000000..2eac71dd4 --- /dev/null +++ b/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java @@ -0,0 +1,18 @@ +package com.github.curriculeon; + +import org.junit.Assert; +import org.junit.Test; + +public class MyObjectTest { + @Test + public void testRun() { // TODO + // Given + MyObject myObject = new MyObject(); + + // when + myObject.run(); + + //then + Assert.assertNotNull(myObject.toString()); + } +} From 5f988df830aa7cbc42957544aef38b060f7aa71b Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 21 Sep 2020 22:08:09 -0400 Subject: [PATCH 11/21] added customer and product services --- .../customer-service/.gitignore | 31 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 114 +++++++ .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/customer-service/mvnw | 286 ++++++++++++++++++ .../customer-service/mvnw.cmd | 161 ++++++++++ .../customer-service/pom.xml | 89 ++++++ .../CustomerServiceApplication.java | 18 ++ .../ControllerExceptionHandler.java | 76 +++++ .../controller/CustomerController.java | 74 +++++ .../customerservice/dao/CustomerDao.java | 19 ++ .../dao/CustomerDaoJdbcTemplateImple.java | 121 ++++++++ .../exception/NotFoundException.java | 10 + .../customerservice/model/Customer.java | 106 +++++++ .../service/CustomerService.java | 44 +++ .../src/main/resources/application.properties | 0 .../src/main/resources/bootstrap.properties | 2 + .../src/main/resources/customer.sql.txt | 31 ++ .../CustomerServiceApplicationTests.java | 16 + .../dao/CustomerDaoJdbcTemplateImpleTest.java | 67 ++++ .../service/CustomerServiceTest.java | 72 +++++ .../src/test/resources/application.properties | 4 + .../product-service/.gitignore | 32 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 114 +++++++ .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/product-service/mvnw | 286 ++++++++++++++++++ .../product-service/mvnw.cmd | 161 ++++++++++ .../product-service/pom.xml | 105 +++++++ .../ProductServiceApplication.java | 19 ++ .../ControllerExceptionHandler.java | 76 +++++ .../controller/ProductServiceController.java | 72 +++++ .../productservice/dao/ProductDao.java | 23 ++ .../dao/ProductDaoJdbcTemplateImpl.java | 116 +++++++ .../exception/NotFoundException.java | 7 + .../productservice/model/Inventory.java | 48 +++ .../productservice/model/Invoice.java | 49 +++ .../productservice/model/InvoiceItem.java | 69 +++++ .../productservice/model/Product.java | 78 +++++ .../serviceLayer/ProductService.java | 53 ++++ .../util/feign/InventoryServiceClient.java | 13 + .../src/main/resources/application.properties | 0 .../src/main/resources/bootstrap.properties | 2 + .../src/main/resources/product.sql | 23 ++ .../ProductServiceApplicationTests.java | 16 + .../dao/ProductDaoJdbcTemplateImplTest.java | 91 ++++++ .../serviceLayer/ProductServiceTest.java | 81 +++++ .../src/test/resources/application.properties | 5 + 48 files changed, 2882 insertions(+) create mode 100644 healthyliving-casestudy/customer-service/.gitignore create mode 100644 healthyliving-casestudy/customer-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/customer-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/customer-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/customer-service/mvnw create mode 100644 healthyliving-casestudy/customer-service/mvnw.cmd create mode 100644 healthyliving-casestudy/customer-service/pom.xml create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/CustomerServiceApplication.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/CustomerController.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDao.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImple.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/model/Customer.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/service/CustomerService.java create mode 100644 healthyliving-casestudy/customer-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/customer-service/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/customer-service/src/main/resources/customer.sql.txt create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/CustomerServiceApplicationTests.java create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/service/CustomerServiceTest.java create mode 100644 healthyliving-casestudy/customer-service/src/test/resources/application.properties create mode 100644 healthyliving-casestudy/product-service/.gitignore create mode 100644 healthyliving-casestudy/product-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/product-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/product-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/product-service/mvnw create mode 100644 healthyliving-casestudy/product-service/mvnw.cmd create mode 100644 healthyliving-casestudy/product-service/pom.xml create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/ProductServiceApplication.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ProductServiceController.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDao.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImpl.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Inventory.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Invoice.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/InvoiceItem.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Product.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/serviceLayer/ProductService.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/util/feign/InventoryServiceClient.java create mode 100644 healthyliving-casestudy/product-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/product-service/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/product-service/src/main/resources/product.sql create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/ProductServiceApplicationTests.java create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImplTest.java create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/serviceLayer/ProductServiceTest.java create mode 100644 healthyliving-casestudy/product-service/src/test/resources/application.properties diff --git a/healthyliving-casestudy/customer-service/.gitignore b/healthyliving-casestudy/customer-service/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/customer-service/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/customer-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/customer-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/customer-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/customer-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/customer-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/customer-service/mvnw.cmd b/healthyliving-casestudy/customer-service/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/customer-service/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/customer-service/pom.xml b/healthyliving-casestudy/customer-service/pom.xml new file mode 100644 index 000000000..64a495658 --- /dev/null +++ b/healthyliving-casestudy/customer-service/pom.xml @@ -0,0 +1,89 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.casestudy + customer-service + 0.0.1-SNAPSHOT + customer-service + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-cache + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/CustomerServiceApplication.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/CustomerServiceApplication.java new file mode 100644 index 000000000..098f7eff5 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/CustomerServiceApplication.java @@ -0,0 +1,18 @@ +package com.casestudy.customerservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +//import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableCaching +public class CustomerServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(CustomerServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..fae527c5a --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,76 @@ +package com.casestudy.customerservice.controller; + +import com.casestudy.customerservice.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; + +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/CustomerController.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/CustomerController.java new file mode 100644 index 000000000..2e2039627 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/controller/CustomerController.java @@ -0,0 +1,74 @@ +package com.casestudy.customerservice.controller; + +import com.casestudy.customerservice.exception.NotFoundException; +import com.casestudy.customerservice.model.Customer; +import com.casestudy.customerservice.service.CustomerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RefreshScope +@CacheConfig(cacheNames = {"customers"}) +@RequestMapping("/customers") +public class CustomerController { + @Autowired + CustomerService service; + + public CustomerController(CustomerService service) { + this.service = service; + } + + @CachePut(key = "#result.getCustomerId()") + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Customer addCustomer(@RequestBody @Valid Customer customer){ + return service.addCustomer(customer); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllCustomers() { + return service.getAllCustomers(); + } + + @Cacheable + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Customer getCustomerById(@PathVariable int id)throws NotFoundException { + Customer customer= service.getCustomerById(id); + if (customer==null){ + throw new NotFoundException("Customer not found, id: "+id); + } else { + return customer; + } + } + + @CacheEvict(key = "#customer.getCustomerId()") + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateCustomer(@RequestBody Customer customer, @PathVariable int id) { + if (customer.getCustomerId()==id){ + service.updateCustomer(customer); + } else { + throw new NotFoundException("path id should match customer id: "+ customer.getCustomerId()); + } + } + + @CacheEvict + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteCustomer(@PathVariable int id) { + service.deleteCustomer(id); + } + + +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDao.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDao.java new file mode 100644 index 000000000..1b6699b94 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDao.java @@ -0,0 +1,19 @@ +package com.casestudy.customerservice.dao; + +import com.casestudy.customerservice.model.Customer; + +import java.util.List; + + +public interface CustomerDao { + + Customer addCustomer(Customer customer); + + List getAllCustomers(); + + Customer getCustomerById(int id); + + void updateCustomer(Customer customer); + + void deleteCustomer(int id); +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImple.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImple.java new file mode 100644 index 000000000..c623824f7 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImple.java @@ -0,0 +1,121 @@ +package com.casestudy.customerservice.dao; + +import com.casestudy.customerservice.model.Customer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Repository +public class CustomerDaoJdbcTemplateImple implements CustomerDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public CustomerDaoJdbcTemplateImple(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public Customer addCustomer(Customer customer) { + String sql = "insert into customer (" + + "first_name," + + "last_name," + + "street," + + "city," + + "zip," + + "email," + + "phone" + + ") values (?,?,?,?,?,?,?)"; + jdbcTemplate.update( + sql, + customer.getFistName(), + customer.getLastName(), + customer.getStreet(), + customer.getCity(), + customer.getZip(), + customer.getEmail(), + customer.getPhone() + ); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + customer.setCustomerId(id); + return customer; + } + + // helper method + private Customer mapTo(ResultSet rs, int rowNum) throws SQLException { + Customer customer = new Customer(); + customer.setCustomerId(rs.getInt("customer_id")); + customer.setFistName(rs.getString("first_name")); + customer.setLastName(rs.getString("last_name")); + customer.setStreet(rs.getString("street")); + customer.setCity(rs.getString("city")); + customer.setZip(rs.getString("zip")); + customer.setEmail(rs.getString("email")); + customer.setPhone(rs.getString("phone")); + return customer; + } + + @Override + public List getAllCustomers() { + String sql = "select * from customer"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public Customer getCustomerById(int id) { + String sql = "select * from customer where customer_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateCustomer(Customer customer) { + String sql = "update customer set " + + "first_name=?," + + "last_name=?," + + "street=?," + + "city=?," + + "zip=?," + + "email=?," + + "phone=?" + + "where customer_id=?"; + jdbcTemplate.update( + sql, + customer.getFistName(), + customer.getLastName(), + customer.getStreet(), + customer.getCity(), + customer.getZip(), + customer.getEmail(), + customer.getPhone(), + customer.getCustomerId() + ); + } + + @Override + public void deleteCustomer(int id) { + String sql = "delete from customer where customer_id=?"; + jdbcTemplate.update( + sql, + id + ); + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/exception/NotFoundException.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/exception/NotFoundException.java new file mode 100644 index 000000000..a8a4b6f04 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/exception/NotFoundException.java @@ -0,0 +1,10 @@ +package com.casestudy.customerservice.exception; + +public class NotFoundException extends RuntimeException { + public NotFoundException(String message) { + super(message); + } + + public NotFoundException() { + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/model/Customer.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/model/Customer.java new file mode 100644 index 000000000..d4ea14200 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/model/Customer.java @@ -0,0 +1,106 @@ +package com.casestudy.customerservice.model; + +import javax.validation.constraints.NotEmpty; +import java.util.Objects; + +public class Customer { + private int customerId; + @NotEmpty(message = "first name??") + private String fistName; + @NotEmpty(message = "last name??") + private String lastName; + @NotEmpty(message = "street name??") + private String street; + @NotEmpty(message = "city name??") + private String city; + @NotEmpty(message = "zip code??") + private String zip; + @NotEmpty(message = "email??") + private String email; + @NotEmpty(message = "phone??") + private String phone; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Customer that = (Customer) o; + return customerId == that.customerId && + fistName.equals(that.fistName) && + lastName.equals(that.lastName) && + street.equals(that.street) && + city.equals(that.city) && + zip.equals(that.zip) && + email.equals(that.email) && + phone.equals(that.phone); + } + + @Override + public int hashCode() { + return Objects.hash(customerId, fistName, lastName, street, city, zip, email, phone); + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getFistName() { + return fistName; + } + + public void setFistName(String fistName) { + this.fistName = fistName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/service/CustomerService.java b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/service/CustomerService.java new file mode 100644 index 000000000..4885f8e13 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/casestudy/customerservice/service/CustomerService.java @@ -0,0 +1,44 @@ +package com.casestudy.customerservice.service; + + +import com.casestudy.customerservice.dao.CustomerDao; +import com.casestudy.customerservice.model.Customer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class CustomerService { + @Autowired + CustomerDao dao; + + public CustomerService(CustomerDao dao) { + this.dao = dao; + } + + @Transactional + public Customer addCustomer(Customer customer) { + customer = dao.addCustomer(customer); + return customer; + } + + public List getAllCustomers() { + return dao.getAllCustomers(); + } + + public Customer getCustomerById(int id) { + return dao.getCustomerById(id); + } + + @Transactional + public void updateCustomer(Customer customer) { + dao.updateCustomer(customer); + } + + public void deleteCustomer(int id) { + dao.deleteCustomer(id); + } + +} diff --git a/healthyliving-casestudy/customer-service/src/main/resources/application.properties b/healthyliving-casestudy/customer-service/src/main/resources/application.properties new file mode 100644 index 000000000..e69de29bb diff --git a/healthyliving-casestudy/customer-service/src/main/resources/bootstrap.properties b/healthyliving-casestudy/customer-service/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..e904ace02 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=customer-service +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/main/resources/customer.sql.txt b/healthyliving-casestudy/customer-service/src/main/resources/customer.sql.txt new file mode 100644 index 000000000..7e134466f --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/resources/customer.sql.txt @@ -0,0 +1,31 @@ +create schema if not exists customer; +use customer; + +create table if not exists customer + ( +customer_id int(11) not null auto_increment primary key, +first_name varchar(50) not null, +last_name varchar(50) not null, +street varchar(50) not null, +City varchar(30) not null, +State varchar(30) not null, +zip varchar(10) not null, +email varchar(75), +phone varchar(20) +); + +create schema if not exists customer_test; +use customer_test; + +create table if not exists customer + ( +customer_id int(11) not null auto_increment primary key, +first_name varchar(50) not null, +last_name varchar(50) not null, +street varchar(50) not null, +City varchar(30) not null, +State varchar(30) not null, +zip varchar(10) not null, +email varchar(75), +phone varchar(20) +); \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/CustomerServiceApplicationTests.java b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/CustomerServiceApplicationTests.java new file mode 100644 index 000000000..f63baa91b --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/CustomerServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.casestudy.customerservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class CustomerServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java new file mode 100644 index 000000000..a6ab8a527 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java @@ -0,0 +1,67 @@ +package com.casestudy.customerservice.dao; + +import com.casestudy.customerservice.model.Customer; +//import com.netflix.discovery.converters.Auto; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class CustomerDaoJdbcTemplateImpleTest { + + @Autowired + CustomerDao dao; + + @Before + public void setUp() throws Exception { + // clear the data base + List customers = dao.getAllCustomers(); + customers.stream().forEach(customer -> dao.deleteCustomer(customer.getCustomerId())); + } + + @Test + public void testAddCustomerGetAllCustomersGetCustomerById() { + Customer customer1 = new Customer(); + customer1.setFistName("Simon"); + customer1.setLastName("Kwok"); + customer1.setStreet("Sesame Street"); + customer1.setCity("Forbidden City"); + customer1.setZip("00000"); + customer1.setEmail("test@test.com"); + customer1.setPhone("9009009009"); + // test add + customer1 = dao.addCustomer(customer1); + // test getAll + List customers = dao.getAllCustomers(); + assertEquals(customers.size(),1); + // test get by Id + Customer customer2 = dao.getCustomerById(customer1.getCustomerId()); + assertEquals(customer1,customer2); + } + + @Test + public void testUpdateCustomerDeleteCustomer() { + Customer customer1 = new Customer(); + customer1.setFistName("Simon"); + customer1.setLastName("Kwok"); + customer1.setStreet("Sesame Street"); + customer1.setCity("Forbidden City"); + customer1.setZip("00000"); + customer1.setEmail("test@test.com"); + customer1.setPhone("9009009009"); + // test add + customer1 = dao.addCustomer(customer1); + customer1.setCity("Open City"); + dao.updateCustomer(customer1); + assertEquals(dao.getCustomerById(customer1.getCustomerId()).getCity(),"Open City"); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/service/CustomerServiceTest.java b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/service/CustomerServiceTest.java new file mode 100644 index 000000000..6ab8dc706 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/casestudy/customerservice/service/CustomerServiceTest.java @@ -0,0 +1,72 @@ +package com.casestudy.customerservice.service; + +import com.casestudy.customerservice.dao.CustomerDao; +import com.casestudy.customerservice.model.Customer; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class CustomerServiceTest { + + @Mock + CustomerDao dao; + + @InjectMocks + CustomerService service; + + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void addCustomer() { + Customer customer1 = new Customer(); + when(dao.addCustomer(customer1)).thenReturn(customer1); + customer1 = service.addCustomer(customer1); + verify(dao, times(1)).addCustomer(customer1); + } + + @Test + public void getAllCustomers() { + List customers = new ArrayList<>(); + when(dao.getAllCustomers()).thenReturn(customers); + List customers1 = service.getAllCustomers(); + assertEquals(customers1.size(),0); + } + + @Test + public void getCustomerById() { + Customer customer1 = new Customer(); + when(dao.getCustomerById(1)).thenReturn(customer1); + customer1 = service.getCustomerById(1); + verify(dao, times(1)).getCustomerById(1); + } + + @Test + public void updateCustomer() { + Customer customer1 = new Customer(); + service.updateCustomer(customer1); + verify(dao,times(1)).updateCustomer(customer1); + } + + @Test + public void deleteCustomer() { + service.deleteCustomer(1); + verify(dao,times(1)).deleteCustomer(1); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/test/resources/application.properties b/healthyliving-casestudy/customer-service/src/test/resources/application.properties new file mode 100644 index 000000000..6cdeb90b3 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/resources/application.properties @@ -0,0 +1,4 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/customer_test?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/.gitignore b/healthyliving-casestudy/product-service/.gitignore new file mode 100644 index 000000000..c71819303 --- /dev/null +++ b/healthyliving-casestudy/product-service/.gitignore @@ -0,0 +1,32 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ + diff --git a/healthyliving-casestudy/product-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/product-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/product-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/product-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/product-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/product-service/mvnw.cmd b/healthyliving-casestudy/product-service/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/product-service/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/product-service/pom.xml b/healthyliving-casestudy/product-service/pom.xml new file mode 100644 index 000000000..c2d902652 --- /dev/null +++ b/healthyliving-casestudy/product-service/pom.xml @@ -0,0 +1,105 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.casestudy + product-service + 0.0.1-SNAPSHOT + product-service + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.cloud + spring-cloud-starter-feign + 1.4.7.RELEASE + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.javassist + javassist + 3.23.2-GA + + + org.springframework.boot + spring-boot-starter-cache + + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/ProductServiceApplication.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/ProductServiceApplication.java new file mode 100644 index 000000000..4dfd6428b --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/ProductServiceApplication.java @@ -0,0 +1,19 @@ +package com.casestudy.productservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +@EnableCaching +public class ProductServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(ProductServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..a217fd3dd --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,76 @@ +package com.casestudy.productservice.controller; + + +import javassist.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {com.casestudy.productservice.exception.NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ProductServiceController.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ProductServiceController.java new file mode 100644 index 000000000..e7b3d80e0 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/controller/ProductServiceController.java @@ -0,0 +1,72 @@ +package com.casestudy.productservice.controller; + +import com.casestudy.productservice.model.Product; +import com.casestudy.productservice.serviceLayer.ProductService; +import javassist.NotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + + +@RestController +@RefreshScope +@CacheConfig(cacheNames = {"products"}) +public class ProductServiceController { + @Autowired + ProductService service; + + + @CachePut(key = "#result.getProductId()") + @RequestMapping(value = "/products", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public Product addProduct(@RequestBody @Valid Product product) { + return service.addProduct(product); + } + + @RequestMapping(value = "/products", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public List getAllProducts() { + return service.getAllProducts(); + } + + @Cacheable + @RequestMapping(value = "/products/{id}", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public Product getProductById(@PathVariable int id) throws NotFoundException { + Product product= service.getProductById(id); + //return service.getProductById(id); + if (product==null){ + throw new NotFoundException("Product not found, id: "+id); + } else { + return product; + } + } + + @CacheEvict(key = "#product.getProductId()") + @RequestMapping(value = "/products/{id}", method = RequestMethod.PUT) + @ResponseStatus(HttpStatus.OK) + public void updateProduct(@RequestBody @Valid Product product,@PathVariable int id) { + System.out.println("UPDATING Product = " + product.getProductId()); + if (id!=product.getProductId()){ + throw new com.casestudy.productservice.exception.NotFoundException("path id should match with id: "+id); + } else { + service.updateProduct(product); + } + } + + @CacheEvict + @RequestMapping(value = "/products/{id}", method = RequestMethod.DELETE) + @ResponseStatus(HttpStatus.OK) + public void deleteProduct(@PathVariable int id) { + service.deleteProduct(id); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDao.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDao.java new file mode 100644 index 000000000..7da79e80a --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDao.java @@ -0,0 +1,23 @@ +package com.casestudy.productservice.dao; + +import com.casestudy.productservice.model.Product; + +import java.util.List; + +public interface ProductDao { + + //Method to get a product by the id + Product getProductById(int id); + + // method to get all the Products + List getAllProducts(); + + //method to add a new Product to inventory + Product addProduct(Product product); + + //Update Product + void updateProduct(Product product); + + void deleteProduct(int id); + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImpl.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImpl.java new file mode 100644 index 000000000..00ca4a6a5 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImpl.java @@ -0,0 +1,116 @@ +package com.casestudy.productservice.dao; + +import com.casestudy.productservice.model.Product; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + + +@Repository +public class ProductDaoJdbcTemplateImpl implements ProductDao { + private static final String INSERT_PRODUCT_SQL = + "insert into product(" + + "product_name," + + " product_description," + + "list_price," + + " unit_cost" + + ")" + + "values(?,?,?,?)"; + private static final String SELECT_PRODUCT_SQL = + "select * from product where product_id = ?"; + + private static final String SELECT_ALL_PRODUCTS_SQL = + "select * from product"; + + private static final String DELETE_PRODUCT_SQL = + "delete from product where product_id = ?"; + + private static final String UPDATE_PRODUCT_SQL = + "update product set " + + "product_name = ?," + + " product_description = ?," + + " list_price = ?," + + "unit_cost = ?" + + " where product_id = ?"; + + private JdbcTemplate jdbcTemplate; + + @Autowired + public ProductDaoJdbcTemplateImpl(JdbcTemplate jdbcTemplate) { + + this.jdbcTemplate = jdbcTemplate; + } + + @Override + @Transactional + public Product addProduct(Product product) { + jdbcTemplate.update(INSERT_PRODUCT_SQL, + product.getProductName(), + product.getProductDescription(), + product.getListPrice(), + product.getUnitCost()); + + int id = jdbcTemplate.queryForObject("select last_insert_id()", Integer.class); + product.setProductId(id); + return product; + } + + private Product mapRowToProduct(ResultSet rs, int rowNum) throws SQLException { + Product product = new Product(); + product.setProductId(rs.getInt("product_id")); + product.setProductName(rs.getString("product_name")); + product.setProductDescription(rs.getString("product_description")); + product.setListPrice(rs.getBigDecimal("list_price")); + product.setUnitCost(rs.getBigDecimal("unit_cost")); + return product; + } + + public Product getProductById(int id) { + try { + return jdbcTemplate + .queryForObject(SELECT_PRODUCT_SQL, this::mapRowToProduct, id); + } catch (EmptyResultDataAccessException e) { + //if nothing is returned just catch the exception + //and return null + return null; + } + } + + + @Override + public List getAllProducts() { + + return jdbcTemplate.query(SELECT_ALL_PRODUCTS_SQL, this::mapRowToProduct); + } + + + + + @Override + public void updateProduct(Product product) { + jdbcTemplate.update(UPDATE_PRODUCT_SQL, + product.getProductName(), + product.getProductDescription(), + product.getListPrice(), + product.getUnitCost(), + product.getProductId()); + } + + @Override + public void deleteProduct(int id) { + jdbcTemplate.update(DELETE_PRODUCT_SQL, id); + + } + + + +} + + + diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/exception/NotFoundException.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/exception/NotFoundException.java new file mode 100644 index 000000000..23da521cb --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/exception/NotFoundException.java @@ -0,0 +1,7 @@ +package com.casestudy.productservice.exception; + +public class NotFoundException extends RuntimeException{ + public NotFoundException(String message) { + super(message); + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Inventory.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Inventory.java new file mode 100644 index 000000000..3e9e6ea63 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Inventory.java @@ -0,0 +1,48 @@ +package com.casestudy.productservice.model; + +import java.util.Objects; + +public class Inventory { + private int inventoryId; + private int productId; + private int quantity; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Inventory inventory = (Inventory) o; + return inventoryId == inventory.inventoryId && + productId == inventory.productId && + quantity == inventory.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(inventoryId, productId, quantity); + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Invoice.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Invoice.java new file mode 100644 index 000000000..f4883b007 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Invoice.java @@ -0,0 +1,49 @@ +package com.casestudy.productservice.model; + +import java.time.LocalDate; +import java.util.Objects; + +public class Invoice { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Invoice invoice = (Invoice) o; + return invoiceId == invoice.invoiceId && + customerId == invoice.customerId && + purchaseDate.equals(invoice.purchaseDate); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/InvoiceItem.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/InvoiceItem.java new file mode 100644 index 000000000..6133f2ad8 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/InvoiceItem.java @@ -0,0 +1,69 @@ +package com.casestudy.productservice.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class InvoiceItem { + private int invoiceItemId; + private int invoiceId; + private int inventoryId; + private int quantity; + private BigDecimal unitPrice; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceItem that = (InvoiceItem) o; + return invoiceItemId == that.invoiceItemId && + invoiceId == that.invoiceId && + inventoryId == that.inventoryId && + quantity == that.quantity && + unitPrice.equals(that.unitPrice); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceItemId, invoiceId, inventoryId, quantity, unitPrice); + } + + public int getInvoiceItemId() { + return invoiceItemId; + } + + public void setInvoiceItemId(int invoiceItemId) { + this.invoiceItemId = invoiceItemId; + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Product.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Product.java new file mode 100644 index 000000000..5adeb0da9 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/model/Product.java @@ -0,0 +1,78 @@ +package com.casestudy.productservice.model; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Objects; + +public class Product { + private int productId; + @NotEmpty(message = "product name missing") + private String productName; + @NotEmpty(message = "product name missing") + private String productDescription; + @NotNull(message = "price??") + private BigDecimal listPrice; + @NotNull(message = "cost??") + private BigDecimal unitCost; + + public Product() { + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public BigDecimal getListPrice() { + return listPrice; + } + + public void setListPrice(BigDecimal listPrice) { + this.listPrice = listPrice; + } + + public BigDecimal getUnitCost() { + return unitCost; + } + + public void setUnitCost(BigDecimal unitCost) { + this.unitCost = unitCost; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Product product = (Product) o; + return getProductId() == product.getProductId() && + getProductName().equals(product.getProductName()) && + getProductDescription().equals(product.getProductDescription()) && + getListPrice().equals(product.getListPrice()) && + getUnitCost().equals(product.getUnitCost()); + } + + @Override + public int hashCode() { + return Objects.hash(getProductId(), getProductName(), getProductDescription(), getListPrice(), getUnitCost()); + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/serviceLayer/ProductService.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/serviceLayer/ProductService.java new file mode 100644 index 000000000..86f87bdc4 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/serviceLayer/ProductService.java @@ -0,0 +1,53 @@ +package com.casestudy.productservice.serviceLayer; + +import com.casestudy.productservice.dao.ProductDao; +import com.casestudy.productservice.model.Product; +import com.casestudy.productservice.util.feign.InventoryServiceClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class ProductService { + ProductDao productDao; + + + @Autowired + InventoryServiceClient inventoryServiceClient; + + public ProductService(ProductDao productDao, + InventoryServiceClient inventoryServiceClient) { + this.productDao = productDao; + this.inventoryServiceClient = inventoryServiceClient; + + } + + @Transactional // must commit entire code block or nothing + public Product addProduct(Product product) { + return productDao.addProduct(product); + + } + + public Product getProductById(int id) { + return productDao.getProductById(id); + } + + public List getAllProducts() { + return productDao.getAllProducts(); + } + + @Transactional + public void updateProduct(Product product) { + productDao.updateProduct(product); + } + + @Transactional + public void deleteProduct(int id) { + inventoryServiceClient.deleteInventoryByProductId(id); + productDao.deleteProduct(id); + } + + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/util/feign/InventoryServiceClient.java b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/util/feign/InventoryServiceClient.java new file mode 100644 index 000000000..7d01bb7e5 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/casestudy/productservice/util/feign/InventoryServiceClient.java @@ -0,0 +1,13 @@ +package com.casestudy.productservice.util.feign; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@FeignClient("inventory-service") +public interface InventoryServiceClient { + + @RequestMapping(method = RequestMethod.DELETE,value = "/inventory/product/{id}") + public void deleteInventoryByProductId(@PathVariable int id); +} diff --git a/healthyliving-casestudy/product-service/src/main/resources/application.properties b/healthyliving-casestudy/product-service/src/main/resources/application.properties new file mode 100644 index 000000000..e69de29bb diff --git a/healthyliving-casestudy/product-service/src/main/resources/bootstrap.properties b/healthyliving-casestudy/product-service/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..3f6de7dc4 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=product-service +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/main/resources/product.sql b/healthyliving-casestudy/product-service/src/main/resources/product.sql new file mode 100644 index 000000000..f9f786400 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/resources/product.sql @@ -0,0 +1,23 @@ +create schema if not exists product; +use product; + +create table if not exists product + ( +product_id int(11) not null auto_increment primary key, +product_name varchar(50) not null, +product_description varchar(250) not null, +list_price decimal(7,2) not null, +unit_cost decimal(7,2) not null, +); + +create schema if not exists product_test; +use product_test; + +create table if not exists product + ( +product_id int(11) not null auto_increment primary key, +product_name varchar(50) not null, +product_description varchar(250) not null, +list_price decimal(7,2) not null, +unit_cost decimal(7,2) not null +); \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/ProductServiceApplicationTests.java b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/ProductServiceApplicationTests.java new file mode 100644 index 000000000..52c9acf3f --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/ProductServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.casestudy.productservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProductServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImplTest.java b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImplTest.java new file mode 100644 index 000000000..1e0aedb8c --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/dao/ProductDaoJdbcTemplateImplTest.java @@ -0,0 +1,91 @@ +package com.casestudy.productservice.dao; + +import com.casestudy.productservice.model.Product; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.math.BigDecimal; +import java.util.List; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProductDaoJdbcTemplateImplTest { + @Autowired + ProductDao productDao; + + @Before + public void setUp() throws Exception { + List products = productDao.getAllProducts(); + for (Product pro : products) { + productDao.deleteProduct(pro.getProductId()); + } + } + @Test + public void addGetDeleteProduct() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + + + product = productDao.addProduct(product); + + Product product1 = productDao.getProductById(product.getProductId()); + assertEquals(product1, product); + + productDao.deleteProduct(product.getProductId()); + product1 = productDao.getProductById(product.getProductId()); + //assertNull(console1); + } + + @Test + public void getAllProducts() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + product = productDao.addProduct(product); + + product = new Product(); + product.setProductName("Model2"); + product.setProductDescription("Manufacturer2"); + product.setListPrice(BigDecimal.valueOf(100.99)); + product.setUnitCost(BigDecimal.valueOf(50.99)); + product = productDao.addProduct(product); + + List pList = productDao.getAllProducts(); + assertEquals(2, pList.size()); + } + + + @Test + public void updateProduct() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + + product = productDao.addProduct(product); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer2"); + product.setListPrice(BigDecimal.valueOf(250.99)); + product.setUnitCost(BigDecimal.valueOf(20.99)); + + productDao.updateProduct(product); + + Product product1 = productDao.getProductById(product.getProductId()); + assertEquals(product1,product); + + } + + +} \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/serviceLayer/ProductServiceTest.java b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/serviceLayer/ProductServiceTest.java new file mode 100644 index 000000000..0aa913061 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/casestudy/productservice/serviceLayer/ProductServiceTest.java @@ -0,0 +1,81 @@ +package com.casestudy.productservice.serviceLayer; + +import com.casestudy.productservice.dao.ProductDao; +import com.casestudy.productservice.model.Product; +import com.casestudy.productservice.util.feign.InventoryServiceClient; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class ProductServiceTest { + @InjectMocks + ProductService service; + @Mock + ProductDao dao; + + @Mock + InventoryServiceClient inventoryClient; + + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testAddProduct() { + Product product1 = new Product(); + product1.setProductName("Books"); + product1.setProductDescription("Hard Cover"); + product1.setListPrice(BigDecimal.valueOf(120.50)); + product1.setUnitCost(BigDecimal.valueOf(20.50)); + when(dao.addProduct(product1)).thenReturn(product1); + product1 = service.addProduct(product1); + verify(dao, times(1)).addProduct(product1); + + } + + @Test + public void testGetAllProducts() { + List products = new ArrayList<>(); + when(dao.getAllProducts()).thenReturn(products); + List products1 = service.getAllProducts(); + verify(dao, times(1)).getAllProducts(); + } + + @Test + public void testGetProductById() { + Product product1 = new Product(); + when(dao.getProductById(1)).thenReturn(product1); + product1 = service.getProductById(1); + verify(dao, times(1)).getProductById(1); + } + + @Test + public void updateProduct() { + Product product1 = new Product(); + service.updateProduct(product1); + verify(dao, times(1)).updateProduct(product1); + } + + @Test + public void deleteProduct() { + service.deleteProduct(1); + verify(dao, times(1)).deleteProduct(1); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/test/resources/application.properties b/healthyliving-casestudy/product-service/src/test/resources/application.properties new file mode 100644 index 000000000..c3055b05c --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url: jdbc:mysql://localhost:3306/product_test?useSSL=false +spring.datasource.username: root +spring.datasource.password: eve123 +spring.datasource.driver-class-name: com.mysql.jdbc.Driver + From 00beb72bd1b037e8a1ea1f4055d0e385c04e9472 Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Thu, 24 Sep 2020 10:49:07 -0400 Subject: [PATCH 12/21] Finally ended up with jsp --- .../spring.jsp-loginpage/.gitignore | 562 ++++++++++++++++++ .../spring.jsp-loginpage/README-Sample.md | 74 +++ .../README-annotations.md | 171 ++++++ .../spring.jsp-loginpage/README.md | 13 + .../spring.jsp-loginpage/kill-8080.bat | 1 + .../spring.jsp-loginpage/kill-8080.sh | 1 + .../spring.jsp-loginpage/pom.xml | 75 +++ .../java/com/casestudy/MainApplication.java | 11 + .../src/main/java/com/casestudy/MyObject.java | 7 + .../com/casestudy/ServletInitializer.java | 13 + .../com/casestudy/config/MemberConfig.java | 24 + .../casestudy/config/WebSecurityConfig.java | 55 ++ .../casestudy/controller/EventController.java | 50 ++ .../controller/ProductController.java | 51 ++ .../controller/UserProfileController.java | 59 ++ .../main/java/com/casestudy/model/Event.java | 82 +++ .../main/java/com/casestudy/model/Item.java | 55 ++ .../main/java/com/casestudy/model/Member.java | 142 +++++ .../java/com/casestudy/model/Product.java | 85 +++ .../java/com/casestudy/model/UserProfile.java | 60 ++ .../com/casestudy/model/UserProfileRole.java | 44 ++ .../casestudy/repository/EventRepository.java | 9 + .../repository/MemberRepository.java | 11 + .../repository/ProductRepository.java | 10 + .../repository/UserProfileRepository.java | 8 + .../repository/UserProfileRoleRepository.java | 8 + .../com/casestudy/service/EventService.java | 56 ++ .../com/casestudy/service/ProductService.java | 62 ++ .../service/SecurityServiceImpl.java | 46 ++ .../casestudy/service/UserProfileService.java | 51 ++ .../com/casestudy/servlets/CartServlet.java | 89 +++ .../casestudy/servlets/ProductServlet.java | 32 + .../validator/UserProfileValidator.java | 42 ++ .../src/main/resources/application.properties | 11 + .../src/main/resources/validation.properties | 5 + .../src/main/webapp/WEB-INF/web.xml | 0 .../main/webapp/assets/images/Yoga_pose3.jpg | Bin 0 -> 6078 bytes .../assets/images/Yoga_pose_gallery.jpg | Bin 0 -> 62527 bytes .../main/webapp/assets/images/yoga_pose1.jpg | Bin 0 -> 6025 bytes .../main/webapp/assets/images/yoga_pose2.jpg | Bin 0 -> 3557 bytes .../src/main/webapp/cart.jsp | 47 ++ .../src/main/webapp/cart/index.jsp | 47 ++ .../src/main/webapp/echo.jsp | 44 ++ .../src/main/webapp/event.jsp | 0 .../src/main/webapp/footer.jsp | 4 + .../src/main/webapp/head_common.jsp | 11 + .../src/main/webapp/head_files.jsp | 10 + .../src/main/webapp/index.jsp | 2 + .../src/main/webapp/login.jsp | 35 ++ .../src/main/webapp/product.jsp | 33 + .../src/main/webapp/product/index.jsp | 33 + .../src/main/webapp/registration.jsp | 46 ++ .../src/main/webapp/resources/css/style.css | 43 ++ .../src/main/webapp/resources/query.jsp | 82 +++ .../resources/static/healthy-living.html | 13 + .../src/main/webapp/welcome.jsp | 30 + .../test/java/com/casestudy/MyObjectTest.java | 18 + 57 files changed, 2573 insertions(+) create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/.gitignore create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/README-Sample.md create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/README-annotations.md create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/README.md create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/kill-8080.bat create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/kill-8080.sh create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/pom.xml create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MyObject.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/ServletInitializer.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/MemberConfig.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/WebSecurityConfig.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/UserProfileController.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Item.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Member.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfile.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfileRole.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/MemberRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRoleRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/SecurityServiceImpl.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/UserProfileService.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/ProductServlet.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/validator/UserProfileValidator.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/validation.properties create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/WEB-INF/web.xml create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose3.jpg create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose_gallery.jpg create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/yoga_pose1.jpg create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/yoga_pose2.jpg create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart/index.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/echo.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/event.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_files.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/index.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product/index.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/registration.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/css/style.css create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/query.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/static/healthy-living.html create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/test/java/com/casestudy/MyObjectTest.java diff --git a/healthyliving-casestudy/spring.jsp-loginpage/.gitignore b/healthyliving-casestudy/spring.jsp-loginpage/.gitignore new file mode 100644 index 000000000..6161bf863 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/.gitignore @@ -0,0 +1,562 @@ + +# Created by https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio +# Edit at https://www.gitignore.io/?templates=eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +### Eclipse Patch ### +# Eclipse Core +.project + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Annotation Processing +.apt_generated + +.sts4-cache/ + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +target +target/ +target/* +*.iml +.idea +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/**/sonarlint/ + +# SonarQube Plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator/ + +### NetBeans ### +**/nbproject/private/ +**/nbproject/Makefile-*.mk +**/nbproject/Package-*.bash +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +### NotepadPP ### +# Notepad++ backups # + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# End of https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio diff --git a/healthyliving-casestudy/spring.jsp-loginpage/README-Sample.md b/healthyliving-casestudy/spring.jsp-loginpage/README-Sample.md new file mode 100644 index 000000000..a6e1dc3f7 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/README-Sample.md @@ -0,0 +1,74 @@ +# Project Title + +* **Objective** - To create a product... +* **Purpose** - To gain familiarity the following features... + + + + +## Instructions + + +### Testing Application via Postman + +* Ensure that the `start-class` tag in your `pom.xml` encapsulates `com.github.curriculeon.MyApplication` +* Open a command line and navigate to the project's root directory and run this command: + * `mvn spring-boot:run` +* Launch the [Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) app and enter the URI `http://localhost:8080/` and hit Send. +* If your application cannot run because something is occupying a port, use this command with the respective port number specified: + * **OSX and Linux** + * ``kill -kill `lsof -t -i tcp:8080` `` + * **Windows** + * _For use in command line_: + * `for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a` + * _For use in bat-file_: + * `for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a` + + + + +## How to Download + +#### Part 1 - Forking the Project +* To _fork_ the project, click the `Fork` button located at the top right of the project. + + +#### Part 2 - Navigating to _forked_ Repository +* Navigate to your github profile to find the _newly forked repository_. +* Copy the URL of the project to the clipboard. + +#### Part 3 - Cloning _forked_ repository +* Clone the repository from **your account** into the `~/dev` directory. + * if you do not have a `~/dev` directory, make one by executing the following command: + * `mkdir ~/dev` + * navigate to the `~/dev` directory by executing the following command: + * `cd ~/dev` + * clone the project by executing the following command: + * `git clone https://github.com/MYUSERNAME/NAMEOFPROJECT` + +#### Part 4 - Check Build +* Ensure that the tests run upon opening the project. + * You should see `Tests Failed: 99 of 99 tests` + + + + + + + +## How to Submit + +#### Part 1 - _Pushing_ local changes to remote repository +* from a _terminal_ navigate to the root directory of the _cloned_ project. +* from the root directory of the project, execute the following commands: + * add all changes + * `git add .` + * commit changes to be pushed + * `git commit -m 'I have added changes'` + * push changes to your repository + * `git push -u origin master` + +#### Part 2 - Submitting assignment +* from the browser, navigate to the _forked_ project from **your** github account. +* click the `Pull Requests` tab. +* select `New Pull Request` \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/README-annotations.md b/healthyliving-casestudy/spring.jsp-loginpage/README-annotations.md new file mode 100644 index 000000000..5bcd496a0 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/README-annotations.md @@ -0,0 +1,171 @@ +### About Spring Annotations + +#### `@Entity` +* Annotates class signature +* **Description:** + * Allows the persistence provider to recognize it as a persistence class. + * An object representative of a snap shot of data from a database. + * By default, maps this entity to a table whose name is the name of the annotated class. Can be rerouted via the `@Table` annotation + * Entities are said to be _fungible_, or _mutually interchangeable_. +* **Pre-requesites for use:** + * An interface cannot be an entity. + * An enum cannot be an entity. + * The class can be abstract or concrete. + * The class must define a no-arg constructor. + * Each `Entity` must be annotated with a respective `ID`. + + + + + + + + +
+ +#### `@Id` +* Annotates field declarations +* **Description:** + * Denotes the primary key for this `Entity`. + * Can be generated manually by application or by automatically by the persistence provider. +* **Pre-requisites for use:** + * Class must be annotated with `@Entity` + + + + + + + + + +
+ +#### `@GeneratedValue(strategy = GenerationType.ENUM_VALUE)` +* Annotates `Id` fields. +* **Description:** + * Specifies how the persistence provider will generate this value. + * `GenerationType.SEQUENCE` - specifies the use of database SQL sequence + * `GenerationType.IDENTITY` - uses a database identity column + * `GenerationType.TABLE` - instructs provider to store the sequence name and its current value in a table, increasing the value of each time a new instance of the entity is persisted. + * `GenerationType.AUTO` - default when nothing specified. Provider does generation of a key automatically. It will select an appropriate strategy for a particular database. +* **Pre-requesites for use:** + * Field must be annotated with `@Id`. + + + + + + + + + + + +
+ +#### `@Autowired` +* Annotates field declaration or method-parameters +* **Description** + * injects bean by type + * can be used alone. + * If is used alone, it will be wired by type + * If more than one bean of same type are declared in the container `@Autowired` does not know which beans to use for injection. +* **Pre-requesites for use:** + * Field-type must be annotated with some form of `@Component`. + + + + + + + +
+ +#### `@Component` +* Annotates class signature +* **Description** + * denotes that Spring framework will autodetect these classes for dependency injection when annotation-based configuration and classpath scanning is used. +* **Prerequisites for use:** + * none + + + + + + +
+ +#### `@Service` +* Annotates class signature +* **Description** + * specialized form of `@Component` + * responsible for performing service tasks + * in many case you use this annotation for best practice, but isn't _always_ necessary. +* **Prerequisites for use:** + * none + + + + +
+ +#### `@Controller` +* Annotates class signature +* **Description** + * specialized form of `@Component` + * indicates that a particular class serves the role of a controller + * acts as a stereotype for the annotated class, indicating its role + * dispatcher scans such annotated classes for mapped methods and detects @RequestMapping annotations +* **Pre-requesites for use:** + * none + + + + + + + + +
+ +#### `@RequestMapping` +* Annotates a method signature +* **Description** + * annotation maps HTTP requests to handler methods of MVC and REST controllers. +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + + + + + + + +
+ +#### `@PathVariable` +* Annotates a method parameter +* **Description** + * indicates that a method parameter should be bound to a URI template variable +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + + + + + + +
+ +#### `@RequestParam` +* Annotates a method parameter +* **Description** + * indicates that a method parameter should be bound to a web request parameter + * used to extract query parameters, form parameters +* **Pre-requesites for use** + * class must be a annotated with `@Controller` + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/README.md b/healthyliving-casestudy/spring.jsp-loginpage/README.md new file mode 100644 index 000000000..7d49f4bb0 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/README.md @@ -0,0 +1,13 @@ +# Spring Boot With JSP Integration and Login Page Project Template +* **Objective** - The purpose of this repository is to create a standard template to clone from when creating new spring boot projects. +* **Background** - [Amikoreh's repository](https://github.com/amikoreh/java-springboot-registration-login-1) was used as a reference to create this project. + +## How to use +* To use this project as template, _clone_ the project into your `~/dev` directory, +* Upon cloning reconfigure the remote by + 1. delete the `.git` folder associated with project. + 2. `git init` to create a new `.git` folder + 3. point the new `.git` folder to your new remote via `git remote set-url`. +* After reconfiguring remote, open the project in a text editor (VSCode, IntelliJ, SublimeText, Atom, etc.) +* Ensure that the `artifactId` of the project is changed from `spring-template-project` to a more appropriate project name. +* Click view the [`README-Sample.md`](./README-Sample.md) to view _how_ a `README` should be structured for a project. \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.bat b/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.bat new file mode 100644 index 000000000..583ffdfd6 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.bat @@ -0,0 +1 @@ +for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /pid %%a /f \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.sh b/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.sh new file mode 100644 index 000000000..2198716e0 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/kill-8080.sh @@ -0,0 +1 @@ +kill -kill `lsof -t -i tcp:8080` diff --git a/healthyliving-casestudy/spring.jsp-loginpage/pom.xml b/healthyliving-casestudy/spring.jsp-loginpage/pom.xml new file mode 100644 index 000000000..e58c5d923 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + SpringBootSampleWebApp + 0.0.1-SNAPSHOT + war + Curriculeon SpringBoot JSP Login Page + Demo project for Spring Boot With Login JSP View + + org.springframework.boot + spring-boot-starter-parent + 2.1.2.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + + + + com.h2database + h2 + runtime + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.data + spring-data-jpa + + + javax.servlet + jstl + + + + org.apache.tomcat.embed + tomcat-embed-jasper + + + + org.eclipse.jdt.core.compiler + ecj + 4.6.1 + + + junit + junit + 4.12 + test + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java new file mode 100644 index 000000000..cc810344d --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java @@ -0,0 +1,11 @@ +package com.casestudy; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MainApplication { + public static void main(String[] args) { + SpringApplication.run(MainApplication.class, args); + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MyObject.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MyObject.java new file mode 100644 index 000000000..862faa67a --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MyObject.java @@ -0,0 +1,7 @@ +package com.casestudy; + +public class MyObject implements Runnable { + public void run() { + // TODO + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/ServletInitializer.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/ServletInitializer.java new file mode 100644 index 000000000..302888e6d --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/ServletInitializer.java @@ -0,0 +1,13 @@ +package com.casestudy; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(MainApplication.class); + } + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/MemberConfig.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/MemberConfig.java new file mode 100644 index 000000000..1e2b95589 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/MemberConfig.java @@ -0,0 +1,24 @@ +package com.casestudy.config; + +import com.casestudy.model.Member; +import com.casestudy.repository.MemberRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.PostConstruct; +import java.util.Arrays; + +@Configuration +public class MemberConfig { + @Autowired + private MemberRepository repository; + + @PostConstruct + public void setup() { + repository.saveAll(Arrays.asList( + new Member(), + new Member(), + new Member(), + new Member())); + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/WebSecurityConfig.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/WebSecurityConfig.java new file mode 100644 index 000000000..adcc85bf6 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/WebSecurityConfig.java @@ -0,0 +1,55 @@ +package com.casestudy.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +@Configuration +@EnableWebSecurity +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + @Qualifier("userProfileService") + @Autowired + private UserDetailsService userDetailsService; + + @Bean + public BCryptPasswordEncoder bCryptPasswordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http + .authorizeRequests() + .antMatchers("/resources/**", "/registration").permitAll() + .anyRequest().authenticated() + .and() + .formLogin() + .loginPage("/login") + .permitAll() + .and() + .logout() + .permitAll(); + } + + @Override + @Bean + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + @Autowired + public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { + auth + .parentAuthenticationManager(authenticationManagerBean()) + .userDetailsService(userDetailsService) + .passwordEncoder(bCryptPasswordEncoder()); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java new file mode 100644 index 000000000..911837907 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java @@ -0,0 +1,50 @@ +package com.casestudy.controller; + +import com.casestudy.model.Event; +import com.casestudy.service.EventService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping(value="/events") +public class EventController { + + private EventService service; + + @Autowired + public EventController(EventService service) { + this.service = service; + } + + @PostMapping(value = "/") + public ResponseEntity create(Event eventToBeCreated) { + return new ResponseEntity<>(service.create(eventToBeCreated), HttpStatus.CREATED); + } + + @GetMapping(value = "/{id}") + public ResponseEntity readById(@PathVariable Long id) { + return new ResponseEntity<>(service.readById(id), HttpStatus.OK); + } + + @GetMapping(value = "/") + public ResponseEntity> readAll() { + return new ResponseEntity<>(service.readAll(), HttpStatus.OK); + } + + @PutMapping(value = "/{id}") + public ResponseEntity updateById( + @PathVariable Long id, + @RequestBody Event newData) { + return new ResponseEntity<>(service.updateById(id, newData), HttpStatus.OK); + } + + @DeleteMapping(value = "/{id}") + public ResponseEntity deleteById(@PathVariable Long id) { + return new ResponseEntity<>(service.deleteById(id), HttpStatus.OK); + } +} + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java new file mode 100644 index 000000000..fa8cf3cfa --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java @@ -0,0 +1,51 @@ +package com.casestudy.controller; + +import com.casestudy.model.Product; +import com.casestudy.service.ProductService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Controller +@RequestMapping(value = "/product") +public class ProductController { + + private ProductService service; + + @Autowired + public ProductController(ProductService service) { + this.service = service; + } + + @PostMapping(value = "/") + public ResponseEntity create(Product employeeToBeCreated) { + return new ResponseEntity<>(service.create(employeeToBeCreated), HttpStatus.CREATED); + } + + @GetMapping(value = "/{id}") + public ResponseEntity readById(@PathVariable Long id) { + return new ResponseEntity<>(service.readById("id"), HttpStatus.OK); + } + + @GetMapping(value = "/") + public ResponseEntity> readAll() { + return new ResponseEntity<>(service.readAll(), HttpStatus.OK); + } + + @PutMapping(value = "/{id}") + public ResponseEntity updateById( + @PathVariable Long id, + @RequestBody Product newData) { + return new ResponseEntity<>(service.updateById(id, newData), HttpStatus.OK); + } + + @DeleteMapping(value = "/{id}") + public ResponseEntity deleteById(@PathVariable Long id) { + return new ResponseEntity<>(service.deleteById(id), HttpStatus.OK); + } + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/UserProfileController.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/UserProfileController.java new file mode 100644 index 000000000..53ed8f2e0 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/UserProfileController.java @@ -0,0 +1,59 @@ +package com.casestudy.controller; + +import com.casestudy.model.UserProfile; +import com.casestudy.service.SecurityServiceImpl; +import com.casestudy.service.UserProfileService; +import com.casestudy.validator.UserProfileValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +@Controller +public class UserProfileController { + private UserProfileService userService; + private SecurityServiceImpl securityService; + private UserProfileValidator userValidator; + + @Autowired + public UserProfileController(UserProfileService userService, UserProfileValidator userValidator, SecurityServiceImpl securityService) { + this.userService = userService; + this.userValidator = userValidator; + this.securityService = securityService; + } + + @GetMapping(value = "/registration") + public String registration(Model model) { + model.addAttribute("userForm", new UserProfile()); + return "registration"; + } + + @PostMapping(value = "/registration") + public String registration(@ModelAttribute("userForm") UserProfile userForm, BindingResult bindingResult, Model model) { + userValidator.validate(userForm, bindingResult); + if (bindingResult.hasErrors()) { + return "registration"; + } + userService.save(userForm); + securityService.autologin(userForm.getUsername(), userForm.getPasswordConfirm()); + return "redirect:/welcome"; + } + + @GetMapping(value = "/login") + public String login(Model model, String error, String logout) { + if (error != null) { + model.addAttribute("error", "Your username and password are invalid."); + } + if (logout != null) { + model.addAttribute("message", "You have logged out successfully."); + } + + return "login"; + } + + @GetMapping(value = {"/", "/welcome"}) + public String welcome(Model model) { + return "welcome"; + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java new file mode 100644 index 000000000..cecd412c0 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java @@ -0,0 +1,82 @@ +package com.casestudy.model; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.persistence.*; +import java.util.Date; +import java.util.List; +import java.util.Objects; +@Entity +public class Event { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String location; + private String description; + private Date date; + @OneToMany + private List members; + + public Event() { + } + + public Event(Long id, String location, String description, + Date date, List members) { + this.id = id; + this.location = location; + this.description = description; + this.date = date; + this.members = members; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public List getMembers() { + return members; + } + + public void setMembers(List members) { + this.members = members; + } + + @Override + public String toString() { + try { + return new ObjectMapper().writeValueAsString(this); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Item.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Item.java new file mode 100644 index 000000000..cb7a6b7d2 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Item.java @@ -0,0 +1,55 @@ +package com.casestudy.model; + +import java.util.Objects; + +public class Item { + + private Product product; + private int quantity; + + public Item() { + } + + public Item(Product product, int quantity) { + this.product = product; + this.quantity = quantity; + } + + public Product getProduct() { + return product; + } + + public void setProduct(Product product) { + this.product = product; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "Item{" + + "product=" + product + + ", quantity=" + quantity + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Item item = (Item) o; + return getQuantity() == item.getQuantity() && + getProduct().equals(item.getProduct()); + } + + @Override + public int hashCode() { + return Objects.hash(getProduct(), getQuantity()); + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Member.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Member.java new file mode 100644 index 000000000..cd5d9cc82 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Member.java @@ -0,0 +1,142 @@ +package com.casestudy.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.time.LocalDate; + + +@Entity +public class Member { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long memberId; + + private String firstName; + private String lastName; + private String street; + private String city; + private String state; + private Long zip; + private String email; + private String phone; + private LocalDate memberSince; + + + public Member() { + } + + public Member(Long memberId, String firstName, String lastName, String street, + String city, String state, Long zip, String email, String phone, LocalDate memberSince) { + this.memberId = memberId; + this.firstName = firstName; + this.lastName = lastName; + this.street = street; + this.city = city; + this.state = state; + this.zip = zip; + this.email = email; + this.phone = phone; + this.memberSince = memberSince; + } + + public Long getMemberId() { + return memberId; + } + + + public void setMemberId(Long memberId) { + this.memberId = memberId; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public Long getZip() { + return zip; + } + + public void setZip(Long zip) { + this.zip = zip; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public LocalDate getMemberSince() { + return memberSince; + } + + public void setMemberSince(LocalDate memberSince) { + this.memberSince = memberSince; + } + + + + @Override + public String toString() { + return "Member{" + + "memberId=" + memberId + + ", firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", street='" + street + '\'' + + ", city='" + city + '\'' + + ", state='" + state + '\'' + + ", zip=" + zip + + ", email='" + email + '\'' + + ", phone='" + phone + '\'' + + ", memberSince=" + memberSince + + '}'; + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java new file mode 100644 index 000000000..7e2953127 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java @@ -0,0 +1,85 @@ +package com.casestudy.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.util.Objects; + +@Entity +public class Product { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private String id; + private String name; + private double price; + private String photo; + + public Product() { + } + + public Product(String id, String name, String photo, double price) { + this.id = id; + this.name = name; + this.price = price; + this.photo = photo; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Product)) return false; + Product product = (Product) o; + return Double.compare(product.getPrice(), getPrice()) == 0 && + Objects.equals(getId(), product.getId()) && + getName().equals(product.getName()) && + getPhoto().equals(product.getPhoto()); + } + + @Override + public int hashCode() { + return Objects.hash(getId(), getName(), getPrice(), getPhoto()); + } + + @Override + public String toString() { + return "Product{" + + "id='" + id + '\'' + + ", name='" + name + '\'' + + ", price=" + price + + ", photo='" + photo + '\'' + + '}'; + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfile.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfile.java new file mode 100644 index 000000000..2c7564c6e --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfile.java @@ -0,0 +1,60 @@ +package com.casestudy.model; + +import javax.persistence.*; +import java.util.List; + +@Entity +public class UserProfile { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String username; + private String password; + + @Transient // don't persist; not a column + private String passwordConfirm; + + @ManyToMany + //@ElementCollection + private List userRoles; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getPasswordConfirm() { + return passwordConfirm; + } + + public void setPasswordConfirm(String passwordConfirm) { + this.passwordConfirm = passwordConfirm; + } + + public List getUserRoles() { + return userRoles; + } + + public void setUserRoles(List userRoles) { + this.userRoles = userRoles; + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfileRole.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfileRole.java new file mode 100644 index 000000000..643a783b2 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/UserProfileRole.java @@ -0,0 +1,44 @@ +package com.casestudy.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import javax.persistence.*; +import java.util.List; + +@Entity +public class UserProfileRole { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String name; + + @JsonIgnore + @ManyToMany + @ElementCollection + private List users; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java new file mode 100644 index 000000000..88fcd69e8 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java @@ -0,0 +1,9 @@ +package com.casestudy.repository; + +import com.casestudy.model.Event; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface EventRepository extends CrudRepository { +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/MemberRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/MemberRepository.java new file mode 100644 index 000000000..2dbf4561a --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/MemberRepository.java @@ -0,0 +1,11 @@ +package com.casestudy.repository; + +import com.casestudy.model.Member; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface MemberRepository extends PagingAndSortingRepository { +} + + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java new file mode 100644 index 000000000..7aba57379 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java @@ -0,0 +1,10 @@ +package com.casestudy.repository; + +import com.casestudy.model.Product; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ProductRepository extends CrudRepository { +} + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRepository.java new file mode 100644 index 000000000..fa0da67d7 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRepository.java @@ -0,0 +1,8 @@ +package com.casestudy.repository; + +import com.casestudy.model.UserProfile; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserProfileRepository extends JpaRepository { + UserProfile findByUsername(String username); +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRoleRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRoleRepository.java new file mode 100644 index 000000000..a583b1196 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/UserProfileRoleRepository.java @@ -0,0 +1,8 @@ +package com.casestudy.repository; + + +import com.casestudy.model.UserProfileRole; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserProfileRoleRepository extends JpaRepository { +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java new file mode 100644 index 000000000..7be80c864 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java @@ -0,0 +1,56 @@ +package com.casestudy.service; + +import com.casestudy.model.Event; +import com.casestudy.repository.EventRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class EventService { + private EventRepository repository; + + @Autowired + public EventService(EventRepository repository) { + + this.repository = repository; + } + + public Event create(Event eventToBeCreated) { + Event persistedEvent = repository.save(eventToBeCreated); + return persistedEvent; + } + + public List readAll() { + Iterable eventIterable = repository.findAll(); + List eventList = new ArrayList<>(); + eventIterable.forEach(eventList::add); + return eventList; + } + + public Event readById(Long id) { + return repository.findById(id).get(); + } + + public Event updateById(Long id, Event updatedData) { + Event eventInDb = readById(id); + eventInDb.setLocation(updatedData.getLocation()); + eventInDb.setDescription(updatedData.getDescription()); + eventInDb.setDate(updatedData.getDate()); + eventInDb = repository.save(eventInDb); + return eventInDb; + } + + public Event deleteById(Long id) { + Event eventToBeDeleted = readById(id); + repository.delete(eventToBeDeleted); + return eventToBeDeleted; + } + + +} + + + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java new file mode 100644 index 000000000..9c70aa66f --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java @@ -0,0 +1,62 @@ +package com.casestudy.service; + +import com.casestudy.model.Product; +import com.casestudy.repository.ProductRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class ProductService { + + private ProductRepository repository; + + @Autowired + public ProductService(ProductRepository repository) { + this.repository = repository; + } + + public ProductService() { + + } + + + public Product create(Product productToBeCreated) { + Product persistedProduct = (Product) repository.save(productToBeCreated); + return persistedProduct; + } + + public List readAll() { + Iterable productIterable = repository.findAll(); + List productList = new ArrayList<>(); + productIterable.forEach(productList::add); + return productList; + } + + public Product readById(String id) { + return (Product) repository.findById(id).get(); + } + + public Product updateById(Long id, Product updatedData) { + Product productInDb = readById("id"); + productInDb.setName(updatedData.getName()); + productInDb.setPrice(updatedData.getPrice()); + productInDb.setPhoto(updatedData.getPhoto()); + productInDb = (Product) repository.save(productInDb); + return productInDb; + } + + public Product deleteById(Long id) { + Product productToBeDeleted = readById("id"); + repository.delete(productToBeDeleted); + return productToBeDeleted; + } + + public Product updateName(Long id, String productName) { + Product productInDatabase = readById("id"); + productInDatabase.setName(productName); + return updateById(id, productInDatabase); + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/SecurityServiceImpl.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/SecurityServiceImpl.java new file mode 100644 index 000000000..e9cf71cac --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/SecurityServiceImpl.java @@ -0,0 +1,46 @@ +package com.casestudy.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.stereotype.Service; + +@Service +public class SecurityServiceImpl { + private static final Logger logger = LoggerFactory.getLogger(SecurityServiceImpl.class); + private AuthenticationManager authenticationManager; + + private UserDetailsService userDetailsService; + + @Autowired + public SecurityServiceImpl(AuthenticationManager authenticationManager, UserDetailsService userDetailsService) { + this.authenticationManager = authenticationManager; + this.userDetailsService = userDetailsService; + } + + public String findLoggedInUsername() { + Object userDetails = SecurityContextHolder.getContext().getAuthentication().getDetails(); + if (userDetails instanceof UserDetails) { + return ((UserDetails) userDetails).getUsername(); + } + + return null; + } + + public void autologin(String username, String password) { + UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities()); + + authenticationManager.authenticate(usernamePasswordAuthenticationToken); + + if (usernamePasswordAuthenticationToken.isAuthenticated()) { + SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken); + logger.debug(String.format("Auto login %s successfully!", username)); + } + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/UserProfileService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/UserProfileService.java new file mode 100644 index 000000000..b1125343d --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/UserProfileService.java @@ -0,0 +1,51 @@ +package com.casestudy.service; + +import com.casestudy.model.UserProfile; +import com.casestudy.repository.UserProfileRepository; +import com.casestudy.repository.UserProfileRoleRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashSet; +import java.util.Set; + +@Service +public class UserProfileService implements UserDetailsService { + private UserProfileRepository userRepository; + private UserProfileRoleRepository roleRepository; + private BCryptPasswordEncoder bCryptPasswordEncoder; + + @Autowired + public UserProfileService(UserProfileRepository userRepository, UserProfileRoleRepository roleRepository, BCryptPasswordEncoder bCryptPasswordEncoder) { + this.userRepository = userRepository; + this.roleRepository = roleRepository; + this.bCryptPasswordEncoder = bCryptPasswordEncoder; + } + + @Override + @Transactional(readOnly = true) + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + UserProfile user = userRepository.findByUsername(username); + Set grantedAuthorities = new HashSet<>(); + user.getUserRoles().forEach(role -> grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()))); + return new User(user.getUsername(), user.getPassword(), grantedAuthorities); + } + + public void save(UserProfile user) { + user.setPassword(bCryptPasswordEncoder.encode(user.getPassword())); + user.setUserRoles(roleRepository.findAll()); + userRepository.save(user); + } + + public UserProfile findByUsername(String username) { + return userRepository.findByUsername(username); + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java new file mode 100644 index 000000000..397f65614 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java @@ -0,0 +1,89 @@ +package com.casestudy.servlets; + +import com.casestudy.model.Item; +import com.casestudy.service.ProductService; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +@WebServlet("/cart") +public class CartServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + public CartServlet() { + super(); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String action = request.getParameter("action"); + if (action == null) { + doGet_DisplayCart(request, response); + } else { + if (action.equalsIgnoreCase("buy")) { + doGet_Buy(request, response); + } else if (action.equalsIgnoreCase("remove")) { + doGet_Remove(request, response); + } + } + } + + protected void doGet_DisplayCart(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + request.getRequestDispatcher("cart/index.jsp").forward(request, response); + } + + protected void doGet_Remove(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + HttpSession session = request.getSession(); + List cart = (List) session.getAttribute("cart"); + int index = isExisting(request.getParameter("id"), cart); + cart.remove(index); + session.setAttribute("cart", cart); + response.sendRedirect("cart"); + } + + protected void doGet_Buy(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + ProductService productModel = new ProductService(); + HttpSession session = request.getSession(); + if (session.getAttribute("cart") == null) { + List cart = new ArrayList(); + cart.add(new Item(productModel.readById(request.getParameter("id")),1)); + session.setAttribute("cart", cart); + } else { + List cart = (List) session.getAttribute("cart"); + int index = isExisting(request.getParameter("id"), cart); + if (index == -1) { + cart.add(new Item(productModel.readById(request.getParameter("id")),1)); + } else { + int quantity = cart.get(index).getQuantity() + 1; + cart.get(index).setQuantity(quantity); + } + session.setAttribute("cart", cart); + } + response.sendRedirect("cart"); + } + + private int isExisting(String id, List cart) { + for (int i = 0; i < cart.size(); i++) { + if (cart.get(i).getProduct().getId().equalsIgnoreCase(id)) { + return i; + } + } + return -1; + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/ProductServlet.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/ProductServlet.java new file mode 100644 index 000000000..933889188 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/ProductServlet.java @@ -0,0 +1,32 @@ +package com.casestudy.servlets; + +import com.casestudy.model.Product; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet("/product") +public class ProductServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + public ProductServlet() { + super(); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + Product products = new Product(); + request.setAttribute("products", products.getName()); + request.getRequestDispatcher("product/index.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + } + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/validator/UserProfileValidator.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/validator/UserProfileValidator.java new file mode 100644 index 000000000..73595dc28 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/validator/UserProfileValidator.java @@ -0,0 +1,42 @@ +package com.casestudy.validator; + +import com.casestudy.model.UserProfile; +import com.casestudy.service.UserProfileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; +import org.springframework.validation.Validator; + +@Component +public class UserProfileValidator implements Validator { + @Autowired + private UserProfileService userService; + + @Override + public boolean supports(Class aClass) { + return UserProfile.class.equals(aClass); + } + + @Override + public void validate(Object o, Errors errors) { + UserProfile user = (UserProfile) o; + + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "NotEmpty"); + if (user.getUsername().length() < 6 || user.getUsername().length() > 32) { + errors.rejectValue("username", "Size.userForm.username"); + } + if (userService.findByUsername(user.getUsername()) != null) { + errors.rejectValue("username", "Duplicate.userForm.username"); + } + + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "NotEmpty"); + if (user.getPassword().length() < 8 || user.getPassword().length() > 32) { + errors.rejectValue("password", "Size.userForm.password"); + } + + if (!user.getPasswordConfirm().equals(user.getPassword())) { + errors.rejectValue("passwordConfirm", "Diff.userForm.passwordConfirm"); + } + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/application.properties b/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/application.properties new file mode 100644 index 000000000..1192058d2 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/application.properties @@ -0,0 +1,11 @@ +spring.mvc.view.prefix: / +spring.mvc.view.suffix: .jsp +spring.messages.basename=validation + +spring.datasource.username=root +spring.datasource.password=password +server.port=8080 +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console +#spring.mvc.view.prefix: /WEB-INF/jsp/ +#spring.mvc.view.suffix: .jsp \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/validation.properties b/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/validation.properties new file mode 100644 index 000000000..803a57966 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/resources/validation.properties @@ -0,0 +1,5 @@ +NotEmpty=This field is required. +Size.userForm.username=Username require between 6 and 32 characters. +Duplicate.userForm.username=This username is already in use. Please try another. +Size.userForm.password=Passwords require at least 8 characters. +Diff.userForm.passwordConfirm=These passwords do not match. \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/WEB-INF/web.xml b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000..e69de29bb diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose3.jpg b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..53b74cdc3a08fce43e18553a0ae9ee6308d44c56 GIT binary patch literal 6078 zcmYLs2RIvE)ORHI3>8~#BGfFk_oilo)GAWi+OuX+)ZU|Ji5Yt<)oScev_)G=shCC8 zNUa*L{@?fczH^^D&N=t~o_p`Py)&m64gBW;-CDlo8@R~XL zkV-{qWT0CZ`EHwM_AQe+`T9L8YyGsxZ!rbA9?$v@_}{SqPyc~mt3>FD{$YcF#H67A z(_X9Si5Yk#Z>V1*N0Bh{WqjI`@*W09C-5vbM^OrRwN546G-^G2|D9~M{#oN3V7h5zZ;YTKph1mRsSJ%}IO)n+-ES4E(Tthp&TZzV^RD zgP6xG&w!6I6H@_qP3l*f>m^@AyR7@a^dJiHCKT~1&rG~h`}oxZ_MwtM@?`AS2_ zh%|BQWyZZZ&J5&qk6&Ox^v|W^=OZ7sVIQ*N;2+nJwnfp#F(U8=mz}vV%=*PqAH`tbI0vBI@P=P1i+0vkNl8a&jf zlqQHKwVa>sy$dpyN-Sr}sr0rkD(KEs2X+UA8)QfgH6csm1H!)0^hX zXUB06+0tl%O%FDGk+v_H?wpOMH(N=D_*x}~m!%*)9MwU!-zjXEe>qt{2(tp`Wwgrk zfSH^?lAu|n)RX|D6RQkr#uV-N9Z(_FnBh38SbQ(_a|?K)aat$w>)C`=2=u(;sL4dR zc4cUguT$HSdNxl`jdpWLGcsZdd*N89z@xTP>#G_VnNIbVX{y&HyMQ1e1Y1tZw#Yz8 zLD)W9uWEaiN&-h3DEyy`CT_7>OEr^NgU7Ici2b5gd-*OpRNs$W8}DV@^EIU_z@Tbp z^=Z%*V0HSF_d?a^K6#hEn#O%bb2GJMa~&vsjCT}^E~Buv03&(7oZ7YB$nmM57~ZII zA=+fzPNKuj#$WLyS*BG}A=clJu+c@gyF7~Tn1l51uXxd>%PJmryFYu$9%rQ2wU5y< zGbm4Ij+nG6i8J3$Ph%6QE#wA###r$kr20-mS{W^J5WZeDW=W+>kDZ7Vt@Q0(!XE=` zh7s?3%UG=~)0tk8&WA!Yi?JpD4BhIytm6Dj24zExWFl{V6q|aVAjy+g;k`0dTae#g z+gPPgjIpdz*55)YW-W3QET+mB?|$teW>Ub`&3LB%F_4XNH*XZD_ea^LB;=Xm3JlSQ zY*Ea+)a_U^`V&v(wV;+}G35K_-ndFQwOgf5q*|*eQ`@_wu?oLBh5`pYt5ILn)F2?aKk{(qd&%Q7cu9-Thqf>VBtxnxTZ!JFlnT zN`8!-wiA@(z6D>-bDghU0Z3IRs>`slH&7=rwmd`}SRG+#sg5uoACU$)vMd!`$>^hI z8p936rxJ0PVSRMT*|?;H5u)g#^h7=CRVp6cd+ejQY;$#PhF2Bo6gG?x3EvFp?L}+1 zSXu2%1kG7ZS~ymvx|%y>zrn7z9T)pfr?7_Up1`+)Ev3`|kqPH&r4rojF1VNiJxAviy8Glf1tXGxH1@Z;&#u&RjbKc0R$J=)L2WhE} zl}))>&Od?myQH_m3U$iYX&i)gQTx%d{5Y{^(xw_>S`rLYw{6 zU?9ih$K^?5C8&ale>K9+)MLATKY}ID-kmk?4kRa`+VbfhkH=AmY-vdF!OPzYcqKnE z!zyg;TP2&{;jqp>1wCF-Lxrzx<0xeq2T-$HhMnTL2oFHNrkU_1P5(5EuWRYEpJ_7 zSj_QgQMr9R#YS%sRVE#3E~quidIM^ji0`5WCo*btm@@K^Q-Wj2IFi%T<;oKwf!a7E zWoryc&kz(@WEE#C4 z#S8sOPRY=g-Kx}NuVrukc82};L$zF57^7zDE1Ib*J@hS^V14Y-+fsWa@<*y;kH=O; zz?Jdl8i^$FT+p}mXM^dIRXK=Oe~gV2GKI3$M0y*x8;SFE3q`>{+8#UWJ7a{nM-Vq= zNDi|4*K(|DG{!2>Wn+4+RrS_uE$Lqjv*qU1v>nqoq2q?YNW0n6V5@k2Rqd!jJS(`W z%5>=w$BNH89rgrAuCppn0bgFl6^o4Qdw4d+md#qbXVJSMhICXq@8xChZueYTSXnwe zO#A+_=FkP_v*Icwco%7{l4(ac(U=mSbD;USrN1pd$MGO=V97@oF|8z`kKbr*sr1)* zX{sa)9kn<_6s9-#xb(Z%C$iS{h2o z=~mWV@bpZz6h3wN!18wK_-K8`<4E}OiuamHFd9wz>QaDAL{rO#+S5wr2Lsc3of zXF!wdNO@A2*%q@A+MTW*FsO}8=0iWh@i_0|jZlYrsN`1L0nqxE@46Aq-6P$ZGY3M> z`UU~Asi3zX)UrA_dk`Dot*&X$zxK{f^$)jgOWTK<_#0qBL|mMf*cjSIgbb(leHLnJ z(wGDKNj*zH#&qq9b)dN!(zFBU_>6RCu&-Aia&B_nBPG=&g=oXI$>Y&xa1w+m6becQ zl4YN~z5>`YdwpIZ?VT#%4>d384N}sysipPYivFGwAx|)#A?oU{zhwaBLz6uGKsV?; z5Q|S>Pe$(093x~^DF!A-YLd@r+e&D-yJoZJO@vMIf?AOZ2K#YpPQGG z>=;V%4~`sn4-JZ7T?rccvb*t8*HvZ5{R8qMccuP~$$yT-cfr)#x-~Qlvn3i&2;rcF z<^5Gi1_ZlSqiOXj`$Ke_gfo8`M9A4Bvu>=>O;9U;Yr-jPpg$pRuVzmia|N)7Sg2TT zG`a!=spb{1jOC4o!%PYW#Lbsvgjkycx|(>)D}!}km_b4>_ezJ~?&ug<@$c`S=St15 zzm#eCBRQW@dtUhhMyhP#ZpkY{Eg0Ck?8}DsPFN7rSoW@25Yt)q7U0AUbIajlsC+jl zXTKW0+)sRlL0V>abaO$!)&JoRc%e-}Z$(#fFK+55Dn;xyhZ&y_;oT$4u$ip_jx8$% zEF1G(_u-uzp&lP6s2`XRc~_4Rq%9ixLL+O?$ zw56bjk_S<#FJ$)~TEBgwe)}tI@%NP9fj8^-`~(rqQVj7Owa3&n(Q0>#j5)^hrXxs; zwVD;`n%)H3NgbuR7GYcEjr!Z=U8j1I(9>S9-dDFf?-Gm9qil0;vO^crmB~M!JmdE} ziU{f}+9mODJ6}ujV8HGgZha~@-QCO_@=y92mRh$qRX%1vt&^hg4q5wKC+py=-MwH! zx0Ck|kMnU?=K3f-@4kL+9HN!P?twa7+$M)OlZ4R5I|ofS-k#*R!_ZCd%hMh}U6nYi zn39Soqe{Ezxez|R>oNOA)~NEp$;zd!Rj(Pa79hF*?o~vks_^j12H(p2giqgP@Z3LL z3}NA_gMz66PZBw8q51DI#hy3gI+)u|P_K+w`c{EFfmZ->_WZS=h@^HOK3+W4fSJxP zaGU#U>gi)f*|iUg!A5fw{F(Ynqp~Jn;HQD}MF)>=*aYal=r|1_jNA15Iu{4$oB2B5 z$KgN6U2X_!oyPUOqrb^YK=JQQhH2&xFZGhG3r+98ZhdafY7MNXc}8dI+7c&dL#2`F3v7H#|@8J0gy~vjzQX zn7!dTQwqyg=xA|b4cwdhn)m_JWUY1Lw{ph%@yDS^W2J0GM%XLjXDWMI8{Qk&C$Tyb z00odKu+tn%Asta#*n9>T7)2tlQ@3gIjl5%emh4Z&2V}u!qrd83``LYNDEV7dzXaKv z?G*F9lS$){CO#b0xOftGhjFdwr$bw^d#!>){-2^J<786A%kN|ZYIVQwIGxM3Eb(8U zw@#K4J6zl$kJi^V^|8ymagcUHT$*oKvuq*J5vC$i<~!&b$NV zei&4AOv;JlK%g1)cc9?XzAY(EQZqtBfqqRQ^^N6Hk77vh&xT#DCy#XWu_vmpUZ_YW z6dZ8xWlenaS6$?Mdiovb+LXE<@<$W z+O}2S^@to6pgh1%b5iuL2I%FcP>Bhf1e1UKsjUAZp`g+uFw_%i$0O2Vn4Pi2K=RC_24~)4eJ8fCM zrv+9fL73g2C@!2n8I-YddMvD#<$^Nyjg%t> zh5YLW-)z@D%{XXy)PaZwtPklLE9r=KhY(GMO$4GN{ z{!O<)RP`N-(ZA&zMGuhT)_@3b{8UdX7W>a!;(P zCY|Yetg6Oe0cO5taeA@k?jRdd=j-srg(E7|QBl0{ihhPe(CFlPlC`W9hFHBT*A+bxyBV>cxUr?mdYC&>5%)}Vu-)0g-}=>v<n zYi-V0FMjt+VoMgU0A7Czk7=~i_@|mgj3>SR6TE05U3z=Dv@Mw*t7{vr)N-P;Ik0=# z+PUm-9JhDle071`mhXb~`cg(jUIES$?XX)9kCS?i|BinyV-svFH;MxsT>9K(3BLQ9 zr_8=$8t9D$59Ag46j!us_GG!Fo4L*hqYu8C48yxHvm4tey;Uor%(NQSSgkFDjRq|r&+M&zalr4BhQM*=Z$je4OtU%&iU@8RlHW0 zBx?R<)KqgWSd;evd`fl{mn_6tnEs_}>9;8zp88C+f3!OCN8iSo7(@6NFhcIH1A~NW zot0pui|Ks8#+_vZ%hVYxtqZ=gG9L0`x+f#kBQc|iYhZE@H-QTeF-{e`**)<^9tsFG zjT};3|LgszNHh;w-jmdm_X|FQ5Z_(?K0F*Q=&Qne63WFEUmP<2%sW93 z4$oylsS~}sKV>~N2%b!P%%P-mqmY*Ww@=M(s-+yUWBHkA)sqY4o^hm2X!o8SljEKPK&r(~ZQaxKq)EKopd5 z@yj=;%x|q_qoz{^_K@(cu$pwjg_)`H8y#d)bi-T+yHF01%c(IM%dvAr34f4LE?Q&+lsp=8pa>PtHemW81QzD}&b^Af}8XJEvRoEoGTl0Rbvp|?k> zz>)9(a<$tdrZJHiI1dpV29AYL#&GlUVwV3gk@1OW3Ux*vK&&=7iMDABuneOCtYP4x U(7@D!BWqzX+z>_{%B#8m0dEW@82|tP literal 0 HcmV?d00001 diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose_gallery.jpg b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/Yoga_pose_gallery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0e6a30843055b264760c34785ac50a57d63c4f0 GIT binary patch literal 62527 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 literal 0 HcmV?d00001 diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/yoga_pose2.jpg b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/assets/images/yoga_pose2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c52a4fa9e08140635b9536e29e0e00d6d6781aff GIT binary patch literal 3557 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 N$h&Y8g1mM#@qcm!Pmcfq literal 0 HcmV?d00001 diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart.jsp new file mode 100644 index 000000000..fd9a96c46 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart.jsp @@ -0,0 +1,47 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %> +<%--pageEncoding="ISO-8859-1" isELIgnored="false"--%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> + + + Cart Page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionIdNamePhotoPriceQuantitySub Total
+ Remove + ${item.product.id }${item.product.name } + product + ${item.product.price }${item.quantity }${item.product.price * item.quantity }
Total${total }
+
+Continue Shopping + + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart/index.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart/index.jsp new file mode 100644 index 000000000..fd9a96c46 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/cart/index.jsp @@ -0,0 +1,47 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %> +<%--pageEncoding="ISO-8859-1" isELIgnored="false"--%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> + + + Cart Page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionIdNamePhotoPriceQuantitySub Total
+ Remove + ${item.product.id }${item.product.name } + product + ${item.product.price }${item.quantity }${item.product.price * item.quantity }
Total${total }
+
+Continue Shopping + + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/echo.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/echo.jsp new file mode 100644 index 000000000..40e8e27e1 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/echo.jsp @@ -0,0 +1,44 @@ + + + <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> + <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + Welcome to Events + + + Echoing HTML Request Parameters + + +

Choose an event:

+
+ Zumba with Zombies + Meditation for mental peace + Surya Namaskar for the soul + +
+ +<% + String[] authors = request.getParameterValues("event"); + if (authors != null) { +%> +

You have selected event(s):

+
    + <% + for (int i = 0; i < authors.length; ++i) { + %> +
  • <%= authors[i] %>
  • + <% + } + %> +
+BACK +<% + } +%> + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/event.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/event.jsp new file mode 100644 index 000000000..e69de29bb diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp new file mode 100644 index 000000000..9cbb80181 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp new file mode 100644 index 000000000..196e10bcc --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_files.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_files.jsp new file mode 100644 index 000000000..5722c73f7 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_files.jsp @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/index.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/index.jsp new file mode 100644 index 000000000..4b0599e1c --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/index.jsp @@ -0,0 +1,2 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %> + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp new file mode 100644 index 000000000..374f6cecb --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp @@ -0,0 +1,35 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + Log in with your account + + + +
+
+
+ + + +
+
+
+ diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp new file mode 100644 index 000000000..574f17204 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp @@ -0,0 +1,33 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + Product Page + + + + + + + + + + + + + + + + + + + + +
IdNamePhotoPriceBuy
${product.id }${product.name } + + ${product.price } + Buy +
+ + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product/index.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product/index.jsp new file mode 100644 index 000000000..574f17204 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product/index.jsp @@ -0,0 +1,33 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + Product Page + + + + + + + + + + + + + + + + + + + + +
IdNamePhotoPriceBuy
${product.id }${product.name } + + ${product.price } + Buy +
+ + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/registration.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/registration.jsp new file mode 100644 index 000000000..a4e886276 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/registration.jsp @@ -0,0 +1,46 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + Create an account + + + +
+
+
+ + + +
+
+
+ diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/css/style.css b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/css/style.css new file mode 100644 index 000000000..c4ad61dc4 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/css/style.css @@ -0,0 +1,43 @@ +body { + font-family: 'Montserrat', "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 15px; + padding-top: 50px; + padding-bottom: 50px; + background-color: cornflowerblue; + color: lavender; +} +.form-heading { + text-align: center; + text-transform: uppercase; +} +.form-signin { + max-width: 360px; + padding: 15px; + margin: 0 auto; +} +.form-signin .form-control { + position: relative; + height: auto; + padding: 10px; + font-size: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.form-signin .form-control:focus { + z-index: 3; +} +.form-signin input, .form-signin button { + margin-top: 10px; +} +.form-signin .form-signin-heading, .form-signin .checkbox { + margin-bottom: 10px; +} +.form-signin .checkbox { + font-weight: normal; +} +.has-error { + color: #ff0000; + line-height: 1; + font-size: 14px; +} \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/query.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/query.jsp new file mode 100644 index 000000000..04b790d91 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/query.jsp @@ -0,0 +1,82 @@ +<%----%> +<%----%> +<%-- Products to Select --%> +<%----%> +<%----%> +<%--

Another E-healthy Living store

--%> +<%--

Choose Products(s):

--%> +<%--
--%> +<%-- Tan--%> +<%-- Ali--%> +<%-- Kumar--%> +<%-- Kumar--%> +<%-- Kumar--%> +<%-- --%> +<%--
--%> + +<%--<%--%> +<%-- String[] authors = request.getParameterValues("author");--%> +<%-- if (authors != null) {--%> +<%--%>--%> +<%--<%@ page import = "java.sql.*" %>--%> +<%--<%--%> +<%-- Connection conn = null; // <== Check!--%> +<%-- try {--%> +<%-- conn = DriverManager.getConnection(--%> +<%-- "jdbc:mysql://localhost:8888/ebookshop", "root", "password");--%> +<%-- } catch (SQLException throwables) {--%> +<%-- throwables.printStackTrace();--%> +<%-- }--%> +<%-- // Connection conn =--%> +<%-- // DriverManager.getConnection("jdbc:odbc:eshopODBC"); // Access--%> +<%-- Statement stmt = conn.createStatement();--%> + +<%-- String sqlStr = "SELECT * FROM books WHERE author IN (";--%> +<%-- sqlStr += "'" + authors[0] + "'"; // First author--%> +<%-- for (int i = 1; i < authors.length; ++i) {--%> +<%-- sqlStr += ", '" + authors[i] + "'"; // Subsequent authors need a leading commas--%> +<%-- }--%> +<%-- sqlStr += ") AND qty > 0 ORDER BY author ASC, title ASC";--%> + +<%-- // for debugging--%> +<%-- System.out.println("Query statement is " + sqlStr);--%> +<%-- ResultSet rset = stmt.executeQuery(sqlStr);--%> +<%--%>--%> +<%--
--%> +<%--
--%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- <%--%> +<%-- while (rset.next()) {--%> +<%-- int id = rset.getInt("id");--%> +<%-- %>--%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- <%--%> +<%-- }--%> +<%-- %>--%> +<%--
OrderAuthorTitlePriceQty
<%= rset.getString("author") %><%= rset.getString("title") %>$<%= rset.getInt("price") %><%= rset.getInt("qty") %>
--%> +<%--
--%> +<%-- --%> +<%-- --%> +<%--
--%> +<%--

Back

--%> +<%--<%--%> +<%-- rset.close();--%> +<%-- stmt.close();--%> +<%-- conn.close();--%> +<%-- }--%> +<%--%>--%> +<%----%> +<%----%> \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/static/healthy-living.html b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/static/healthy-living.html new file mode 100644 index 000000000..df7e8448e --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/resources/static/healthy-living.html @@ -0,0 +1,13 @@ + + + + diagrams.net + + + + +
+ + + \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp new file mode 100644 index 000000000..deb0586c8 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp @@ -0,0 +1,30 @@ +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + + Create an account + + + +
+
+
+ + +
+ +
+ +

Welcome ${pageContext.request.userPrincipal.name} | Logout

+

Would you like to attend a healthy living event?? | Attend

+

Would you like to browse our health products?? | View

+

Would you like to avail of our member Services?? | Avail

+
+ +
+
+
+ diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/test/java/com/casestudy/MyObjectTest.java b/healthyliving-casestudy/spring.jsp-loginpage/src/test/java/com/casestudy/MyObjectTest.java new file mode 100644 index 000000000..8ac279ec9 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/test/java/com/casestudy/MyObjectTest.java @@ -0,0 +1,18 @@ +package com.casestudy; + +import org.junit.Assert; +import org.junit.Test; + +public class MyObjectTest { + @Test + public void testRun() { // TODO + // Given + MyObject myObject = new MyObject(); + + // when + myObject.run(); + + //then + Assert.assertNotNull(myObject.toString()); + } +} From 28012485842eabe0aa222fc7643e4e1d44ca30df Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Thu, 24 Sep 2020 18:25:12 -0400 Subject: [PATCH 13/21] Complete MicroService Application --- casestudy-registration/.gitignore | 562 - casestudy-registration/README.md | 13 - casestudy-registration/kill-8080.sh | 1 - .../java/com/github/curriculeon/MyObject.java | 7 - .../curriculeon/config/WebSecurityConfig.java | 53 - .../controller/UserProfileController.java | 59 - .../github/curriculeon/model/UserProfile.java | 60 - .../curriculeon/model/UserProfileRole.java | 44 - .../repository/UserProfileRepository.java | 8 - .../repository/UserProfileRoleRepository.java | 8 - .../service/SecurityServiceImpl.java | 46 - .../service/UserProfileService.java | 51 - .../validator/UserProfileValidator.java | 42 - .../src/main/resources/application.properties | 6 - .../src/main/resources/validation.properties | 5 - .../src/main/webapp/footer.jsp | 4 - .../src/main/webapp/head_common.jsp | 11 - .../src/main/webapp/head_files.jsp | 10 - .../src/main/webapp/login.jsp | 35 - .../src/main/webapp/registration.jsp | 46 - .../src/main/webapp/resources/css/style.css | 43 - .../src/main/webapp/welcome.jsp | 28 - .../com/github/curriculeon/MyObjectTest.java | 18 - healthyliving-casestudy/admin-api/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../admin-api/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/admin-api/mvnw | 286 + healthyliving-casestudy/admin-api/mvnw.cmd | 161 + healthyliving-casestudy/admin-api/pom.xml | 100 + .../adminapi/AdminApiApplication.java | 17 + .../captstone2/adminapi/SecurityConfig.java | 92 + .../ControllerExceptionHandler.java | 75 + .../controller/CustomerController.java | 63 + .../controller/InventoryController.java | 70 + .../controller/InvoiceController.java | 89 + .../controller/LevelupController.java | 69 + .../controller/ProductController.java | 67 + .../adminapi/exception/NotFoundException.java | 8 + .../captstone2/adminapi/model/Customer.java | 99 + .../captstone2/adminapi/model/Inventory.java | 52 + .../captstone2/adminapi/model/Invoice.java | 49 + .../adminapi/model/InvoiceItem.java | 70 + .../captstone2/adminapi/model/Levelup.java | 77 + .../captstone2/adminapi/model/Product.java | 72 + .../adminapi/service/AdminService.java | 190 + .../adminapi/util/feign/CustomerClient.java | 30 + .../adminapi/util/feign/InventoryClient.java | 30 + .../adminapi/util/feign/InvoiceClient.java | 31 + .../adminapi/util/feign/LevelupClient.java | 30 + .../adminapi/util/feign/ProductClient.java | 30 + .../adminapi/viewModel/InvoiceViewModel.java | 69 + .../src/main/resources/application.properties | 1 + .../src/main/resources/bootstrap.properties | 2 + .../src/main/resources/securitySchema.sql | 34 + .../adminapi/AdminApiApplicationTests.java | 16 + .../adminapi/service/AdminServiceTest.java | 172 + .../CustomerServiceApplication.java | 18 + .../ControllerExceptionHandler.java | 76 + .../controller/CustomerController.java | 74 + .../customerservice/dao/CustomerDao.java | 20 + .../dao/CustomerDaoJdbcTemplateImple.java | 122 + .../exception/NotFoundException.java | 10 + .../customerservice/model/Customer.java | 106 + .../service/CustomerService.java | 44 + .../CustomerServiceApplicationTests.java | 16 + .../dao/CustomerDaoJdbcTemplateImpleTest.java | 68 + .../service/CustomerServiceTest.java | 72 + .../eureka-service-registry/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + .../eureka-service-registry/mvnw | 286 + .../eureka-service-registry/mvnw.cmd | 161 + .../eureka-service-registry/pom.xml | 60 + .../EurekaServiceRegistryApplication.java | 15 + .../src/main/resources/application.properties | 5 + ...EurekaServiceRegistryApplicationTests.java | 16 + .../EurekaServiceRegistryApplication.java | 15 + ...EurekaServiceRegistryApplicationTests.java | 16 + .../inventory-service/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + .../inventory-service/mvnw | 286 + .../inventory-service/mvnw.cmd | 161 + .../inventory-service/pom.xml | 106 + .../InventoryServiceApplication.java | 19 + .../ControllerExceptionHandler.java | 76 + .../InventoryServiceController.java | 80 + .../inventoryservice/dao/InventoryDao.java | 19 + .../dao/InventoryDaoJdbcTemplateImpl.java | 104 + .../exception/NotFoundException.java | 7 + .../inventoryservice/model/Inventory.java | 56 + .../service/InventoryService.java | 53 + .../util/feign/InvoiceServiceClient.java | 15 + .../src/main/resources/application.properties | 1 + .../src/main/resources/bootstrap.properties | 2 + .../InventoryApplicationTests.java | 16 + .../InventoryServiceApplicationTests.java | 16 + .../dao/InventoryDaoJdbcTemplateImplTest.java | 57 + .../service/InventoryServiceTest.java | 75 + .../src/test/resources/application.properties | 6 + .../invoice-service/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/invoice-service/mvnw | 286 + .../invoice-service/mvnw.cmd | 161 + .../invoice-service/pom.xml | 91 + .../InvoiceServiceApplication.java | 15 + .../cotroller/ControllerExceptionHandler.java | 75 + .../cotroller/InvoiceController.java | 90 + .../invoiceservice/dao/InvoiceDao.java | 20 + .../dao/InvoiceDaoJdbcTemplateImple.java | 111 + .../invoiceservice/dao/InvoiceItemDao.java | 24 + .../dao/InvoiceItemDaoJdbcTemplateImple.java | 135 + .../exception/NotFoundException.java | 10 + .../invoiceservice/model/Invoice.java | 49 + .../invoiceservice/model/InvoiceItem.java | 69 + .../service/InvoiceService.java | 126 + .../viewModel/InvoiceViewModel.java | 83 + .../src/main/resources/application.properties | 1 + .../src/main/resources/bootstrap.properties | 2 + .../InvoiceServiceApplicationTests.java | 16 + .../dao/InvoiceDaoJdbcTemplateImpleTest.java | 80 + .../InvoiceItemDaoJdbcTemplateImpleTest.java | 147 + .../service/InvoiceServiceTest.java | 245 + .../src/test/resources/application.properties | 4 + .../levelup-consumer/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/levelup-consumer/mvnw | 286 + .../levelup-consumer/mvnw.cmd | 161 + .../levelup-consumer/pom.xml | 88 + .../LevelupConsumerApplication.java | 47 + .../capstone2/levelupconsumer/Listener.java | 36 + .../levelupconsumer/model/Levelup.java | 79 + .../util/feign/LevelupClient.java | 15 + .../src/main/resources/application.properties | 2 + .../LevelupConsumerApplicationTests.java | 16 + .../levelup-service/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/levelup-service/mvnw | 286 + .../levelup-service/mvnw.cmd | 161 + .../levelup-service/pom.xml | 91 + .../LevelupServiceApplication.java | 15 + .../ControllerExceptionHandler.java | 75 + .../controller/LevelupController.java | 71 + .../levelupservice/dao/LevelupDao.java | 21 + .../dao/LevelupDaoJdbcTemplateImple.java | 112 + .../exception/NotFoundException.java | 10 + .../levelupservice/model/Levelup.java | 69 + .../service/LevelupService.java | 47 + .../src/main/resources/application.properties | 0 .../src/main/resources/bootstrap.properties | 2 + .../LevelupServiceApplicationTests.java | 16 + .../dao/LevelupDaoJdbcTemplateImpleTest.java | 75 + .../service/LevelupServiceTest.java | 75 + .../src/test/resources/application.properties | 4 + .../ProductServiceApplication.java | 19 + .../ControllerExceptionHandler.java | 76 + .../controller/ProductServiceController.java | 77 + .../productservice/dao/ProductDao.java | 23 + .../dao/ProductDaoJdbcTemplateImpl.java | 116 + .../exception/NotFoundException.java | 7 + .../productservice/model/Inventory.java | 48 + .../productservice/model/Invoice.java | 49 + .../productservice/model/InvoiceItem.java | 69 + .../productservice/model/Product.java | 78 + .../serviceLayer/ProductService.java | 53 + .../util/feign/InventoryServiceClient.java | 18 + .../ProductServiceApplicationTests.java | 16 + .../dao/ProductDaoJdbcTemplateImplTest.java | 91 + .../serviceLayer/ProductServiceTest.java | 85 + healthyliving-casestudy/retail-api/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../retail-api/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + healthyliving-casestudy/retail-api/mvnw | 286 + healthyliving-casestudy/retail-api/mvnw.cmd | 161 + healthyliving-casestudy/retail-api/pom.xml | 87 + .../retailapi/RetailApiApplication.java | 34 + .../retailapi/Service/RetailApiService.java | 281 + .../ControllerExcemptionHandler.java | 75 + .../controller/RetailApiController.java | 63 + .../exception/NotFoundException.java | 7 + .../capstone2/retailapi/model/Customer.java | 98 + .../capstone2/retailapi/model/Inventory.java | 48 + .../retailapi/model/InvoiceItem.java | 69 + .../capstone2/retailapi/model/Levelup.java | 77 + .../capstone2/retailapi/model/Product.java | 69 + .../retailapi/util/feign/CustomerClient.java | 15 + .../retailapi/util/feign/InventoryClient.java | 22 + .../retailapi/util/feign/InvoiceClient.java | 28 + .../retailapi/util/feign/LevelupClient.java | 15 + .../retailapi/util/feign/ProductClient.java | 17 + .../capstone2/retailapi/viewModel/Order.java | 73 + .../src/main/resources/application.properties | 1 + .../src/main/resources/bootstrap.properties | 2 + .../retailapi/RetailApiApplicationTests.java | 16 + .../Service/RetailApiServiceTest.java | 269 + .../spring-config-server/.gitignore | 31 + .../.mvn/wrapper/MavenWrapperDownloader.java | 114 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 48337 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 + .../spring-config-server/mvnw | 286 + .../spring-config-server/mvnw.cmd | 161 + .../spring-config-server/pom.xml | 56 + .../SpringConfigServerApplication.java | 15 + .../src/main/resources/application.properties | 3 + .../SpringConfigServerApplicationTests.java | 16 + .../java/com/casestudy/MainApplication.java | 2 + .../com/casestudy/config/ProductConfig.java | 26 + .../casestudy/controller/EventController.java | 96 +- .../controller/ProductController.java | 12 +- .../main/java/com/casestudy/model/Cart.java | 42 + .../main/java/com/casestudy/model/Event.java | 98 +- .../java/com/casestudy/model/Product.java | 71 +- .../casestudy/repository/CartRepository.java | 10 + .../casestudy/repository/EventRepository.java | 3 + .../repository/ProductRepository.java | 6 +- .../service/EventInterfaceService.java | 23 + .../com/casestudy/service/EventService.java | 51 +- .../service/ProductInterfaceService.java | 23 + .../com/casestudy/service/ProductService.java | 53 +- .../com/casestudy/servlets/CartServlet.java | 172 +- .../src/main/webapp/footer.jsp | 15 +- .../src/main/webapp/head_common.jsp | 4 +- .../src/main/webapp/home.jsp | 67 + .../src/main/webapp/login.jsp | 4 +- .../src/main/webapp/product.jsp | 15 +- .../src/main/webapp/welcome.jsp | 4 +- spring.reactEventApp/.gitignore | 561 + .../README-annotations.md | 0 .../README.md | 44 +- spring.reactEventApp/client/.gitignore | 23 + spring.reactEventApp/client/README.md | 68 + spring.reactEventApp/client/package-lock.json | 13706 ++++++++++++++++ spring.reactEventApp/client/package.json | 35 + .../client/public/favicon.ico | Bin 0 -> 3150 bytes spring.reactEventApp/client/public/index.html | 43 + .../client/public/logo192.png | Bin 0 -> 5347 bytes .../client/public/logo512.png | Bin 0 -> 9664 bytes .../client/public/manifest.json | 25 + spring.reactEventApp/client/public/robots.txt | 3 + spring.reactEventApp/client/src/App.css | 38 + spring.reactEventApp/client/src/App.js | 19 + spring.reactEventApp/client/src/App.test.js | 9 + .../src/components/event-form/event-form.css | 0 .../src/components/event-form/event-form.js | 74 + .../client/src/components/events/events.css | 0 .../client/src/components/events/events.js | 34 + spring.reactEventApp/client/src/index.css | 13 + spring.reactEventApp/client/src/index.js | 12 + spring.reactEventApp/client/src/logo.svg | 7 + .../client/src/serviceWorker.js | 141 + spring.reactEventApp/client/src/setupTests.js | 5 + spring.reactEventApp/client/yarn.lock | 11323 +++++++++++++ .../kill-8080.bat | 0 spring.reactEventApp/kill-8080.sh | 1 + .../pom.xml | 48 +- .../springreact-projecttemplate.gif | Bin 0 -> 2345980 bytes .../github/curriculeon/MainApplication.java | 6 +- .../config/ControllerInterceptor.java | 42 + .../github/curriculeon/config/MvcConfig.java | 20 + .../controllers/EventController.java | 43 + .../com/github/curriculeon/models/Event.java | 61 + .../repositories/EventRepository.java | 9 + .../curriculeon/services/EventService.java | 47 + .../github/curriculeon/utils/Jsonable.java | 10 + .../github/curriculeon/utils/Jsonifier.java | 14 + .../github/curriculeon/utils/Loggable.java | 16 + .../src/main/resources/application.properties | 15 + .../curriculeon/MyApplicationTests.java | 16 + .../controllers/EventControllerTest.java | 68 + .../github/curriculeon/models/EventTest.java | 23 + .../repositories/EventRepositoryTest.java | 7 + .../services/EventServiceTest.java | 75 + 282 files changed, 39726 insertions(+), 1484 deletions(-) delete mode 100644 casestudy-registration/.gitignore delete mode 100644 casestudy-registration/README.md delete mode 100644 casestudy-registration/kill-8080.sh delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java delete mode 100644 casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java delete mode 100644 casestudy-registration/src/main/resources/application.properties delete mode 100644 casestudy-registration/src/main/resources/validation.properties delete mode 100644 casestudy-registration/src/main/webapp/footer.jsp delete mode 100644 casestudy-registration/src/main/webapp/head_common.jsp delete mode 100644 casestudy-registration/src/main/webapp/head_files.jsp delete mode 100644 casestudy-registration/src/main/webapp/login.jsp delete mode 100644 casestudy-registration/src/main/webapp/registration.jsp delete mode 100644 casestudy-registration/src/main/webapp/resources/css/style.css delete mode 100644 casestudy-registration/src/main/webapp/welcome.jsp delete mode 100644 casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java create mode 100644 healthyliving-casestudy/admin-api/.gitignore create mode 100644 healthyliving-casestudy/admin-api/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/admin-api/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/admin-api/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/admin-api/mvnw create mode 100644 healthyliving-casestudy/admin-api/mvnw.cmd create mode 100644 healthyliving-casestudy/admin-api/pom.xml create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/AdminApiApplication.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/SecurityConfig.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/CustomerController.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InventoryController.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InvoiceController.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/LevelupController.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ProductController.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Customer.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Inventory.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Invoice.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/InvoiceItem.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Levelup.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Product.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/service/AdminService.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/CustomerClient.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InventoryClient.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InvoiceClient.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/LevelupClient.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/ProductClient.java create mode 100644 healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/viewModel/InvoiceViewModel.java create mode 100644 healthyliving-casestudy/admin-api/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/admin-api/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/admin-api/src/main/resources/securitySchema.sql create mode 100644 healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/AdminApiApplicationTests.java create mode 100644 healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/service/AdminServiceTest.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/CustomerServiceApplication.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/CustomerController.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDao.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImple.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/model/Customer.java create mode 100644 healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/service/CustomerService.java create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/CustomerServiceApplicationTests.java create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java create mode 100644 healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/service/CustomerServiceTest.java create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.gitignore create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/mvnw create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/mvnw.cmd create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/pom.xml create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java create mode 100644 healthyliving-casestudy/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java create mode 100644 healthyliving-casestudy/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java create mode 100644 healthyliving-casestudy/inventory-service/.gitignore create mode 100644 healthyliving-casestudy/inventory-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/inventory-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/inventory-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/inventory-service/mvnw create mode 100644 healthyliving-casestudy/inventory-service/mvnw.cmd create mode 100644 healthyliving-casestudy/inventory-service/pom.xml create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/InventoryServiceApplication.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/InventoryServiceController.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDao.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImpl.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/model/Inventory.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/service/InventoryService.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/util/feign/InvoiceServiceClient.java create mode 100644 healthyliving-casestudy/inventory-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/inventory-service/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryApplicationTests.java create mode 100644 healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryServiceApplicationTests.java create mode 100644 healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImplTest.java create mode 100644 healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/service/InventoryServiceTest.java create mode 100644 healthyliving-casestudy/inventory-service/src/test/resources/application.properties create mode 100644 healthyliving-casestudy/invoice-service/.gitignore create mode 100644 healthyliving-casestudy/invoice-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/invoice-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/invoice-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/invoice-service/mvnw create mode 100644 healthyliving-casestudy/invoice-service/mvnw.cmd create mode 100644 healthyliving-casestudy/invoice-service/pom.xml create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/InvoiceServiceApplication.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/InvoiceController.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDao.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImple.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDao.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImple.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/Invoice.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/InvoiceItem.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/service/InvoiceService.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/viewModel/InvoiceViewModel.java create mode 100644 healthyliving-casestudy/invoice-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/invoice-service/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/InvoiceServiceApplicationTests.java create mode 100644 healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImpleTest.java create mode 100644 healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImpleTest.java create mode 100644 healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/service/InvoiceServiceTest.java create mode 100644 healthyliving-casestudy/invoice-service/src/test/resources/application.properties create mode 100644 healthyliving-casestudy/levelup-consumer/.gitignore create mode 100644 healthyliving-casestudy/levelup-consumer/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/levelup-consumer/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/levelup-consumer/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/levelup-consumer/mvnw create mode 100644 healthyliving-casestudy/levelup-consumer/mvnw.cmd create mode 100644 healthyliving-casestudy/levelup-consumer/pom.xml create mode 100644 healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplication.java create mode 100644 healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/Listener.java create mode 100644 healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/model/Levelup.java create mode 100644 healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/util/feign/LevelupClient.java create mode 100644 healthyliving-casestudy/levelup-consumer/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/levelup-consumer/src/test/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplicationTests.java create mode 100644 healthyliving-casestudy/levelup-service/.gitignore create mode 100644 healthyliving-casestudy/levelup-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/levelup-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/levelup-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/levelup-service/mvnw create mode 100644 healthyliving-casestudy/levelup-service/mvnw.cmd create mode 100644 healthyliving-casestudy/levelup-service/pom.xml create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/LevelupServiceApplication.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/LevelupController.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDao.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImple.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/model/Levelup.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/service/LevelupService.java create mode 100644 healthyliving-casestudy/levelup-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/levelup-service/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/LevelupServiceApplicationTests.java create mode 100644 healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImpleTest.java create mode 100644 healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/service/LevelupServiceTest.java create mode 100644 healthyliving-casestudy/levelup-service/src/test/resources/application.properties create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/ProductServiceApplication.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ControllerExceptionHandler.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ProductServiceController.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDao.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImpl.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Inventory.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Invoice.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/InvoiceItem.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Product.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/serviceLayer/ProductService.java create mode 100644 healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/util/feign/InventoryServiceClient.java create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/ProductServiceApplicationTests.java create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImplTest.java create mode 100644 healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/serviceLayer/ProductServiceTest.java create mode 100644 healthyliving-casestudy/retail-api/.gitignore create mode 100644 healthyliving-casestudy/retail-api/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/retail-api/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/retail-api/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/retail-api/mvnw create mode 100644 healthyliving-casestudy/retail-api/mvnw.cmd create mode 100644 healthyliving-casestudy/retail-api/pom.xml create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/RetailApiApplication.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/Service/RetailApiService.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/ControllerExcemptionHandler.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/RetailApiController.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/exception/NotFoundException.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Customer.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Inventory.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/InvoiceItem.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Levelup.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Product.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/CustomerClient.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InventoryClient.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InvoiceClient.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/LevelupClient.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/ProductClient.java create mode 100644 healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/viewModel/Order.java create mode 100644 healthyliving-casestudy/retail-api/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/retail-api/src/main/resources/bootstrap.properties create mode 100644 healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/RetailApiApplicationTests.java create mode 100644 healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/Service/RetailApiServiceTest.java create mode 100644 healthyliving-casestudy/spring-config-server/.gitignore create mode 100644 healthyliving-casestudy/spring-config-server/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/spring-config-server/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/spring-config-server/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/spring-config-server/mvnw create mode 100644 healthyliving-casestudy/spring-config-server/mvnw.cmd create mode 100644 healthyliving-casestudy/spring-config-server/pom.xml create mode 100644 healthyliving-casestudy/spring-config-server/src/main/java/com/trilogyed/springconfigserver/SpringConfigServerApplication.java create mode 100644 healthyliving-casestudy/spring-config-server/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/spring-config-server/src/test/java/com/trilogyed/springconfigserver/SpringConfigServerApplicationTests.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/ProductConfig.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Cart.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/CartRepository.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventInterfaceService.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductInterfaceService.java create mode 100644 healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/home.jsp create mode 100644 spring.reactEventApp/.gitignore rename {casestudy-registration => spring.reactEventApp}/README-annotations.md (100%) rename casestudy-registration/README-Sample.md => spring.reactEventApp/README.md (55%) create mode 100644 spring.reactEventApp/client/.gitignore create mode 100644 spring.reactEventApp/client/README.md create mode 100644 spring.reactEventApp/client/package-lock.json create mode 100644 spring.reactEventApp/client/package.json create mode 100644 spring.reactEventApp/client/public/favicon.ico create mode 100644 spring.reactEventApp/client/public/index.html create mode 100644 spring.reactEventApp/client/public/logo192.png create mode 100644 spring.reactEventApp/client/public/logo512.png create mode 100644 spring.reactEventApp/client/public/manifest.json create mode 100644 spring.reactEventApp/client/public/robots.txt create mode 100644 spring.reactEventApp/client/src/App.css create mode 100644 spring.reactEventApp/client/src/App.js create mode 100644 spring.reactEventApp/client/src/App.test.js create mode 100644 spring.reactEventApp/client/src/components/event-form/event-form.css create mode 100644 spring.reactEventApp/client/src/components/event-form/event-form.js create mode 100644 spring.reactEventApp/client/src/components/events/events.css create mode 100644 spring.reactEventApp/client/src/components/events/events.js create mode 100644 spring.reactEventApp/client/src/index.css create mode 100644 spring.reactEventApp/client/src/index.js create mode 100644 spring.reactEventApp/client/src/logo.svg create mode 100644 spring.reactEventApp/client/src/serviceWorker.js create mode 100644 spring.reactEventApp/client/src/setupTests.js create mode 100644 spring.reactEventApp/client/yarn.lock rename {casestudy-registration => spring.reactEventApp}/kill-8080.bat (100%) create mode 100644 spring.reactEventApp/kill-8080.sh rename {casestudy-registration => spring.reactEventApp}/pom.xml (65%) create mode 100644 spring.reactEventApp/springreact-projecttemplate.gif rename {casestudy-registration => spring.reactEventApp}/src/main/java/com/github/curriculeon/MainApplication.java (65%) create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/config/ControllerInterceptor.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/config/MvcConfig.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/controllers/EventController.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/models/Event.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/repositories/EventRepository.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/services/EventService.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonable.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonifier.java create mode 100644 spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Loggable.java create mode 100644 spring.reactEventApp/src/main/resources/application.properties create mode 100644 spring.reactEventApp/src/test/java/com/github/curriculeon/MyApplicationTests.java create mode 100644 spring.reactEventApp/src/test/java/com/github/curriculeon/controllers/EventControllerTest.java create mode 100644 spring.reactEventApp/src/test/java/com/github/curriculeon/models/EventTest.java create mode 100644 spring.reactEventApp/src/test/java/com/github/curriculeon/repositories/EventRepositoryTest.java create mode 100644 spring.reactEventApp/src/test/java/com/github/curriculeon/services/EventServiceTest.java diff --git a/casestudy-registration/.gitignore b/casestudy-registration/.gitignore deleted file mode 100644 index 6161bf863..000000000 --- a/casestudy-registration/.gitignore +++ /dev/null @@ -1,562 +0,0 @@ - -# Created by https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio -# Edit at https://www.gitignore.io/?templates=eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio - -### Eclipse ### -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.settings/ -.loadpath -.recommenders - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# PyDev specific (Python IDE for Eclipse) -*.pydevproject - -# CDT-specific (C/C++ Development Tooling) -.cproject - -# CDT- autotools -.autotools - -# Java annotation processor (APT) -.factorypath - -# PDT-specific (PHP Development Tools) -.buildpath - -# sbteclipse plugin -.target - -# Tern plugin -.tern-project - -# TeXlipse plugin -.texlipse - -# STS (Spring Tool Suite) -.springBeans - -# Code Recommenders -.recommenders/ - -# Annotation Processing -.apt_generated/ - -# Scala IDE specific (Scala & Java development for Eclipse) -.cache-main -.scala_dependencies -.worksheet - -### Eclipse Patch ### -# Eclipse Core -.project - -# JDT-specific (Eclipse Java Development Tools) -.classpath - -# Annotation Processing -.apt_generated - -.sts4-cache/ - -### Intellij ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -target -target/ -target/* -*.iml -.idea -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake -cmake-build-*/ - -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - -# File-based project format -*.iws - -# IntelliJ -out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - -### Intellij Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - -# Sonarlint plugin -.idea/**/sonarlint/ - -# SonarQube Plugin -.idea/**/sonarIssues.xml - -# Markdown Navigator plugin -.idea/**/markdown-navigator.xml -.idea/**/markdown-navigator/ - -### NetBeans ### -**/nbproject/private/ -**/nbproject/Makefile-*.mk -**/nbproject/Package-*.bash -build/ -nbbuild/ -dist/ -nbdist/ -.nb-gradle/ - -### NotepadPP ### -# Notepad++ backups # - -### SublimeText ### -# Cache files for Sublime Text -*.tmlanguage.cache -*.tmPreferences.cache -*.stTheme.cache - -# Workspace files are user-specific -*.sublime-workspace - -# Project files should be checked into the repository, unless a significant -# proportion of contributors will probably not be using Sublime Text -# *.sublime-project - -# SFTP configuration file -sftp-config.json - -# Package control specific files -Package Control.last-run -Package Control.ca-list -Package Control.ca-bundle -Package Control.system-ca-bundle -Package Control.cache/ -Package Control.ca-certs/ -Package Control.merged-ca-bundle -Package Control.user-ca-bundle -oscrypto-ca-bundle.crt -bh_unicode_properties.cache - -# Sublime-github package stores a github token in this file -# https://packagecontrol.io/packages/sublime-github -GitHub.sublime-settings - -### VisualStudio ### -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# End of https://www.gitignore.io/api/eclipse,intellij,netbeans,notepadpp,sublimetext,visualstudio diff --git a/casestudy-registration/README.md b/casestudy-registration/README.md deleted file mode 100644 index 7d49f4bb0..000000000 --- a/casestudy-registration/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Spring Boot With JSP Integration and Login Page Project Template -* **Objective** - The purpose of this repository is to create a standard template to clone from when creating new spring boot projects. -* **Background** - [Amikoreh's repository](https://github.com/amikoreh/java-springboot-registration-login-1) was used as a reference to create this project. - -## How to use -* To use this project as template, _clone_ the project into your `~/dev` directory, -* Upon cloning reconfigure the remote by - 1. delete the `.git` folder associated with project. - 2. `git init` to create a new `.git` folder - 3. point the new `.git` folder to your new remote via `git remote set-url`. -* After reconfiguring remote, open the project in a text editor (VSCode, IntelliJ, SublimeText, Atom, etc.) -* Ensure that the `artifactId` of the project is changed from `spring-template-project` to a more appropriate project name. -* Click view the [`README-Sample.md`](./README-Sample.md) to view _how_ a `README` should be structured for a project. \ No newline at end of file diff --git a/casestudy-registration/kill-8080.sh b/casestudy-registration/kill-8080.sh deleted file mode 100644 index 2198716e0..000000000 --- a/casestudy-registration/kill-8080.sh +++ /dev/null @@ -1 +0,0 @@ -kill -kill `lsof -t -i tcp:8080` diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java b/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java deleted file mode 100644 index 2301f17e8..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/MyObject.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.curriculeon; - -public class MyObject implements Runnable { - public void run() { - // TODO - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java b/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java deleted file mode 100644 index 65f3c1402..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/config/WebSecurityConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.github.curriculeon.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; - -@Configuration -@EnableWebSecurity -public class WebSecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UserDetailsService userDetailsService; - - @Bean - public BCryptPasswordEncoder bCryptPasswordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .authorizeRequests() - .antMatchers("/resources/**", "/registration").permitAll() - .anyRequest().authenticated() - .and() - .formLogin() - .loginPage("/login") - .permitAll() - .and() - .logout() - .permitAll(); - } - - @Override - @Bean - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - - @Autowired - public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth - .parentAuthenticationManager(authenticationManagerBean()) - .userDetailsService(userDetailsService) - .passwordEncoder(bCryptPasswordEncoder()); - } -} \ No newline at end of file diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java b/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java deleted file mode 100644 index 3a5023f3c..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/controller/UserProfileController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.github.curriculeon.controller; - -import com.github.curriculeon.model.UserProfile; -import com.github.curriculeon.service.SecurityServiceImpl; -import com.github.curriculeon.service.UserProfileService; -import com.github.curriculeon.validator.UserProfileValidator; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -@Controller -public class UserProfileController { - private UserProfileService userService; - private SecurityServiceImpl securityService; - private UserProfileValidator userValidator; - - @Autowired - public UserProfileController(UserProfileService userService, UserProfileValidator userValidator, SecurityServiceImpl securityService) { - this.userService = userService; - this.userValidator = userValidator; - this.securityService = securityService; - } - - @GetMapping(value = "/registration") - public String registration(Model model) { - model.addAttribute("userForm", new UserProfile()); - return "registration"; - } - - @PostMapping(value = "/registration") - public String registration(@ModelAttribute("userForm") UserProfile userForm, BindingResult bindingResult, Model model) { - userValidator.validate(userForm, bindingResult); - if (bindingResult.hasErrors()) { - return "registration"; - } - userService.save(userForm); - securityService.autologin(userForm.getUsername(), userForm.getPasswordConfirm()); - return "redirect:/welcome"; - } - - @GetMapping(value = "/login") - public String login(Model model, String error, String logout) { - if (error != null) { - model.addAttribute("error", "Your username and password are invalid."); - } - if (logout != null) { - model.addAttribute("message", "You have logged out successfully."); - } - - return "login"; - } - - @GetMapping(value = {"/", "/welcome"}) - public String welcome(Model model) { - return "welcome"; - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java deleted file mode 100644 index 833c836c2..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfile.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.github.curriculeon.model; - -import javax.persistence.*; -import java.util.List; - -@Entity -public class UserProfile { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - private String username; - private String password; - - @Transient // don't persist; not a column - private String passwordConfirm; - - @ManyToMany - @ElementCollection - private List userRoles; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getPasswordConfirm() { - return passwordConfirm; - } - - public void setPasswordConfirm(String passwordConfirm) { - this.passwordConfirm = passwordConfirm; - } - - public List getUserRoles() { - return userRoles; - } - - public void setUserRoles(List userRoles) { - this.userRoles = userRoles; - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java b/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java deleted file mode 100644 index 2838c81d7..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/model/UserProfileRole.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.github.curriculeon.model; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import javax.persistence.*; -import java.util.List; - -@Entity -public class UserProfileRole { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - private String name; - - @JsonIgnore - @ManyToMany - @ElementCollection - private List users; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getUsers() { - return users; - } - - public void setUsers(List users) { - this.users = users; - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java deleted file mode 100644 index ae6bc3828..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.curriculeon.repository; - -import com.github.curriculeon.model.UserProfile; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface UserProfileRepository extends JpaRepository { - UserProfile findByUsername(String username); -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java b/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java deleted file mode 100644 index 552c67eb3..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/repository/UserProfileRoleRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.curriculeon.repository; - - -import com.github.curriculeon.model.UserProfileRole; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface UserProfileRoleRepository extends JpaRepository { -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java b/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java deleted file mode 100644 index fbe42fd48..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/service/SecurityServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.github.curriculeon.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.stereotype.Service; - -@Service -public class SecurityServiceImpl { - private static final Logger logger = LoggerFactory.getLogger(SecurityServiceImpl.class); - private AuthenticationManager authenticationManager; - - private UserDetailsService userDetailsService; - - @Autowired - public SecurityServiceImpl(AuthenticationManager authenticationManager, UserDetailsService userDetailsService) { - this.authenticationManager = authenticationManager; - this.userDetailsService = userDetailsService; - } - - public String findLoggedInUsername() { - Object userDetails = SecurityContextHolder.getContext().getAuthentication().getDetails(); - if (userDetails instanceof UserDetails) { - return ((UserDetails) userDetails).getUsername(); - } - - return null; - } - - public void autologin(String username, String password) { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); - UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities()); - - authenticationManager.authenticate(usernamePasswordAuthenticationToken); - - if (usernamePasswordAuthenticationToken.isAuthenticated()) { - SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken); - logger.debug(String.format("Auto login %s successfully!", username)); - } - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java b/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java deleted file mode 100644 index e278f01fa..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/service/UserProfileService.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.github.curriculeon.service; - -import com.github.curriculeon.model.UserProfile; -import com.github.curriculeon.repository.UserProfileRoleRepository; -import com.github.curriculeon.repository.UserProfileRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.User; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.HashSet; -import java.util.Set; - -@Service -public class UserProfileService implements UserDetailsService { - private UserProfileRepository userRepository; - private UserProfileRoleRepository roleRepository; - private BCryptPasswordEncoder bCryptPasswordEncoder; - - @Autowired - public UserProfileService(UserProfileRepository userRepository, UserProfileRoleRepository roleRepository, BCryptPasswordEncoder bCryptPasswordEncoder) { - this.userRepository = userRepository; - this.roleRepository = roleRepository; - this.bCryptPasswordEncoder = bCryptPasswordEncoder; - } - - @Override - @Transactional(readOnly = true) - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - UserProfile user = userRepository.findByUsername(username); - Set grantedAuthorities = new HashSet<>(); - user.getUserRoles().forEach(role -> grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()))); - return new User(user.getUsername(), user.getPassword(), grantedAuthorities); - } - - public void save(UserProfile user) { - user.setPassword(bCryptPasswordEncoder.encode(user.getPassword())); - user.setUserRoles(roleRepository.findAll()); - userRepository.save(user); - } - - public UserProfile findByUsername(String username) { - return userRepository.findByUsername(username); - } -} diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java b/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java deleted file mode 100644 index 50b95b417..000000000 --- a/casestudy-registration/src/main/java/com/github/curriculeon/validator/UserProfileValidator.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.github.curriculeon.validator; - -import com.github.curriculeon.model.UserProfile; -import com.github.curriculeon.service.UserProfileService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.validation.Errors; -import org.springframework.validation.ValidationUtils; -import org.springframework.validation.Validator; - -@Component -public class UserProfileValidator implements Validator { - @Autowired - private UserProfileService userService; - - @Override - public boolean supports(Class aClass) { - return UserProfile.class.equals(aClass); - } - - @Override - public void validate(Object o, Errors errors) { - UserProfile user = (UserProfile) o; - - ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "NotEmpty"); - if (user.getUsername().length() < 6 || user.getUsername().length() > 32) { - errors.rejectValue("username", "Size.userForm.username"); - } - if (userService.findByUsername(user.getUsername()) != null) { - errors.rejectValue("username", "Duplicate.userForm.username"); - } - - ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "NotEmpty"); - if (user.getPassword().length() < 8 || user.getPassword().length() > 32) { - errors.rejectValue("password", "Size.userForm.password"); - } - - if (!user.getPasswordConfirm().equals(user.getPassword())) { - errors.rejectValue("passwordConfirm", "Diff.userForm.passwordConfirm"); - } - } -} diff --git a/casestudy-registration/src/main/resources/application.properties b/casestudy-registration/src/main/resources/application.properties deleted file mode 100644 index 4415c4a08..000000000 --- a/casestudy-registration/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.mvc.view.prefix: / -spring.mvc.view.suffix: .jsp -spring.messages.basename=validation - -spring.datasource.username=root -spring.datasource.password=root \ No newline at end of file diff --git a/casestudy-registration/src/main/resources/validation.properties b/casestudy-registration/src/main/resources/validation.properties deleted file mode 100644 index 9309bdf06..000000000 --- a/casestudy-registration/src/main/resources/validation.properties +++ /dev/null @@ -1,5 +0,0 @@ -NotEmpty=This field is required. -Size.userForm.username=Username require between 6 and 32 characters. -Duplicate.userForm.username=Someone is already using this username. -Size.userForm.password=Passwords require at least 8 characters. -Diff.userForm.passwordConfirm=These passwords do not match. \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/footer.jsp b/casestudy-registration/src/main/webapp/footer.jsp deleted file mode 100644 index 9cbb80181..000000000 --- a/casestudy-registration/src/main/webapp/footer.jsp +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/head_common.jsp b/casestudy-registration/src/main/webapp/head_common.jsp deleted file mode 100644 index 196e10bcc..000000000 --- a/casestudy-registration/src/main/webapp/head_common.jsp +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/head_files.jsp b/casestudy-registration/src/main/webapp/head_files.jsp deleted file mode 100644 index 9c9626c3c..000000000 --- a/casestudy-registration/src/main/webapp/head_files.jsp +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/login.jsp b/casestudy-registration/src/main/webapp/login.jsp deleted file mode 100644 index ccce5f0c8..000000000 --- a/casestudy-registration/src/main/webapp/login.jsp +++ /dev/null @@ -1,35 +0,0 @@ -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> - - - - - - Log in with your account - - - -
-
-
- - - -
-
-
- diff --git a/casestudy-registration/src/main/webapp/registration.jsp b/casestudy-registration/src/main/webapp/registration.jsp deleted file mode 100644 index a4e886276..000000000 --- a/casestudy-registration/src/main/webapp/registration.jsp +++ /dev/null @@ -1,46 +0,0 @@ -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> - - - - - - Create an account - - - -
-
-
- - - -
-
-
- diff --git a/casestudy-registration/src/main/webapp/resources/css/style.css b/casestudy-registration/src/main/webapp/resources/css/style.css deleted file mode 100644 index aaf492b73..000000000 --- a/casestudy-registration/src/main/webapp/resources/css/style.css +++ /dev/null @@ -1,43 +0,0 @@ -body { - font-family: 'Montserrat', "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 15px; - padding-top: 50px; - padding-bottom: 50px; - background-color: #efefef; - color: #2b2b2b; -} -.form-heading { - text-align: center; - text-transform: uppercase; -} -.form-signin { - max-width: 360px; - padding: 15px; - margin: 0 auto; -} -.form-signin .form-control { - position: relative; - height: auto; - padding: 10px; - font-size: 15px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.form-signin .form-control:focus { - z-index: 3; -} -.form-signin input, .form-signin button { - margin-top: 10px; -} -.form-signin .form-signin-heading, .form-signin .checkbox { - margin-bottom: 10px; -} -.form-signin .checkbox { - font-weight: normal; -} -.has-error { - color: #ff0000; - line-height: 1; - font-size: 14px; -} \ No newline at end of file diff --git a/casestudy-registration/src/main/webapp/welcome.jsp b/casestudy-registration/src/main/webapp/welcome.jsp deleted file mode 100644 index 8284ea345..000000000 --- a/casestudy-registration/src/main/webapp/welcome.jsp +++ /dev/null @@ -1,28 +0,0 @@ -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - Create an account - - - -
-
-
- - -
- -
- -

Welcome ${pageContext.request.userPrincipal.name} | Logout

- -
- -
-
-
- diff --git a/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java b/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java deleted file mode 100644 index 2eac71dd4..000000000 --- a/casestudy-registration/src/test/java/com/github/curriculeon/MyObjectTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.github.curriculeon; - -import org.junit.Assert; -import org.junit.Test; - -public class MyObjectTest { - @Test - public void testRun() { // TODO - // Given - MyObject myObject = new MyObject(); - - // when - myObject.run(); - - //then - Assert.assertNotNull(myObject.toString()); - } -} diff --git a/healthyliving-casestudy/admin-api/.gitignore b/healthyliving-casestudy/admin-api/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/admin-api/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/admin-api/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/admin-api/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/admin-api/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/admin-api/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/admin-api/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/admin-api/mvnw.cmd b/healthyliving-casestudy/admin-api/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/admin-api/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/admin-api/pom.xml b/healthyliving-casestudy/admin-api/pom.xml new file mode 100644 index 000000000..fee0fde20 --- /dev/null +++ b/healthyliving-casestudy/admin-api/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company.captstone2 + admin-api + 0.0.1-SNAPSHOT + admin-api + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-cache + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-hateoas + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + org.springframework.cloud + spring-cloud-starter-feign + 1.4.7.RELEASE + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.security + spring-security-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/AdminApiApplication.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/AdminApiApplication.java new file mode 100644 index 000000000..0274988f1 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/AdminApiApplication.java @@ -0,0 +1,17 @@ +package com.company.captstone2.adminapi; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class AdminApiApplication { + + public static void main(String[] args) { + SpringApplication.run(AdminApiApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/SecurityConfig.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/SecurityConfig.java new file mode 100644 index 000000000..887e9d6d2 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/SecurityConfig.java @@ -0,0 +1,92 @@ +package com.company.captstone2.adminapi; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.csrf.CookieCsrfTokenRepository; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; + +import javax.sql.DataSource; + +@Configuration +@EnableWebSecurity +public class SecurityConfig extends WebSecurityConfigurerAdapter { + @Autowired + DataSource ds; + + @Autowired + public void configAuthentication(AuthenticationManagerBuilder authBuilder) throws Exception { + PasswordEncoder enc = new BCryptPasswordEncoder(); + + authBuilder.jdbcAuthentication() + .dataSource(ds) + .usersByUsernameQuery( + "select username,password,enabled from users where username = ?") + .authoritiesByUsernameQuery( + "select username,authority from authorities where username = ?") + .passwordEncoder(enc); + } + + public void configure(HttpSecurity httpSecurity) throws Exception { + httpSecurity.httpBasic(); + + httpSecurity.authorizeRequests() + // all employees can have access to get routes + .mvcMatchers(HttpMethod.GET, + "/customers/*","/customers", + "/levelup/*","/levelup", + "/invoices/*","/invoices", + "/inventory/*", "/inventory", + "/products/*", "/products" + ).hasAuthority("ROLE_EMPLOYEE") + // and update inventory + .mvcMatchers(HttpMethod.PUT, "/inventory/*").hasAuthority("ROLE_EMPLOYEE") + // all teamlead can have access to all update route (inventory is granted above) + .mvcMatchers(HttpMethod.PUT, + "/customers/*", + "/levelup/*", + "/invoices/*", + "/products/*" + ).hasAuthority("ROLE_TEAMLEAD") + // and create Customers + .mvcMatchers(HttpMethod.POST, "/customers").hasAuthority("ROLE_TEAMLEAD") + // all manager can have access to all create route (customer is granted above) + .mvcMatchers(HttpMethod.POST, + "/inventory", + "/levelup", + "/invoices", + "/products" + ).hasAuthority("ROLE_MANAGER") + // Delete requires admin level + .mvcMatchers(HttpMethod.DELETE, + "/customers/*", + "/levelup/*", + "/invoices/*", + "/inventory/*", + "/products/*" + ).hasAuthority("ROLE_ADMIN") + .anyRequest().permitAll(); + + httpSecurity + .logout() + .clearAuthentication(true) + .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) + .logoutSuccessUrl("/invoices") + .deleteCookies("JSESSIONID") + .deleteCookies("XSRF-TOKEN") + .invalidateHttpSession(true); + + httpSecurity + .csrf() + .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); + + } + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..686b1b662 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ControllerExceptionHandler.java @@ -0,0 +1,75 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@ControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity notFoundException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/CustomerController.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/CustomerController.java new file mode 100644 index 000000000..2f99110a6 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/CustomerController.java @@ -0,0 +1,63 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.model.Customer; +import com.company.captstone2.adminapi.service.AdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; +import java.util.List; +@RestController +@RefreshScope +@RequestMapping("/customers") +public class CustomerController { + + @Autowired + AdminService service; + + public CustomerController(AdminService service) { + this.service = service; + } + + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Customer addCustomer(@RequestBody Customer customer,Principal principal){ + return service.addCustomer(customer); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllCustomers(Principal principal) { + return service.getAllCustomers(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Customer getCustomerById(@PathVariable int id,Principal principal)throws NotFoundException { + Customer customer= service.getCustomerById(id); + if (customer==null){ + throw new NotFoundException("Customer not found, id: "+id); + } else { + return customer; + } + } + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateCustomer(@RequestBody Customer customer, @PathVariable int id,Principal principal) { + if (customer.getCustomerId()==id){ + service.updateCustomer(customer,id); + } else { + throw new NotFoundException("path id should match customer id: "+ customer.getCustomerId()); + } + } + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteCustomer(@PathVariable int id, Principal principal) { + service.deleteCustomer(id); + } + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InventoryController.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InventoryController.java new file mode 100644 index 000000000..4f4762f3c --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InventoryController.java @@ -0,0 +1,70 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.model.Inventory; +import com.company.captstone2.adminapi.service.AdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; +import java.util.List; +@RestController +@RefreshScope +@RequestMapping("/inventory") +public class InventoryController { + + @Autowired + AdminService service; + + public InventoryController(AdminService service) { + this.service = service; + } + + + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Inventory addInventory(@RequestBody Inventory inventory, Principal principal) { + return service.addInventory(inventory); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllInventory(Principal principal) { + return service.getAllInventory(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Inventory getInventoryById(@PathVariable int id,Principal principal) { + Inventory inventory = service.getInventoryById(id); + if (inventory == null) { + throw new NotFoundException("Inventory does not exist, id: " + id); + } else { + return inventory; + } + } + + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateInventory(@RequestBody Inventory inventory, @PathVariable int id,Principal principal) throws NotFoundException { + if (inventory.getInventoryId() == id) { + service.updateInventory(inventory,id); + } else { + throw new NotFoundException("path id should match customer id: " + inventory.getInventoryId()); + } + } + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInventory(@PathVariable int id,Principal principal) { + service.deleteInventory(id); + } + +// @DeleteMapping("/product/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// public void deleteInventoryByProductId(@PathVariable int id) { +// service.deleteInventoryByProductId(id); +// } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InvoiceController.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InvoiceController.java new file mode 100644 index 000000000..5cc978660 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/InvoiceController.java @@ -0,0 +1,89 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.service.AdminService; +import com.company.captstone2.adminapi.viewModel.InvoiceViewModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; +import java.util.List; + +@RestController +@RefreshScope +@RequestMapping("/invoices") +public class InvoiceController { + @Autowired + AdminService service; + + public InvoiceController(AdminService service) { + this.service = service; + } + + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public InvoiceViewModel addInvoice(@RequestBody InvoiceViewModel ivm,Principal principal){ + return service.addInvoice(ivm); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllInvoices(Principal principal) { + return service.getAllInvoices(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public InvoiceViewModel getInvoiceById(@PathVariable int id,Principal principal) { + InvoiceViewModel ivm= service.getInvoiceById(id); + if (ivm==null){ + throw new NotFoundException("Invoice not found, id: "+id); + } else { + return ivm; + } + } + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateInvoice(@RequestBody InvoiceViewModel ivm, @PathVariable int id,Principal principal) { + if (ivm.getInvoiceId()==id){ + service.updateInvoice(ivm,id); + } else { + throw new NotFoundException("path id should match ivm id: "+ ivm.getInvoiceId()); + } + } +// +// @DeleteMapping("/invoiceItem/invoice/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// public void deleteInvoiceItemByInvoiceId(@PathVariable int id) { +// service.deleteInvoiceItemByInvoiceId(id); +// } +// +// @DeleteMapping("/invoiceItem/inventory/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// public void deleteInvoiceItemByInventoryId(@PathVariable int id) { +// service.deleteInvoiceItemByInventoryId(id); +// } + + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInvoice(@PathVariable int id, Principal principal) { + service.deleteInvoice(id); + } + + +// @GetMapping("/invoiceitem/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// List getInvoiceItemByInvoiceId(@PathVariable int id){ +// return service. getInvoiceItemByInvoiceId(id); +// } + + +// @GetMapping("/customer/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// List getInvoiceByCustomerId(@PathVariable int id){ +// return service.getInvoiceByCustomerId(id); +// } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/LevelupController.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/LevelupController.java new file mode 100644 index 000000000..8dfc5b162 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/LevelupController.java @@ -0,0 +1,69 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.model.Levelup; +import com.company.captstone2.adminapi.service.AdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; +import java.util.List; +@RestController +@RefreshScope +@RequestMapping("/levelup") +public class LevelupController { + + @Autowired + AdminService service; + + public LevelupController(AdminService service) { + this.service = service; + } + + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Levelup addLevelup(@RequestBody Levelup levelup,Principal principal){ + return service.addLevelup(levelup); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllLevelups(Principal principal) { + return service.getAllLevelups(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Levelup getLevelupById(@PathVariable int id,Principal principal) { + Levelup levelup= service.getLevelupById(id); + if (levelup==null){ + throw new NotFoundException("Levelup not found, id: "+id); + } else { + return levelup; + } + } + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateLevelup(@RequestBody Levelup levelup, @PathVariable int id,Principal principal) { + if (levelup.getLevelupId()==id){ + service.updateLevelup(levelup,id); + } else { + throw new NotFoundException("path id should match levelup id: "+ levelup.getLevelupId()); + } + } + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteLevelup(@PathVariable int id, Principal principal) { + service.deleteLevelup(id); + } + +// @GetMapping("/customer/{id}") +// @ResponseStatus(value = HttpStatus.OK) +// public List getLevelupByCustomerId(@PathVariable int id) { +// return service.getLevelUpByCustomerId(id); +// } + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ProductController.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ProductController.java new file mode 100644 index 000000000..c812e7ba3 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/controller/ProductController.java @@ -0,0 +1,67 @@ +package com.company.captstone2.adminapi.controller; + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.model.Product; +import com.company.captstone2.adminapi.service.AdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; +import java.util.List; +@RestController +@RefreshScope +public class ProductController { + @Autowired + AdminService service; + + public ProductController(AdminService service) { + this.service = service; + } + + //@CachePut(key = "#result.getProductId()") + @RequestMapping(value = "/products", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public Product addProduct(@RequestBody Product product, Principal principal) { + return service.addProduct(product); + } + + @RequestMapping(value = "/products", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public List getAllProducts(Principal principal) { + return service.getAllProducts(); + } + + //@Cacheable + @RequestMapping(value = "/products/{id}", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public Product getProductById(@PathVariable int id,Principal principal) throws NotFoundException { + Product product= service.getProductById(id); + //return service.getProductById(id); + if (product==null){ + throw new NotFoundException("Product not found, id: "+id); + } else { + return product; + } + } + + // @CacheEvict(key = "#product.getProductId()") + @RequestMapping(value = "/products/{id}", method = RequestMethod.PUT) + @ResponseStatus(HttpStatus.OK) + public void updateProduct(@RequestBody Product product,@PathVariable int id,Principal principal) { + System.out.println("UPDATING Product = " + product.getProductId()); + if (id!=product.getProductId()){ + throw new NotFoundException("path id should match with id: "+id); + } else { + service.updateProduct(product,id); + } + } + + //@CacheEvict + @RequestMapping(value = "/products/{id}", method = RequestMethod.DELETE) + @ResponseStatus(HttpStatus.OK) + public void deleteProduct(@PathVariable int id,Principal principal) { + service.deleteProduct(id); + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/exception/NotFoundException.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/exception/NotFoundException.java new file mode 100644 index 000000000..db968af26 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/exception/NotFoundException.java @@ -0,0 +1,8 @@ +package com.company.captstone2.adminapi.exception; + +public class NotFoundException extends RuntimeException{ + public NotFoundException(String message) { + super(message); + } +} + diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Customer.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Customer.java new file mode 100644 index 000000000..82f729296 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Customer.java @@ -0,0 +1,99 @@ +package com.company.captstone2.adminapi.model; + +import java.util.Objects; + +public class Customer { + + private int customerId; + private String fistName; + private String lastName; + private String street; + private String city; + private String zip; + private String email; + private String phone; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Customer that = (Customer) o; + return customerId == that.customerId && + fistName.equals(that.fistName) && + lastName.equals(that.lastName) && + street.equals(that.street) && + city.equals(that.city) && + zip.equals(that.zip) && + email.equals(that.email) && + phone.equals(that.phone); + } + + @Override + public int hashCode() { + return Objects.hash(customerId, fistName, lastName, street, city, zip, email, phone); + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getFistName() { + return fistName; + } + + public void setFistName(String fistName) { + this.fistName = fistName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Inventory.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Inventory.java new file mode 100644 index 000000000..6a9ec6595 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Inventory.java @@ -0,0 +1,52 @@ +package com.company.captstone2.adminapi.model; + +import java.util.Objects; + +public class Inventory { + + private int inventoryId; + private int productId; + private int quantity; + + public Inventory() { + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Inventory inventory = (Inventory) o; + return getInventoryId() == inventory.getInventoryId() && + getProductId() == inventory.getProductId() && + getQuantity() == inventory.getQuantity(); + } + + @Override + public int hashCode() { + return Objects.hash(getInventoryId(), getProductId(), getQuantity()); + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Invoice.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Invoice.java new file mode 100644 index 000000000..f09f2ac52 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Invoice.java @@ -0,0 +1,49 @@ +package com.company.captstone2.adminapi.model; + +import java.time.LocalDate; +import java.util.Objects; + +public class Invoice { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Invoice invoice = (Invoice) o; + return invoiceId == invoice.invoiceId && + customerId == invoice.customerId && + purchaseDate.equals(invoice.purchaseDate); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/InvoiceItem.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/InvoiceItem.java new file mode 100644 index 000000000..3b620e7aa --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/InvoiceItem.java @@ -0,0 +1,70 @@ +package com.company.captstone2.adminapi.model; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Objects; + +public class InvoiceItem { + private int invoiceItemId; + private int invoiceId; + private int inventoryId; + private int quantity; + private BigDecimal unitPrice; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceItem that = (InvoiceItem) o; + return invoiceItemId == that.invoiceItemId && + invoiceId == that.invoiceId && + inventoryId == that.inventoryId && + quantity == that.quantity && + unitPrice.equals(that.unitPrice); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceItemId, invoiceId, inventoryId, quantity, unitPrice); + } + + public int getInvoiceItemId() { + return invoiceItemId; + } + + public void setInvoiceItemId(int invoiceItemId) { + this.invoiceItemId = invoiceItemId; + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Levelup.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Levelup.java new file mode 100644 index 000000000..74765c35c --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Levelup.java @@ -0,0 +1,77 @@ +package com.company.captstone2.adminapi.model; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import java.time.LocalDate; +import java.util.Objects; + +public class Levelup { + private int levelupId; + private int customerId; + private int point; + // generates "yyyy-MM-dd" output + @JsonSerialize(using = LocalDateSerializer.class) +// // handles "yyyy-MM-dd" input just fine (note: +// "yyyy-M-d" format will not work) +//// @JsonDeserialize(using = LocalDateDeserializer.class) + private LocalDate memberDate; // create memberdate when create customer + + @Override + public String toString() { + return "Levelup{" + + "levelupId=" + levelupId + + ", customerId=" + customerId + + ", point=" + point + + ", memberdate=" + memberDate + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Levelup levelup = (Levelup) o; + return levelupId == levelup.levelupId && + customerId == levelup.customerId && + point == levelup.point && + memberDate.equals(levelup.memberDate); + } + + @Override + public int hashCode() { + return Objects.hash(levelupId, customerId, point, memberDate); + } + + public int getLevelupId() { + return levelupId; + } + + public void setLevelupId(int levelupId) { + this.levelupId = levelupId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public int getPoint() { + return point; + } + + public void setPoint(int point) { + this.point = point; + } + + public LocalDate getMemberDate() { + return memberDate; + } + + public void setMemberDate(LocalDate memberDate) { + this.memberDate = memberDate; + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Product.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Product.java new file mode 100644 index 000000000..d73331664 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/model/Product.java @@ -0,0 +1,72 @@ +package com.company.captstone2.adminapi.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class Product { + private int productId; + private String productName; + private String productDescription; + private BigDecimal listPrice; + private BigDecimal unitCost; + + public Product() { + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public BigDecimal getListPrice() { + return listPrice; + } + + public void setListPrice(BigDecimal listPrice) { + this.listPrice = listPrice; + } + + public BigDecimal getUnitCost() { + return unitCost; + } + + public void setUnitCost(BigDecimal unitCost) { + this.unitCost = unitCost; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Product product = (Product) o; + return getProductId() == product.getProductId() && + getProductName().equals(product.getProductName()) && + getProductDescription().equals(product.getProductDescription()) && + getListPrice().equals(product.getListPrice()) && + getUnitCost().equals(product.getUnitCost()); + } + + @Override + public int hashCode() { + return Objects.hash(getProductId(), getProductName(), getProductDescription(), getListPrice(), getUnitCost()); + } +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/service/AdminService.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/service/AdminService.java new file mode 100644 index 000000000..9542c6f7e --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/service/AdminService.java @@ -0,0 +1,190 @@ +package com.company.captstone2.adminapi.service; + + +import com.company.captstone2.adminapi.exception.NotFoundException; +import com.company.captstone2.adminapi.model.*; +import com.company.captstone2.adminapi.util.feign.*; +import com.company.captstone2.adminapi.viewModel.InvoiceViewModel; +import feign.FeignException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class AdminService { + + @Autowired + CustomerClient customerClient; + @Autowired + LevelupClient levelupClient; + @Autowired + InvoiceClient invoiceClient; + @Autowired + InventoryClient inventoryClient; + @Autowired + ProductClient productClient; + + public AdminService(CustomerClient customerClient, LevelupClient levelupClient, InvoiceClient invoiceClient, + InventoryClient inventoryClient, ProductClient productClient) { + this.customerClient = customerClient; + this.levelupClient = levelupClient; + this.invoiceClient = invoiceClient; + this.inventoryClient = inventoryClient; + this.productClient = productClient; + } + + //Customer CRUD + @Transactional + public Customer addCustomer(Customer customer) { + customer = customerClient.addCustomer(customer); + return customer; + } + + public List getAllCustomers() { + return customerClient.getAllCustomers(); + } + + public Customer getCustomerById(int id) { + Customer customer; + try { + customer = customerClient.getCustomerById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid customer id: " + id); + } + return customer; + } + + @Transactional + public void updateCustomer(Customer customer, int id) { + customerClient.updateCustomer(customer, id); + } + + public void deleteCustomer(int id) { + customerClient.deleteCustomer(id); + } + + //Levelup CRUD + + @Transactional + public Levelup addLevelup(Levelup levelup) { + levelup = levelupClient.addLevelup(levelup); + return levelup; + } + + public List getAllLevelups() { + return levelupClient.getAllLevelups(); + } + + public Levelup getLevelupById(int id) { + Levelup levelup; + try { + levelup = levelupClient.getLevelupById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid levelup id: " + id); + } + return levelup; + } + + @Transactional + public void updateLevelup(Levelup levelup, int id) { + levelupClient.updateLevelup(levelup, id); + } + + public void deleteLevelup(int id) { + levelupClient.deleteLevelup(id); + } + + //Invoice CRUD + @Transactional + public InvoiceViewModel addInvoice(InvoiceViewModel ivm) { + return invoiceClient.addInvoice(ivm); + } + + public List getAllInvoices() { + return invoiceClient.getAllInvoices(); + } + + public InvoiceViewModel getInvoiceById(int id) { + InvoiceViewModel ivm; + try { + ivm = invoiceClient.getInvoiceById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid invoice id: " + id); + } + return ivm; + } + @Transactional + public void updateInvoice(InvoiceViewModel ivm, int id) { + invoiceClient.updateInvoice(ivm, id); + } + + public void deleteInvoice(int id) { + invoiceClient.deleteInvoice(id); + } + + //Inventory CRUD + @Transactional + public Inventory addInventory( Inventory inventory){ + return inventoryClient.addInventory(inventory); + }; + + public List getAllInventory(){ + return inventoryClient.getAllInventory(); + }; + + public Inventory getInventoryById(int id){ + Inventory inventory; + try { + inventory = inventoryClient.getInventoryById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid inventory id: " + id); + } + return inventory; + }; + @Transactional + public void updateInventory( Inventory inventory, int id){ + inventoryClient.updateInventory(inventory,id); + }; + + public void deleteInventory( int id){ + inventoryClient.deleteInventory(id); + }; + + //Product CRUD + @Transactional + public Product addProduct( Product product){ + return productClient.addProduct(product); + }; + + public List getAllProducts(){ + return productClient.getAllProducts(); + }; + + public Product getProductById(int id){ + Product product; + try { + product = productClient.getProductById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid product id: " + id); + } + return product; + }; + @Transactional + public void updateProduct(Product product, int id){ + productClient.updateProduct(product,id); + }; + + public void deleteProduct(int id){ + productClient.deleteProduct(id); + }; + + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/CustomerClient.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/CustomerClient.java new file mode 100644 index 000000000..c5300432b --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/CustomerClient.java @@ -0,0 +1,30 @@ +package com.company.captstone2.adminapi.util.feign; + + +import com.company.captstone2.adminapi.model.Customer; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@FeignClient(name="customer-service") +public interface CustomerClient { + + + @RequestMapping(value = "/customers",method = RequestMethod.POST) + public Customer addCustomer(@RequestBody Customer customer); + + @RequestMapping(value = "/customers",method = RequestMethod.GET) + public List getAllCustomers(); + + @RequestMapping(value = "/customers/{id}",method = RequestMethod.GET) + public Customer getCustomerById(@PathVariable int id); + + @RequestMapping(value = "/customers/{id}",method = RequestMethod.PUT) + public void updateCustomer(@RequestBody Customer customer, @PathVariable int id); + + @RequestMapping(value = "/customers/{id}",method = RequestMethod.DELETE) + public void deleteCustomer(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InventoryClient.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InventoryClient.java new file mode 100644 index 000000000..d5a18cbd2 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InventoryClient.java @@ -0,0 +1,30 @@ +package com.company.captstone2.adminapi.util.feign; + +import com.company.captstone2.adminapi.model.Inventory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="inventory-service") +public interface InventoryClient { + + @RequestMapping(value = "/inventory",method = RequestMethod.POST) + public Inventory addInventory(@RequestBody Inventory inventory); + + @RequestMapping(value = "/inventory",method = RequestMethod.GET) + public List getAllInventory(); + + @RequestMapping(value = "/inventory/{id}",method = RequestMethod.GET) + public Inventory getInventoryById(@PathVariable int id); + + @RequestMapping(value = "/inventory/{id}",method = RequestMethod.PUT) + public void updateInventory(@RequestBody Inventory inventory, @PathVariable int id); + + @RequestMapping(value = "/inventory/{id}",method = RequestMethod.DELETE) + public void deleteInventory(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InvoiceClient.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InvoiceClient.java new file mode 100644 index 000000000..df7e86e99 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/InvoiceClient.java @@ -0,0 +1,31 @@ +package com.company.captstone2.adminapi.util.feign; + +import com.company.captstone2.adminapi.model.Invoice; +import com.company.captstone2.adminapi.viewModel.InvoiceViewModel; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="invoice-service") +public interface InvoiceClient { + + @RequestMapping(value = "/invoices",method = RequestMethod.POST) + public InvoiceViewModel addInvoice(@RequestBody InvoiceViewModel invoice); + + @RequestMapping(value = "/invoices",method = RequestMethod.GET) + public List getAllInvoices(); + + @RequestMapping(value = "/invoices/{id}",method = RequestMethod.GET) + public InvoiceViewModel getInvoiceById(@PathVariable int id); + + @RequestMapping(value = "/invoices/{id}",method = RequestMethod.PUT) + public void updateInvoice(@RequestBody InvoiceViewModel invoice, @PathVariable int id); + + @RequestMapping(value = "/invoices/{id}",method = RequestMethod.DELETE) + public void deleteInvoice(@PathVariable int id); + +} \ No newline at end of file diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/LevelupClient.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/LevelupClient.java new file mode 100644 index 000000000..e13d70bba --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/LevelupClient.java @@ -0,0 +1,30 @@ +package com.company.captstone2.adminapi.util.feign; + +import com.company.captstone2.adminapi.model.Levelup; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="levelup-service") +public interface LevelupClient { + + @RequestMapping(value = "/levelup",method = RequestMethod.POST) + public Levelup addLevelup(@RequestBody Levelup levelup); + + @RequestMapping(value = "/levelup",method = RequestMethod.GET) + public List getAllLevelups(); + + @RequestMapping(value = "/levelup/{id}",method = RequestMethod.GET) + public Levelup getLevelupById(@PathVariable int id); + + @RequestMapping(value = "/levelup/{id}",method = RequestMethod.PUT) + public void updateLevelup(@RequestBody Levelup levelup, @PathVariable int id); + + @RequestMapping(value = "/levelup/{id}",method = RequestMethod.DELETE) + public void deleteLevelup(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/ProductClient.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/ProductClient.java new file mode 100644 index 000000000..c1d182e3a --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/util/feign/ProductClient.java @@ -0,0 +1,30 @@ +package com.company.captstone2.adminapi.util.feign; + +import com.company.captstone2.adminapi.model.Product; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="product-service") +public interface ProductClient { + + @RequestMapping(value = "/products",method = RequestMethod.POST) + public Product addProduct(@RequestBody Product product); + + @RequestMapping(value = "/products",method = RequestMethod.GET) + public List getAllProducts(); + + @RequestMapping(value = "/products/{id}",method = RequestMethod.GET) + public Product getProductById(@PathVariable int id); + + @RequestMapping(value = "/products/{id}",method = RequestMethod.PUT) + public void updateProduct(@RequestBody Product product, @PathVariable int id); + + @RequestMapping(value = "/products/{id}",method = RequestMethod.DELETE) + public void deleteProduct(@PathVariable int id); + +} \ No newline at end of file diff --git a/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/viewModel/InvoiceViewModel.java b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/viewModel/InvoiceViewModel.java new file mode 100644 index 000000000..1e58eda56 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/java/com/company/captstone2/adminapi/viewModel/InvoiceViewModel.java @@ -0,0 +1,69 @@ +package com.company.captstone2.adminapi.viewModel; + +import com.company.captstone2.adminapi.model.InvoiceItem; + +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + +public class InvoiceViewModel { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + // an order (invoice) has many items + private List invoiceItems; + // calculated point from the total order + //private int point; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceViewModel that = (InvoiceViewModel) o; + return invoiceId == that.invoiceId && + customerId == that.customerId && + // point == that.point && + purchaseDate.equals(that.purchaseDate) && + invoiceItems.equals(that.invoiceItems); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate, invoiceItems + // point + ); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } + + public List getInvoiceItems() { + return invoiceItems; + } + + public void setInvoiceItems(List invoiceItems) { + this.invoiceItems = invoiceItems; + } + +} diff --git a/healthyliving-casestudy/admin-api/src/main/resources/application.properties b/healthyliving-casestudy/admin-api/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/healthyliving-casestudy/admin-api/src/main/resources/bootstrap.properties b/healthyliving-casestudy/admin-api/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..1b15bb062 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=admin-api +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/admin-api/src/main/resources/securitySchema.sql b/healthyliving-casestudy/admin-api/src/main/resources/securitySchema.sql new file mode 100644 index 000000000..70bdefe9a --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/main/resources/securitySchema.sql @@ -0,0 +1,34 @@ +create schema if not exists spring_security; +use spring_security; + +create table if not exists users( + username varchar(50) not null primary key, + password varchar(100) not null, + enabled boolean not null +); + +create table if not exists authorities ( + username varchar(50) not null, + authority varchar(50) not null, + constraint fk_authorities_users foreign key(username) references users(username)); + create unique index ix_auth_username on authorities (username,authority +); + +insert into users (username, password, enabled) values ('employee', '$2a$10$KxTc8SYbIB/IaXCWz6NA4ug1pkAYM/e.P.0YQFGE3Ua4FZ6Qf842a', true); +insert into users (username, password, enabled) values ('teamlead', '$2a$10$QPnaeWBWz1BdDglni2CLzO2YMeifVXtQDPgUOVNETTcj8cEGwqiym', true); +insert into users (username, password, enabled) values ('manager', '$2a$10$Hc878CPLJ4hOtwyzt6V7..LHtzhcR3zqcXOAPseY9QGg05ZxcsTR6', true); +insert into users (username, password, enabled) values ('admin', '$2a$10$Hc878CPLJ4hOtwyzt6V7..LHtzhcR3zqcXOAPseY9QGg05ZxcsTR6', true); + +insert into authorities (username, authority) values ('employee', 'ROLE_EMPLOYEE'); +insert into authorities (username, authority) values ('teamlead', 'ROLE_EMPLOYEE'); +insert into authorities (username, authority) values ('manager', 'ROLE_EMPLOYEE'); +insert into authorities (username, authority) values ('admin', 'ROLE_EMPLOYEE'); + +insert into authorities (username, authority) values ('teamlead', 'ROLE_TEAMLEAD'); +insert into authorities (username, authority) values ('manager', 'ROLE_TEAMLEAD'); +insert into authorities (username, authority) values ('admin', 'ROLE_TEAMLEAD'); + +insert into authorities (username, authority) values ('manager', 'ROLE_MANAGER'); +insert into authorities (username, authority) values ('admin', 'ROLE_MANAGER'); + +insert into authorities (username, authority) values ('admin', 'ROLE_ADMIN'); diff --git a/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/AdminApiApplicationTests.java b/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/AdminApiApplicationTests.java new file mode 100644 index 000000000..f12134c74 --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/AdminApiApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.captstone2.adminapi; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class AdminApiApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/service/AdminServiceTest.java b/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/service/AdminServiceTest.java new file mode 100644 index 000000000..2abc573fa --- /dev/null +++ b/healthyliving-casestudy/admin-api/src/test/java/com/company/captstone2/adminapi/service/AdminServiceTest.java @@ -0,0 +1,172 @@ +package com.company.captstone2.adminapi.service; + +import com.company.captstone2.adminapi.model.*; +import com.company.captstone2.adminapi.util.feign.*; +import com.company.captstone2.adminapi.viewModel.InvoiceViewModel; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class AdminServiceTest { + @Mock + InvoiceClient invoiceClient; + @Mock + LevelupClient levelupClient; + @Mock + ProductClient productClient; + @Mock + CustomerClient customerClient; + @Mock + InventoryClient inventoryClient; + + @InjectMocks + AdminService service; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testCustomerCRUD(){ + Customer customer = new Customer(); + customer.setCustomerId(1); + List customers = new ArrayList<>(); + customers.add(customer); + // add + when(customerClient.addCustomer(customer)).thenReturn(customer); + customer = service.addCustomer(customer); + verify(customerClient,times(1)).addCustomer(any(Customer.class)); + // get all + when(customerClient.getAllCustomers()).thenReturn(customers); + customers = service.getAllCustomers(); + verify(customerClient,times(1)).getAllCustomers(); + // get by id + when(customerClient.getCustomerById(1)).thenReturn(customer); + customer = service.getCustomerById(1); + verify(customerClient,times(1)).getCustomerById(1); + // update + service.updateCustomer(customer,1); + verify(customerClient,times(1)).updateCustomer(customer,1); + // delete + service.deleteCustomer(1); + verify(customerClient,times(1)).deleteCustomer(1); + } + + @Test + public void testLevelupCRUD(){ + Levelup levelup = new Levelup(); + levelup.setLevelupId(1); + List levelups = new ArrayList<>(); + levelups.add(levelup); + // add + when(levelupClient.addLevelup(levelup)).thenReturn(levelup); + levelup = service.addLevelup(levelup); + verify(levelupClient,times(1)).addLevelup(any(Levelup.class)); + // get all + when(levelupClient.getAllLevelups()).thenReturn(levelups); + levelups = service.getAllLevelups(); + verify(levelupClient,times(1)).getAllLevelups(); + // get by id + when(levelupClient.getLevelupById(1)).thenReturn(levelup); + levelup = service.getLevelupById(1); + verify(levelupClient,times(1)).getLevelupById(1); + // update + service.updateLevelup(levelup,1); + verify(levelupClient,times(1)).updateLevelup(levelup,1); + // delete + service.deleteLevelup(1); + verify(levelupClient,times(1)).deleteLevelup(1); + } + + @Test + public void testInventoryCRUD(){ + Inventory inventory = new Inventory(); + inventory.setInventoryId(1); + List inventorys = new ArrayList<>(); + inventorys.add(inventory); + // add + when(inventoryClient.addInventory(inventory)).thenReturn(inventory); + inventory = service.addInventory(inventory); + verify(inventoryClient,times(1)).addInventory(any(Inventory.class)); + // get all + when(inventoryClient.getAllInventory()).thenReturn(inventorys); + inventorys = service.getAllInventory(); + verify(inventoryClient,times(1)).getAllInventory(); + // get by id + when(inventoryClient.getInventoryById(1)).thenReturn(inventory); + inventory = service.getInventoryById(1); + verify(inventoryClient,times(1)).getInventoryById(1); + // update + service.updateInventory(inventory,1); + verify(inventoryClient,times(1)).updateInventory(inventory,1); + // delete + service.deleteInventory(1); + verify(inventoryClient,times(1)).deleteInventory(1); + } + + @Test + public void testProductCRUD(){ + Product product = new Product(); + product.setProductId(1); + List products = new ArrayList<>(); + products.add(product); + // add + when(productClient.addProduct(product)).thenReturn(product); + product = service.addProduct(product); + verify(productClient,times(1)).addProduct(any(Product.class)); + // get all + when(productClient.getAllProducts()).thenReturn(products); + products = service.getAllProducts(); + verify(productClient,times(1)).getAllProducts(); + // get by id + when(productClient.getProductById(1)).thenReturn(product); + product = service.getProductById(1); + verify(productClient,times(1)).getProductById(1); + // update + service.updateProduct(product,1); + verify(productClient,times(1)).updateProduct(product,1); + // delete + service.deleteProduct(1); + verify(productClient,times(1)).deleteProduct(1); + } + + @Test + public void testInvoiceCRUD(){ + InvoiceViewModel invoice = new InvoiceViewModel(); + invoice.setInvoiceId(1); + List invoices = new ArrayList<>(); + invoices.add(invoice); + // add + when(invoiceClient.addInvoice(invoice)).thenReturn(invoice); + invoice = service.addInvoice(invoice); + verify(invoiceClient,times(1)).addInvoice(any(InvoiceViewModel.class)); + // get all + when(invoiceClient.getAllInvoices()).thenReturn(invoices); + invoices = service.getAllInvoices(); + verify(invoiceClient,times(1)).getAllInvoices(); + // get by id + when(invoiceClient.getInvoiceById(1)).thenReturn(invoice); + invoice = service.getInvoiceById(1); + verify(invoiceClient,times(1)).getInvoiceById(1); + // update + service.updateInvoice(invoice,1); + verify(invoiceClient,times(1)).updateInvoice(invoice,1); + // delete + service.deleteInvoice(1); + verify(invoiceClient,times(1)).deleteInvoice(1); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/CustomerServiceApplication.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/CustomerServiceApplication.java new file mode 100644 index 000000000..254929d3f --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/CustomerServiceApplication.java @@ -0,0 +1,18 @@ +package com.company.capstone2.customerservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +//import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableCaching +public class CustomerServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(CustomerServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..bde77c6a9 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,76 @@ +package com.company.capstone2.customerservice.controller; + +import com.company.capstone2.customerservice.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; + +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/CustomerController.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/CustomerController.java new file mode 100644 index 000000000..bb5dd63d9 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/controller/CustomerController.java @@ -0,0 +1,74 @@ +package com.company.capstone2.customerservice.controller; + +import com.company.capstone2.customerservice.exception.NotFoundException; +import com.company.capstone2.customerservice.model.Customer; +import com.company.capstone2.customerservice.service.CustomerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RefreshScope +@CacheConfig(cacheNames = {"customers"}) +@RequestMapping("/customers") +public class CustomerController { + @Autowired + CustomerService service; + + public CustomerController(CustomerService service) { + this.service = service; + } + + @CachePut(key = "#result.getCustomerId()") + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Customer addCustomer(@RequestBody @Valid Customer customer){ + return service.addCustomer(customer); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllCustomers() { + return service.getAllCustomers(); + } + + @Cacheable + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Customer getCustomerById(@PathVariable int id)throws NotFoundException { + Customer customer= service.getCustomerById(id); + if (customer==null){ + throw new NotFoundException("Customer not found, id: "+id); + } else { + return customer; + } + } + + @CacheEvict(key = "#customer.getCustomerId()") + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateCustomer(@RequestBody Customer customer, @PathVariable int id) { + if (customer.getCustomerId()==id){ + service.updateCustomer(customer); + } else { + throw new NotFoundException("path id should match customer id: "+ customer.getCustomerId()); + } + } + + @CacheEvict + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteCustomer(@PathVariable int id) { + service.deleteCustomer(id); + } + + +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDao.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDao.java new file mode 100644 index 000000000..f162a7e37 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDao.java @@ -0,0 +1,20 @@ +package com.company.capstone2.customerservice.dao; + +import com.company.capstone2.customerservice.model.Customer; +import org.springframework.stereotype.Repository; + +import java.util.List; + + +public interface CustomerDao { + + Customer addCustomer(Customer customer); + + List getAllCustomers(); + + Customer getCustomerById(int id); + + void updateCustomer(Customer customer); + + void deleteCustomer(int id); +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImple.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImple.java new file mode 100644 index 000000000..b83cb5f54 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImple.java @@ -0,0 +1,122 @@ +package com.company.capstone2.customerservice.dao; + +import com.company.capstone2.customerservice.model.Customer; +import com.netflix.discovery.converters.Auto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Repository +public class CustomerDaoJdbcTemplateImple implements CustomerDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public CustomerDaoJdbcTemplateImple(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public Customer addCustomer(Customer customer) { + String sql = "insert into customer (" + + "first_name," + + "last_name," + + "street," + + "city," + + "zip," + + "email," + + "phone" + + ") values (?,?,?,?,?,?,?)"; + jdbcTemplate.update( + sql, + customer.getFistName(), + customer.getLastName(), + customer.getStreet(), + customer.getCity(), + customer.getZip(), + customer.getEmail(), + customer.getPhone() + ); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + customer.setCustomerId(id); + return customer; + } + + // helper method + private Customer mapTo(ResultSet rs, int rowNum) throws SQLException { + Customer customer = new Customer(); + customer.setCustomerId(rs.getInt("customer_id")); + customer.setFistName(rs.getString("first_name")); + customer.setLastName(rs.getString("last_name")); + customer.setStreet(rs.getString("street")); + customer.setCity(rs.getString("city")); + customer.setZip(rs.getString("zip")); + customer.setEmail(rs.getString("email")); + customer.setPhone(rs.getString("phone")); + return customer; + } + + @Override + public List getAllCustomers() { + String sql = "select * from customer"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public Customer getCustomerById(int id) { + String sql = "select * from customer where customer_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateCustomer(Customer customer) { + String sql = "update customer set " + + "first_name=?," + + "last_name=?," + + "street=?," + + "city=?," + + "zip=?," + + "email=?," + + "phone=?" + + "where customer_id=?"; + jdbcTemplate.update( + sql, + customer.getFistName(), + customer.getLastName(), + customer.getStreet(), + customer.getCity(), + customer.getZip(), + customer.getEmail(), + customer.getPhone(), + customer.getCustomerId() + ); + } + + @Override + public void deleteCustomer(int id) { + String sql = "delete from customer where customer_id=?"; + jdbcTemplate.update( + sql, + id + ); + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/exception/NotFoundException.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/exception/NotFoundException.java new file mode 100644 index 000000000..68ef5267b --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/exception/NotFoundException.java @@ -0,0 +1,10 @@ +package com.company.capstone2.customerservice.exception; + +public class NotFoundException extends RuntimeException { + public NotFoundException(String message) { + super(message); + } + + public NotFoundException() { + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/model/Customer.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/model/Customer.java new file mode 100644 index 000000000..44a234f23 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/model/Customer.java @@ -0,0 +1,106 @@ +package com.company.capstone2.customerservice.model; + +import javax.validation.constraints.NotEmpty; +import java.util.Objects; + +public class Customer { + private int customerId; + @NotEmpty(message = "first name??") + private String fistName; + @NotEmpty(message = "last name??") + private String lastName; + @NotEmpty(message = "street name??") + private String street; + @NotEmpty(message = "city name??") + private String city; + @NotEmpty(message = "zip code??") + private String zip; + @NotEmpty(message = "email??") + private String email; + @NotEmpty(message = "phone??") + private String phone; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Customer that = (Customer) o; + return customerId == that.customerId && + fistName.equals(that.fistName) && + lastName.equals(that.lastName) && + street.equals(that.street) && + city.equals(that.city) && + zip.equals(that.zip) && + email.equals(that.email) && + phone.equals(that.phone); + } + + @Override + public int hashCode() { + return Objects.hash(customerId, fistName, lastName, street, city, zip, email, phone); + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getFistName() { + return fistName; + } + + public void setFistName(String fistName) { + this.fistName = fistName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/service/CustomerService.java b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/service/CustomerService.java new file mode 100644 index 000000000..e1f42199f --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/main/java/com/company/capstone2/customerservice/service/CustomerService.java @@ -0,0 +1,44 @@ +package com.company.capstone2.customerservice.service; + + +import com.company.capstone2.customerservice.dao.CustomerDao; +import com.company.capstone2.customerservice.model.Customer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class CustomerService { + @Autowired + CustomerDao dao; + + public CustomerService(CustomerDao dao) { + this.dao = dao; + } + + @Transactional + public Customer addCustomer(Customer customer) { + customer = dao.addCustomer(customer); + return customer; + } + + public List getAllCustomers() { + return dao.getAllCustomers(); + } + + public Customer getCustomerById(int id) { + return dao.getCustomerById(id); + } + + @Transactional + public void updateCustomer(Customer customer) { + dao.updateCustomer(customer); + } + + public void deleteCustomer(int id) { + dao.deleteCustomer(id); + } + +} diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/CustomerServiceApplicationTests.java b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/CustomerServiceApplicationTests.java new file mode 100644 index 000000000..f23ab4a1e --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/CustomerServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.customerservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class CustomerServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java new file mode 100644 index 000000000..5ed088628 --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/dao/CustomerDaoJdbcTemplateImpleTest.java @@ -0,0 +1,68 @@ +package com.company.capstone2.customerservice.dao; + +import com.company.capstone2.customerservice.model.Customer; +//import com.netflix.discovery.converters.Auto; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class CustomerDaoJdbcTemplateImpleTest { + + @Autowired + CustomerDao dao; + + @Before + public void setUp() throws Exception { + // clear the data base + List customers = dao.getAllCustomers(); + customers.stream().forEach(customer -> dao.deleteCustomer(customer.getCustomerId())); + } + + @Test + public void testAddCustomerGetAllCustomersGetCustomerById() { + Customer customer1 = new Customer(); + customer1.setFistName("Simon"); + customer1.setLastName("Kwok"); + customer1.setStreet("Sesame Street"); + customer1.setCity("Forbidden City"); + customer1.setZip("00000"); + customer1.setEmail("test@test.com"); + customer1.setPhone("9009009009"); + // test add + customer1 = dao.addCustomer(customer1); + // test getAll + List customers = dao.getAllCustomers(); + assertEquals(customers.size(),1); + // test get by Id + Customer customer2 = dao.getCustomerById(customer1.getCustomerId()); + assertEquals(customer1,customer2); + } + + @Test + public void testUpdateCustomerDeleteCustomer() { + Customer customer1 = new Customer(); + customer1.setFistName("Simon"); + customer1.setLastName("Kwok"); + customer1.setStreet("Sesame Street"); + customer1.setCity("Forbidden City"); + customer1.setZip("00000"); + customer1.setEmail("test@test.com"); + customer1.setPhone("9009009009"); + // test add + customer1 = dao.addCustomer(customer1); + customer1.setCity("Open City"); + dao.updateCustomer(customer1); + assertEquals(dao.getCustomerById(customer1.getCustomerId()).getCity(),"Open City"); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/service/CustomerServiceTest.java b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/service/CustomerServiceTest.java new file mode 100644 index 000000000..2f1e5ebff --- /dev/null +++ b/healthyliving-casestudy/customer-service/src/test/java/com/company/capstone2/customerservice/service/CustomerServiceTest.java @@ -0,0 +1,72 @@ +package com.company.capstone2.customerservice.service; + +import com.company.capstone2.customerservice.dao.CustomerDao; +import com.company.capstone2.customerservice.model.Customer; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class CustomerServiceTest { + + @Mock + CustomerDao dao; + + @InjectMocks + CustomerService service; + + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void addCustomer() { + Customer customer1 = new Customer(); + when(dao.addCustomer(customer1)).thenReturn(customer1); + customer1 = service.addCustomer(customer1); + verify(dao, times(1)).addCustomer(customer1); + } + + @Test + public void getAllCustomers() { + List customers = new ArrayList<>(); + when(dao.getAllCustomers()).thenReturn(customers); + List customers1 = service.getAllCustomers(); + assertEquals(customers1.size(),0); + } + + @Test + public void getCustomerById() { + Customer customer1 = new Customer(); + when(dao.getCustomerById(1)).thenReturn(customer1); + customer1 = service.getCustomerById(1); + verify(dao, times(1)).getCustomerById(1); + } + + @Test + public void updateCustomer() { + Customer customer1 = new Customer(); + service.updateCustomer(customer1); + verify(dao,times(1)).updateCustomer(customer1); + } + + @Test + public void deleteCustomer() { + service.deleteCustomer(1); + verify(dao,times(1)).deleteCustomer(1); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.gitignore b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/mvnw.cmd b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/pom.xml b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/pom.xml new file mode 100644 index 000000000..79b3a53cc --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.6.RELEASE + + + com.trilogyed + eureka-service-registry + 0.0.1-SNAPSHOT + eureka-service-registry + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.cloud + spring-cloud-config-server + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java new file mode 100644 index 000000000..80fb84cff --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java @@ -0,0 +1,15 @@ +package com.trilogyed.eurekaserviceregistry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@SpringBootApplication +@EnableEurekaServer +public class EurekaServiceRegistryApplication { + + public static void main(String[] args) { + SpringApplication.run(EurekaServiceRegistryApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/resources/application.properties b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/resources/application.properties new file mode 100644 index 000000000..6aa77c1fd --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/main/resources/application.properties @@ -0,0 +1,5 @@ +server.port=8761 +eureka.instance.hostname=localhost +eureka.client.registerWithEureka=false +eureka.client.fetchRegistry=false +eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka diff --git a/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java new file mode 100644 index 000000000..3dde5e635 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java @@ -0,0 +1,16 @@ +package com.trilogyed.eurekaserviceregistry; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EurekaServiceRegistryApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java b/healthyliving-casestudy/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java new file mode 100644 index 000000000..80fb84cff --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/src/main/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplication.java @@ -0,0 +1,15 @@ +package com.trilogyed.eurekaserviceregistry; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@SpringBootApplication +@EnableEurekaServer +public class EurekaServiceRegistryApplication { + + public static void main(String[] args) { + SpringApplication.run(EurekaServiceRegistryApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java b/healthyliving-casestudy/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java new file mode 100644 index 000000000..3dde5e635 --- /dev/null +++ b/healthyliving-casestudy/eureka-service-registry/src/test/java/com/trilogyed/eurekaserviceregistry/EurekaServiceRegistryApplicationTests.java @@ -0,0 +1,16 @@ +package com.trilogyed.eurekaserviceregistry; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class EurekaServiceRegistryApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/inventory-service/.gitignore b/healthyliving-casestudy/inventory-service/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/inventory-service/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/inventory-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/inventory-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/inventory-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/inventory-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/inventory-service/mvnw.cmd b/healthyliving-casestudy/inventory-service/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/inventory-service/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/inventory-service/pom.xml b/healthyliving-casestudy/inventory-service/pom.xml new file mode 100644 index 000000000..34f01126e --- /dev/null +++ b/healthyliving-casestudy/inventory-service/pom.xml @@ -0,0 +1,106 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company.capstone2 + inventory-service + 0.0.1-SNAPSHOT + inventory-service + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.cloud + spring-cloud-starter-feign + 1.4.7.RELEASE + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-cache + + + org.javassist + javassist + 3.23.2-GA + + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/InventoryServiceApplication.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/InventoryServiceApplication.java new file mode 100644 index 000000000..8bef3a337 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/InventoryServiceApplication.java @@ -0,0 +1,19 @@ +package com.company.capstone2.inventoryservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +@EnableCaching +public class InventoryServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(InventoryServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..c776ed219 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,76 @@ +package com.company.capstone2.inventoryservice.controller; + + +import javassist.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity NotFoundException(com.company.capstone2.inventoryservice.exception.NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/InventoryServiceController.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/InventoryServiceController.java new file mode 100644 index 000000000..a1e02cf03 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/controller/InventoryServiceController.java @@ -0,0 +1,80 @@ +package com.company.capstone2.inventoryservice.controller; + +import com.company.capstone2.inventoryservice.exception.NotFoundException; +import com.company.capstone2.inventoryservice.model.Inventory; +import com.company.capstone2.inventoryservice.service.InventoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RefreshScope +@CacheConfig(cacheNames = {"inventory"}) +@RequestMapping("/inventory") +public class InventoryServiceController { + + @Autowired + InventoryService service; + + public InventoryServiceController(InventoryService service) { + this.service = service; + } + + @CachePut(key = "#result.getInventoryId()") + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Inventory addInventory(@RequestBody @Valid Inventory inventory) { + return service.addInventory(inventory); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllInventory() { + return service.getAllInventory(); + } + + @Cacheable + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Inventory getInventoryById(@PathVariable int id) { + Inventory inventory = service.getInventoryById(id); + if (inventory == null) { + throw new NotFoundException("Inventory does not exist, id: " + id); + } else { + return inventory; + } + } + + @CacheEvict(key = "#inventory.getInventoryId()") + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateInventory(@RequestBody @Valid Inventory inventory, @PathVariable int id) throws NotFoundException { + if (inventory.getInventoryId() == id) { + service.updateInventory(inventory); + } else { + throw new NotFoundException("path id should match customer id: " + inventory.getInventoryId()); + } + } + + @CacheEvict + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInventory(@PathVariable int id) { + service.deleteInventory(id); + } + + @DeleteMapping("/product/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInventoryByProductId(@PathVariable int id) { + service.deleteInventoryByProductId(id); + } +} + diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDao.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDao.java new file mode 100644 index 000000000..00acaaeec --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDao.java @@ -0,0 +1,19 @@ +package com.company.capstone2.inventoryservice.dao; + +import com.company.capstone2.inventoryservice.model.Inventory; + +import java.util.List; + +public interface InventoryDao { + Inventory addInventory(Inventory inventory); + + List getAllInventory(); + + Inventory getInventoryById(int id); + + void updateInventory(Inventory inventory); + + void deleteInventory(int id); + + void deleteInventoryByProductId(int in); +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImpl.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImpl.java new file mode 100644 index 000000000..7432bee19 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImpl.java @@ -0,0 +1,104 @@ +package com.company.capstone2.inventoryservice.dao; + +import com.company.capstone2.inventoryservice.model.Inventory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Component +public class InventoryDaoJdbcTemplateImpl implements InventoryDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public InventoryDaoJdbcTemplateImpl(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public Inventory addInventory(Inventory inventory) { + String sql = "insert into inventory (" + + "product_id," + + "quantity" + + ") values (?,?)"; + jdbcTemplate.update( + sql, + inventory.getProductId(), + inventory.getQuantity()); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + inventory.setInventoryId(id); + return inventory; + } + + // helper method + private Inventory mapTo(ResultSet rs, int rowNum) throws SQLException { + Inventory inventory = new Inventory(); + inventory.setInventoryId(rs.getInt("inventory_id")); + inventory.setProductId(rs.getInt("product_id")); + inventory.setQuantity(rs.getInt("quantity")); + return inventory; + } + + @Override + public List getAllInventory() { + String sql = "select * from inventory"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public Inventory getInventoryById(int id) { + String sql = "select * from inventory where inventory_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateInventory(Inventory inventory) { + String sql = "update inventory set " + + "product_id=?," + + "quantity=?" + + " where inventory_id=?"; + jdbcTemplate.update( + sql, + inventory.getProductId(), + inventory.getQuantity(), + inventory.getInventoryId()); + } + + @Override + public void deleteInventory(int id) { + String sql = "delete from inventory where inventory_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + + @Override + public void deleteInventoryByProductId(int id) { + String sql = "delete from inventory where product_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/exception/NotFoundException.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/exception/NotFoundException.java new file mode 100644 index 000000000..733e99fe1 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/exception/NotFoundException.java @@ -0,0 +1,7 @@ +package com.company.capstone2.inventoryservice.exception; + +public class NotFoundException extends RuntimeException{ + public NotFoundException(String message) { + super(message); + } +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/model/Inventory.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/model/Inventory.java new file mode 100644 index 000000000..2caf0c33f --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/model/Inventory.java @@ -0,0 +1,56 @@ +package com.company.capstone2.inventoryservice.model; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Objects; + +public class Inventory { + private int inventoryId; + @Min(value = 1,message = "must have a valid product id") + private int productId; + @Min(value = 1,message = "must have a valid quantity") + private int quantity; + + public Inventory() { + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Inventory inventory = (Inventory) o; + return getInventoryId() == inventory.getInventoryId() && + getProductId() == inventory.getProductId() && + getQuantity() == inventory.getQuantity(); + } + + @Override + public int hashCode() { + return Objects.hash(getInventoryId(), getProductId(), getQuantity()); + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/service/InventoryService.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/service/InventoryService.java new file mode 100644 index 000000000..3bafe221e --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/service/InventoryService.java @@ -0,0 +1,53 @@ +package com.company.capstone2.inventoryservice.service; + +import com.company.capstone2.inventoryservice.dao.InventoryDao; +import com.company.capstone2.inventoryservice.model.Inventory; +import com.company.capstone2.inventoryservice.util.feign.InvoiceServiceClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class InventoryService { + @Autowired + InventoryDao dao; + @Autowired + InvoiceServiceClient invoiceClient; + + public InventoryService(InventoryDao dao,InvoiceServiceClient invoiceClient) { + this.dao = dao; + this.invoiceClient = invoiceClient; + } + + @Transactional + public Inventory addInventory(Inventory inventory) { + inventory = dao.addInventory(inventory); + return inventory; + } + + public List getAllInventory() { + return dao.getAllInventory(); + } + + public Inventory getInventoryById(int id) { + return dao.getInventoryById(id); + } + + @Transactional + public void updateInventory(Inventory inventory) { + dao.updateInventory(inventory); + } + + @Transactional + public void deleteInventory(int id) { + invoiceClient.deleteInvoiceItemByInventoryId(id); + dao.deleteInventory(id); + } + + public void deleteInventoryByProductId(int id) { + dao.deleteInventoryByProductId(id); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/util/feign/InvoiceServiceClient.java b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/util/feign/InvoiceServiceClient.java new file mode 100644 index 000000000..8150a3be2 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/java/com/company/capstone2/inventoryservice/util/feign/InvoiceServiceClient.java @@ -0,0 +1,15 @@ +package com.company.capstone2.inventoryservice.util.feign; + +import com.company.capstone2.inventoryservice.model.Inventory; +import org.hibernate.validator.internal.IgnoreForbiddenApisErrors; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@FeignClient("invoice-service") +public interface InvoiceServiceClient { + + @RequestMapping(method= RequestMethod.DELETE, value = "/invoices/invoiceItem/inventory/{id}") + public void deleteInvoiceItemByInventoryId(@PathVariable int id); +} diff --git a/healthyliving-casestudy/inventory-service/src/main/resources/application.properties b/healthyliving-casestudy/inventory-service/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/healthyliving-casestudy/inventory-service/src/main/resources/bootstrap.properties b/healthyliving-casestudy/inventory-service/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..36945c108 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=inventory-service +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryApplicationTests.java b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryApplicationTests.java new file mode 100644 index 000000000..e44415eda --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.inventoryservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class InventoryApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryServiceApplicationTests.java b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryServiceApplicationTests.java new file mode 100644 index 000000000..de62a521a --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/InventoryServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.inventoryservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class InventoryServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImplTest.java b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImplTest.java new file mode 100644 index 000000000..13342fb52 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/dao/InventoryDaoJdbcTemplateImplTest.java @@ -0,0 +1,57 @@ +package com.company.capstone2.inventoryservice.dao; + +import com.company.capstone2.inventoryservice.model.Inventory; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +import static org.junit.Assert.*; +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class InventoryDaoJdbcTemplateImplTest { + @Autowired + InventoryDao dao; + + @Before + public void setUp() throws Exception { + // clear the data base + List inventory = dao.getAllInventory(); + inventory.stream().forEach(inventory1 -> dao.deleteInventory(inventory1.getInventoryId())); + } + + @Test + public void testAddInventoryGetAllInventoryGetInventoryById() { + Inventory inventory = new Inventory(); + inventory.setProductId(1); + inventory.setQuantity(5); + + // test add + inventory = dao.addInventory(inventory); + // test getAll + List Inventories = dao.getAllInventory(); + assertEquals(Inventories.size(),1); + // test get by Id + Inventory inventory1 = dao.getInventoryById(inventory.getInventoryId()); + assertEquals(inventory,inventory1); + } + + @Test + public void testUpdateInventoryDeleteInventory() { + Inventory inventory = new Inventory(); + //inventory.setInventoryId(1); + inventory.setProductId(1); + inventory.setQuantity(5); + + // test update + inventory = dao.addInventory(inventory); + inventory.setQuantity(10); + dao.updateInventory(inventory); + assertEquals(dao.getInventoryById(inventory.getInventoryId()).getQuantity(),10); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/service/InventoryServiceTest.java b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/service/InventoryServiceTest.java new file mode 100644 index 000000000..d6aa8fdd2 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/test/java/com/company/capstone2/inventoryservice/service/InventoryServiceTest.java @@ -0,0 +1,75 @@ +package com.company.capstone2.inventoryservice.service; + +import com.company.capstone2.inventoryservice.dao.InventoryDao; +import com.company.capstone2.inventoryservice.model.Inventory; +import com.company.capstone2.inventoryservice.util.feign.InvoiceServiceClient; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class InventoryServiceTest { + + @Mock + InventoryDao dao; + @Mock + InvoiceServiceClient client; + + @InjectMocks + InventoryService service; + + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void addInventory() { + Inventory inventory = new Inventory(); + when(dao.addInventory(inventory)).thenReturn(inventory); + inventory = service.addInventory(inventory); + verify(dao, times(1)).addInventory(inventory); + } + + @Test + public void getAllInventory() { + List inventories = new ArrayList<>(); + when(dao.getAllInventory()).thenReturn(inventories); + List inventoryList = service.getAllInventory(); + assertEquals(inventoryList.size(),0); + } + + @Test + public void getInventoryById() { + Inventory inventory = new Inventory(); + when(dao.getInventoryById(1)).thenReturn(inventory); + inventory = service.getInventoryById(1); + verify(dao, times(1)).getInventoryById(1); + } + + @Test + public void updateInventory() { + Inventory inventory = new Inventory(); + service.updateInventory(inventory); + verify(dao,times(1)).updateInventory(inventory); + } + + @Test + public void deleteInventory() { + service.deleteInventory(1); + verify(dao,times(1)).deleteInventory(1); + }} \ No newline at end of file diff --git a/healthyliving-casestudy/inventory-service/src/test/resources/application.properties b/healthyliving-casestudy/inventory-service/src/test/resources/application.properties new file mode 100644 index 000000000..5985b4fd2 --- /dev/null +++ b/healthyliving-casestudy/inventory-service/src/test/resources/application.properties @@ -0,0 +1,6 @@ +spring.datasource.url: jdbc:mysql://localhost:3306/inventory_test?useSSL=false +spring.datasource.username: root +spring.datasource.password: eve123 +spring.datasource.driver-class-name: com.mysql.jdbc.Driver + + diff --git a/healthyliving-casestudy/invoice-service/.gitignore b/healthyliving-casestudy/invoice-service/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/invoice-service/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/invoice-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/invoice-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/invoice-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/invoice-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/invoice-service/mvnw.cmd b/healthyliving-casestudy/invoice-service/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/invoice-service/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/invoice-service/pom.xml b/healthyliving-casestudy/invoice-service/pom.xml new file mode 100644 index 000000000..02b2cfea1 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company.capstone2 + invoice-service + 0.0.1-SNAPSHOT + invoice-service + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/InvoiceServiceApplication.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/InvoiceServiceApplication.java new file mode 100644 index 000000000..fce0b9fb9 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/InvoiceServiceApplication.java @@ -0,0 +1,15 @@ +package com.company.capstone2.invoiceservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class InvoiceServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(InvoiceServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/ControllerExceptionHandler.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/ControllerExceptionHandler.java new file mode 100644 index 000000000..d4d702b13 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/ControllerExceptionHandler.java @@ -0,0 +1,75 @@ +package com.company.capstone2.invoiceservice.cotroller; + +import com.company.capstone2.invoiceservice.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/InvoiceController.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/InvoiceController.java new file mode 100644 index 000000000..12ea8c9f9 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/cotroller/InvoiceController.java @@ -0,0 +1,90 @@ +package com.company.capstone2.invoiceservice.cotroller; + +import com.company.capstone2.invoiceservice.exception.NotFoundException; +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import com.company.capstone2.invoiceservice.service.InvoiceService; +import com.company.capstone2.invoiceservice.viewModel.InvoiceViewModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RefreshScope +@RequestMapping("/invoices") +public class InvoiceController { + + @Autowired + InvoiceService service; + + public InvoiceController(InvoiceService service) { + this.service = service; + } + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public InvoiceViewModel addInvoice(@RequestBody @Valid InvoiceViewModel ivm){ + return service.addInvoice(ivm); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllInvoices() { + return service.getAllInvoices(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public InvoiceViewModel getInvoiceById(@PathVariable int id) { + InvoiceViewModel ivm= service.getInvoiceById(id); + if (ivm==null){ + throw new NotFoundException("Invoice not found, id: "+id); + } else { + return ivm; + } + } + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateInvoice(@RequestBody @Valid InvoiceViewModel ivm, @PathVariable int id) { + if (ivm.getInvoiceId()==id){ + service.updateInvoice(ivm); + } else { + throw new NotFoundException("path id should match ivm id: "+ ivm.getInvoiceId()); + } + } + + @DeleteMapping("/invoiceItem/invoice/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInvoiceItemByInvoiceId(@PathVariable int id) { + service.deleteInvoiceItemByInvoiceId(id); + } + + @DeleteMapping("/invoiceItem/inventory/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInvoiceItemByInventoryId(@PathVariable int id) { + service.deleteInvoiceItemByInventoryId(id); + } + + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteInvoice(@PathVariable int id) { + service.deleteInvoice(id); + } + + + @GetMapping("/invoiceitem/{id}") + @ResponseStatus(value = HttpStatus.OK) + List getInvoiceItemByInvoiceId(@PathVariable int id){ + return service. getInvoiceItemByInvoiceId(id); + } + + + @GetMapping("/customer/{id}") + @ResponseStatus(value = HttpStatus.OK) + List getInvoiceByCustomerId(@PathVariable int id){ + return service.getInvoiceByCustomerId(id); + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDao.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDao.java new file mode 100644 index 000000000..ab30d8e53 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDao.java @@ -0,0 +1,20 @@ +package com.company.capstone2.invoiceservice.dao; + +import com.company.capstone2.invoiceservice.model.Invoice; + +import java.util.List; + +public interface InvoiceDao { + + Invoice addInvoice(Invoice invoice); + + List getAllInvoices(); + + Invoice getInvoiceById(int id); + + void updateInvoice(Invoice invoice); + + void deleteInvoice(int id); + + List getInvoiceByCustomerId(int id); +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImple.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImple.java new file mode 100644 index 000000000..aceac9920 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImple.java @@ -0,0 +1,111 @@ +package com.company.capstone2.invoiceservice.dao; + +import com.company.capstone2.invoiceservice.model.Invoice; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.time.LocalDate; +import java.util.List; + +@Repository +public class InvoiceDaoJdbcTemplateImple implements InvoiceDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public InvoiceDaoJdbcTemplateImple(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + +// private int invoiceId; +// private int customerId; +// private LocalDate purchaseDate; + + @Override + public Invoice addInvoice(Invoice invoice) { + String sql = "insert into invoice (" + + "customer_id," + + "purchase_date" + + ") values (?,?)"; + jdbcTemplate.update( + sql, + invoice.getCustomerId(), + invoice.getPurchaseDate() + ); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + invoice.setInvoiceId(id); + return invoice; + } + + // helper method + private Invoice mapTo(ResultSet rs, int rowNum) throws SQLException { + Invoice invoice = new Invoice(); + invoice.setInvoiceId(rs.getInt("invoice_id")); + invoice.setCustomerId(rs.getInt("customer_id")); + invoice.setPurchaseDate(rs.getDate("purchase_date").toLocalDate()); + return invoice; + } + + @Override + public List getAllInvoices() { + String sql = "select * from invoice"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public Invoice getInvoiceById(int id) { + String sql = "select * from invoice where invoice_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateInvoice(Invoice invoice) { + String sql = "update invoice set " + + "customer_id=?," + + "purchase_date=?" + + "where invoice_id=?"; + jdbcTemplate.update( + sql, + invoice.getCustomerId(), + invoice.getPurchaseDate(), + invoice.getInvoiceId() + ); + } + + @Override + public void deleteInvoice(int id) { + String sql = "delete from invoice where invoice_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + + @Override + public List getInvoiceByCustomerId(int id) { + String sql = "select * from invoice where customer_id=?"; + return jdbcTemplate.query( + sql, + this::mapTo, + id + ); + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDao.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDao.java new file mode 100644 index 000000000..9047d49ae --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDao.java @@ -0,0 +1,24 @@ +package com.company.capstone2.invoiceservice.dao; + +import com.company.capstone2.invoiceservice.model.InvoiceItem; + +import java.util.List; + +public interface InvoiceItemDao { + + InvoiceItem addInvoiceItem(InvoiceItem invoice); + + List getAllInvoiceItems(); + + InvoiceItem getInvoiceItemById(int id); + + void updateInvoiceItem(InvoiceItem invoice); + + void deleteInvoiceItem(int id); + + List getInvoiceItemByInvoiceId(int id); + + void deleteInvoiceItemByInvoiceId(int id); + + void deleteInvoiceItemByInventoryId(int id); +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImple.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImple.java new file mode 100644 index 000000000..d130b6c84 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImple.java @@ -0,0 +1,135 @@ +package com.company.capstone2.invoiceservice.dao; + +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Repository +public class InvoiceItemDaoJdbcTemplateImple implements InvoiceItemDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public InvoiceItemDaoJdbcTemplateImple(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public InvoiceItem addInvoiceItem(InvoiceItem invoiceItem) { + String sql = "insert into invoice_item (" + + "invoice_id," + + "inventory_id," + + "quantity," + + "unit_price"+ + ") values (?,?,?,?)"; + jdbcTemplate.update( + sql, + invoiceItem.getInvoiceId(), + invoiceItem.getInventoryId(), + invoiceItem.getQuantity(), + invoiceItem.getUnitPrice() + ); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + invoiceItem.setInvoiceItemId(id); + return invoiceItem; + } + + // helper method + private InvoiceItem mapTo(ResultSet rs, int rowNum) throws SQLException { + InvoiceItem invoiceItem = new InvoiceItem(); + invoiceItem.setInvoiceItemId(rs.getInt("invoice_item_id")); + invoiceItem.setInvoiceId(rs.getInt("invoice_id")); + invoiceItem.setInventoryId(rs.getInt("inventory_id")); + invoiceItem.setQuantity(rs.getInt("quantity")); + invoiceItem.setUnitPrice(rs.getBigDecimal("unit_price")); + return invoiceItem; + } + + @Override + public List getAllInvoiceItems() { + String sql = "select * from invoice_item"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public InvoiceItem getInvoiceItemById(int id) { + String sql = "select * from invoice_item where invoice_item_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateInvoiceItem(InvoiceItem invoiceItem) { + String sql = "update invoice_item set " + + "invoice_id=?," + + "inventory_id=?," + + "quantity=?," + + "unit_price=? "+ + "where invoice_item_id=?"; + jdbcTemplate.update( + sql, + invoiceItem.getInvoiceId(), + invoiceItem.getInventoryId(), + invoiceItem.getQuantity(), + invoiceItem.getUnitPrice(), + invoiceItem.getInvoiceItemId() + ); + } + + @Override + public void deleteInvoiceItem(int id) { + String sql = "delete from invoice_item where invoice_item_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + + + @Override + public List getInvoiceItemByInvoiceId(int id) { + String sql = " select * from invoice_item where invoice_id=?"; + return jdbcTemplate.query( + sql, + this::mapTo, + id + ); + } + + @Override + public void deleteInvoiceItemByInvoiceId(int id) { + String sql = "delete from invoice_item where invoice_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + @Override + public void deleteInvoiceItemByInventoryId(int id) { + String sql = "delete from invoice_item where inventory_id=?"; + jdbcTemplate.update( + sql, + id + ); + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/exception/NotFoundException.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/exception/NotFoundException.java new file mode 100644 index 000000000..cad37ac31 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/exception/NotFoundException.java @@ -0,0 +1,10 @@ +package com.company.capstone2.invoiceservice.exception; + +public class NotFoundException extends RuntimeException { + public NotFoundException(String message) { + super(message); + } + + public NotFoundException() { + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/Invoice.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/Invoice.java new file mode 100644 index 000000000..716666508 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/Invoice.java @@ -0,0 +1,49 @@ +package com.company.capstone2.invoiceservice.model; + +import java.time.LocalDate; +import java.util.Objects; + +public class Invoice { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Invoice invoice = (Invoice) o; + return invoiceId == invoice.invoiceId && + customerId == invoice.customerId && + purchaseDate.equals(invoice.purchaseDate); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/InvoiceItem.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/InvoiceItem.java new file mode 100644 index 000000000..6c704fef9 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/model/InvoiceItem.java @@ -0,0 +1,69 @@ +package com.company.capstone2.invoiceservice.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class InvoiceItem { + private int invoiceItemId; + private int invoiceId; + private int inventoryId; + private int quantity; + private BigDecimal unitPrice; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceItem that = (InvoiceItem) o; + return invoiceItemId == that.invoiceItemId && + invoiceId == that.invoiceId && + inventoryId == that.inventoryId && + quantity == that.quantity && + unitPrice.equals(that.unitPrice); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceItemId, invoiceId, inventoryId, quantity, unitPrice); + } + + public int getInvoiceItemId() { + return invoiceItemId; + } + + public void setInvoiceItemId(int invoiceItemId) { + this.invoiceItemId = invoiceItemId; + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/service/InvoiceService.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/service/InvoiceService.java new file mode 100644 index 000000000..50107a1ef --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/service/InvoiceService.java @@ -0,0 +1,126 @@ +package com.company.capstone2.invoiceservice.service; + +import com.company.capstone2.invoiceservice.dao.InvoiceDao; +import com.company.capstone2.invoiceservice.dao.InvoiceItemDao; +import com.company.capstone2.invoiceservice.exception.NotFoundException; +import com.company.capstone2.invoiceservice.model.Invoice; +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import com.company.capstone2.invoiceservice.viewModel.InvoiceViewModel; +import com.sun.org.apache.bcel.internal.generic.ALOAD; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class InvoiceService { + @Autowired + InvoiceItemDao invoiceItemDao; + + @Autowired + InvoiceDao invoiceDao; + + public InvoiceService(InvoiceItemDao invoiceItemDao, InvoiceDao invoiceDao) { + this.invoiceItemDao = invoiceItemDao; + this.invoiceDao = invoiceDao; + } + + // helper method + private Invoice buildInvoiceFromInvoiceViewModel(InvoiceViewModel ivm) { + Invoice invoice = new Invoice(); + invoice.setInvoiceId(ivm.getInvoiceId()); + invoice.setCustomerId(ivm.getCustomerId()); + invoice.setPurchaseDate(ivm.getPurchaseDate()); + return invoice; + } + + private InvoiceViewModel buildIvmFromInvoice(Invoice invoice) { + InvoiceViewModel ivm = new InvoiceViewModel(); + ivm.setInvoiceId(invoice.getInvoiceId()); + ivm.setCustomerId(invoice.getCustomerId()); + ivm.setPurchaseDate(invoice.getPurchaseDate()); + List tempItems = invoiceItemDao.getInvoiceItemByInvoiceId(invoice.getInvoiceId()); + ivm.setInvoiceItems(tempItems); + return ivm; + } + + @Transactional + public InvoiceViewModel addInvoice(InvoiceViewModel ivm) { + // build invoice from ivm + Invoice invoice = buildInvoiceFromInvoiceViewModel(ivm); + // save the invoice to db though dao + invoice = invoiceDao.addInvoice(invoice); + // save invoice item in invoice + List updateInvoiceItems = new ArrayList<>(); + List invoiceItems = ivm.getInvoiceItems(); + Invoice finalInvoice = invoice; + invoiceItems.stream().forEach(invoiceItem -> { + invoiceItem.setInvoiceId(finalInvoice.getInvoiceId()); + InvoiceItem tempItem = invoiceItemDao.addInvoiceItem(invoiceItem); + updateInvoiceItems.add(tempItem); + }); + // update ivm for ids + ivm.setInvoiceId(invoice.getInvoiceId()); + ivm.setInvoiceItems(updateInvoiceItems); + return ivm; + } + + @Transactional + public List getAllInvoices() { + List ivms = new ArrayList<>(); + List invoices = invoiceDao.getAllInvoices(); + invoices.stream().forEach(invoice -> { + InvoiceViewModel tempIvm = buildIvmFromInvoice(invoice); + ivms.add(tempIvm); + }); + return ivms; + } + + public InvoiceViewModel getInvoiceById(int id){ + return buildIvmFromInvoice(invoiceDao.getInvoiceById(id)); + } + + @Transactional + public void updateInvoice(InvoiceViewModel ivm){ + Invoice invoice = buildInvoiceFromInvoiceViewModel(ivm); + // update for invoice itself + invoiceDao.updateInvoice(invoice); + // update for invoice items in the invoice + ivm.getInvoiceItems().stream().forEach(invoiceItem -> { + invoiceItem.setInvoiceId(ivm.getInvoiceId()); + try { + invoiceItemDao.updateInvoiceItem(invoiceItem); + } catch (EmptyResultDataAccessException e) { + throw new NotFoundException("InvoiceItem not found, id:"+invoiceItem.getInvoiceItemId()); + } + }); + } + + @Transactional + public void deleteInvoice(int id){ + deleteInvoiceItemByInvoiceId(id); + invoiceDao.deleteInvoice(id); + } + + @Transactional + public List getInvoiceByCustomerId(int id){ + List invoices = invoiceDao.getInvoiceByCustomerId(id); + List ivms = new ArrayList<>(); + invoices.stream().forEach(invoice -> { + ivms.add(buildIvmFromInvoice(invoice)); + }); + return ivms; + } + public List getInvoiceItemByInvoiceId(int id){ + return invoiceItemDao.getInvoiceItemByInvoiceId(id); + } + public void deleteInvoiceItemByInvoiceId(int id){ + invoiceItemDao.deleteInvoiceItemByInvoiceId(id); + } + public void deleteInvoiceItemByInventoryId(int id){ + invoiceItemDao.deleteInvoiceItemByInventoryId(id); + } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/viewModel/InvoiceViewModel.java b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/viewModel/InvoiceViewModel.java new file mode 100644 index 000000000..e8cbc019c --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/java/com/company/capstone2/invoiceservice/viewModel/InvoiceViewModel.java @@ -0,0 +1,83 @@ +package com.company.capstone2.invoiceservice.viewModel; + +import com.company.capstone2.invoiceservice.model.InvoiceItem; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + +public class InvoiceViewModel { + private int invoiceId; + @Min(value = 1,message = "invalid customer id") + private int customerId; + @NotNull(message = "Please supply a member date") + private LocalDate purchaseDate; + // an order (invoice) has many items + @Size(min = 1,message = "do not open an invoice with no item") + private List invoiceItems; + // calculated point from the total order + //private int point; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceViewModel that = (InvoiceViewModel) o; + return invoiceId == that.invoiceId && + customerId == that.customerId && + // point == that.point && + purchaseDate.equals(that.purchaseDate) && + invoiceItems.equals(that.invoiceItems); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate, invoiceItems + // point + ); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } + + public List getInvoiceItems() { + return invoiceItems; + } + + public void setInvoiceItems(List invoiceItems) { + this.invoiceItems = invoiceItems; + } + +// public int getPoint() { +// return point; +// } + +// public void setPoint(int point) { +// this.point = point; +// } +} diff --git a/healthyliving-casestudy/invoice-service/src/main/resources/application.properties b/healthyliving-casestudy/invoice-service/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/healthyliving-casestudy/invoice-service/src/main/resources/bootstrap.properties b/healthyliving-casestudy/invoice-service/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..24806323f --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=invoice-service +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/InvoiceServiceApplicationTests.java b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/InvoiceServiceApplicationTests.java new file mode 100644 index 000000000..9dd3c384c --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/InvoiceServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.invoiceservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class InvoiceServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImpleTest.java b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImpleTest.java new file mode 100644 index 000000000..75dce98f5 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceDaoJdbcTemplateImpleTest.java @@ -0,0 +1,80 @@ +package com.company.capstone2.invoiceservice.dao; + +import com.company.capstone2.invoiceservice.model.Invoice; +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import net.bytebuddy.asm.Advice; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class InvoiceDaoJdbcTemplateImpleTest { + + @Autowired + InvoiceDao invoiceDao; + + @Autowired + InvoiceItemDao invoiceItemDao; + + @Before + public void setUp() throws Exception { + // clear the data base + List invoiceItems = invoiceItemDao.getAllInvoiceItems(); + invoiceItems.stream().forEach(invoiceItem -> invoiceItemDao.deleteInvoiceItem(invoiceItem.getInvoiceItemId())); + // clear the data base + List invoices = invoiceDao.getAllInvoices(); + invoices.stream().forEach(invoice -> invoiceDao.deleteInvoice(invoice.getInvoiceId())); + } + + @Test + public void testAddInvoiceGetAllInvoicesGetInvoiceById() { + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + + // test add + invoice1 = invoiceDao.addInvoice(invoice1); + // test getAll + List invoices = invoiceDao.getAllInvoices(); + assertEquals(invoices.size(),1); + // test get by Id + Invoice invoice2 = invoiceDao.getInvoiceById(invoice1.getInvoiceId()); + assertEquals(invoice1,invoice2); + invoice2 = invoiceDao.getInvoiceById(-1); + } + + @Test + public void testUpdateInvoiceDeleteInvoice() { + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + + invoice1 = invoiceDao.addInvoice(invoice1); + invoice1.setPurchaseDate(LocalDate.of(1999,1,1)); + invoiceDao.updateInvoice(invoice1); + assertEquals(invoiceDao.getInvoiceById(invoice1.getInvoiceId()).getPurchaseDate(),LocalDate.of(1999,1,1)); + } + + @Test + public void testGetInvoiceByCustomerId(){ + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + + invoice1 = invoiceDao.addInvoice(invoice1); + List invoiceList = new ArrayList<>(); + invoiceList.add(invoice1); + + List invoiceList2 = invoiceDao.getInvoiceByCustomerId(1); + assertEquals(invoiceList2,invoiceList); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImpleTest.java b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImpleTest.java new file mode 100644 index 000000000..4ef8671f0 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/dao/InvoiceItemDaoJdbcTemplateImpleTest.java @@ -0,0 +1,147 @@ +package com.company.capstone2.invoiceservice.dao; +import com.company.capstone2.invoiceservice.dao.InvoiceDao; +import com.company.capstone2.invoiceservice.dao.InvoiceItemDao; +import com.company.capstone2.invoiceservice.model.Invoice; +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class InvoiceItemDaoJdbcTemplateImpleTest { + + @Autowired + InvoiceItemDao invoiceItemDao; + + @Autowired + InvoiceDao invoiceDao; + + @Before + public void setUp() throws Exception { + // clear the data base + List invoiceItems = invoiceItemDao.getAllInvoiceItems(); + invoiceItems.stream().forEach(invoiceItem -> invoiceItemDao.deleteInvoiceItem(invoiceItem.getInvoiceItemId())); + // clear the data base + List invoices = invoiceDao.getAllInvoices(); + invoices.stream().forEach(invoice -> invoiceDao.deleteInvoice(invoice.getInvoiceId())); + } + + @Test + public void testAddInvoiceGetAllInvoicesGetInvoiceById() { + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + invoice1 = invoiceDao.addInvoice(invoice1); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem1.setInventoryId(99); + invoiceItem1.setQuantity(1); + invoiceItem1.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + InvoiceItem invoiceItem2 = new InvoiceItem(); + invoiceItem2.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem2.setInventoryId(98); + invoiceItem2.setQuantity(10); + invoiceItem2.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + List invoiceItems = new ArrayList<>(); + invoiceItems.add(invoiceItem1); + invoiceItems.add(invoiceItem2); + + invoiceItem1 = invoiceItemDao.addInvoiceItem(invoiceItem1); + invoiceItem2 = invoiceItemDao.addInvoiceItem(invoiceItem2); + + // test getAll + List invoiceitems1 = invoiceItemDao.getAllInvoiceItems(); + assertEquals(invoiceitems1,invoiceItems); + + // test get by Id + InvoiceItem invoiceItem3 = invoiceItemDao.getInvoiceItemById(invoiceItem1.getInvoiceItemId()); + assertEquals(invoiceItem1,invoiceItem3); + InvoiceItem invoiceItem4 = invoiceItemDao.getInvoiceItemById(-1); + assertNull(invoiceItem4); + + + } + + @Test + public void testGetInvoiceItemByInvoiceId(){ + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + invoice1 = invoiceDao.addInvoice(invoice1); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem1.setInventoryId(99); + invoiceItem1.setQuantity(1); + invoiceItem1.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + InvoiceItem invoiceItem2 = new InvoiceItem(); + invoiceItem2.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem2.setInventoryId(98); + invoiceItem2.setQuantity(10); + invoiceItem2.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + invoiceItem1 = invoiceItemDao.addInvoiceItem(invoiceItem1); + invoiceItem2 = invoiceItemDao.addInvoiceItem(invoiceItem2); + + // test get by invoice id + List invoiceItems = invoiceItemDao.getInvoiceItemByInvoiceId(invoiceItem1.getInvoiceId()); + assertEquals(invoiceItems.size(),2); + } + + @Test + public void testUpdateInvoiceDeleteInvoice() { + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + invoice1 = invoiceDao.addInvoice(invoice1); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem1.setInventoryId(99); + invoiceItem1.setQuantity(1); + invoiceItem1.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + // test add + invoiceItem1 = invoiceItemDao.addInvoiceItem(invoiceItem1); + // test update + invoiceItem1.setQuantity(20); + invoiceItemDao.updateInvoiceItem(invoiceItem1); + InvoiceItem invoiceItem3 = invoiceItemDao.getInvoiceItemById(invoiceItem1.getInvoiceItemId()); + assertEquals(invoiceItem3.getQuantity(),20); + } + + @Test + public void testDeleteInvoiceByInvoiceId(){ + Invoice invoice1 = new Invoice(); + invoice1.setCustomerId(1); + invoice1.setPurchaseDate(LocalDate.of(2000,1,1)); + invoice1 = invoiceDao.addInvoice(invoice1); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInvoiceId(invoice1.getInvoiceId()); + invoiceItem1.setInventoryId(99); + invoiceItem1.setQuantity(1); + invoiceItem1.setUnitPrice(new BigDecimal(100.00).setScale(2)); + // test add + invoiceItem1 = invoiceItemDao.addInvoiceItem(invoiceItem1); + invoiceItemDao.deleteInvoiceItemByInvoiceId(invoice1.getInvoiceId()); + List invoiceItems = invoiceItemDao.getAllInvoiceItems(); + assertEquals(invoiceItems.size(),0); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/service/InvoiceServiceTest.java b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/service/InvoiceServiceTest.java new file mode 100644 index 000000000..41ef3a469 --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/test/java/com/company/capstone2/invoiceservice/service/InvoiceServiceTest.java @@ -0,0 +1,245 @@ +package com.company.capstone2.invoiceservice.service; + +import com.company.capstone2.invoiceservice.dao.InvoiceDao; +import com.company.capstone2.invoiceservice.dao.InvoiceItemDao; +import com.company.capstone2.invoiceservice.exception.NotFoundException; +import com.company.capstone2.invoiceservice.model.Invoice; +import com.company.capstone2.invoiceservice.model.InvoiceItem; +import com.company.capstone2.invoiceservice.viewModel.InvoiceViewModel; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class InvoiceServiceTest { + + @Mock + InvoiceItemDao invoiceItemDao; + @Mock + InvoiceDao invoiceDao; + @InjectMocks + InvoiceService service; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + // public InvoiceViewModel addInvoice(InvoiceViewModel ivm) + // public List getAllInvoices() + // public InvoiceViewModel getInvoiceById(int id) + @Test + public void testAddInvoiceGetAllInvoicesGetInvoiceById() { + //input to the service-layer + InvoiceViewModel ivm1a = new InvoiceViewModel(); + ivm1a.setCustomerId(22); + ivm1a.setPurchaseDate(LocalDate.of(2010, 1, 1)); + + //input to dao + InvoiceItem invoiceItem1a = new InvoiceItem(); + invoiceItem1a.setInvoiceId(11); + invoiceItem1a.setInventoryId(101); + invoiceItem1a.setQuantity(10); + invoiceItem1a.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + InvoiceItem invoiceItem2a = new InvoiceItem(); + invoiceItem2a.setInvoiceId(11); + invoiceItem2a.setInventoryId(102); + invoiceItem2a.setQuantity(1); + invoiceItem2a.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + Invoice invoice1a = new Invoice(); + invoice1a.setCustomerId(ivm1a.getCustomerId()); + invoice1a.setPurchaseDate(ivm1a.getPurchaseDate()); + + List invoiceItems1a = new ArrayList<>(); + invoiceItems1a.add(invoiceItem1a); + invoiceItems1a.add(invoiceItem2a); + + // input ivm has the list of pre-processed list + ivm1a.setInvoiceItems(invoiceItems1a); + + // outputs from Dao + InvoiceItem invoiceItem1b = new InvoiceItem(); + invoiceItem1b.setInvoiceItemId(1); + invoiceItem1b.setInvoiceId(11); + invoiceItem1b.setInventoryId(101); + invoiceItem1b.setQuantity(10); + invoiceItem1b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + InvoiceItem invoiceItem2b = new InvoiceItem(); + invoiceItem2b.setInvoiceItemId(2); + invoiceItem2b.setInvoiceId(11); + invoiceItem2b.setInventoryId(102); + invoiceItem2b.setQuantity(1); + invoiceItem2b.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + List invoiceItems1b = new ArrayList<>(); + invoiceItems1b.add(invoiceItem1b); + invoiceItems1b.add(invoiceItem2b); + + // expected return from service layer + InvoiceViewModel ivm1b = new InvoiceViewModel(); + ivm1b.setInvoiceId(11); + ivm1b.setCustomerId(22); + ivm1b.setPurchaseDate(LocalDate.of(2010, 1, 1)); + ivm1b.setInvoiceItems(invoiceItems1b); + + Invoice invoice1b = new Invoice(); + invoice1b.setInvoiceId(ivm1b.getInvoiceId()); + invoice1b.setCustomerId(ivm1b.getCustomerId()); + invoice1b.setPurchaseDate(ivm1b.getPurchaseDate()); + + when(invoiceItemDao.addInvoiceItem(invoiceItem1a)).thenReturn(invoiceItem1b); + when(invoiceItemDao.addInvoiceItem(invoiceItem2a)).thenReturn(invoiceItem2b); + when(invoiceDao.addInvoice(invoice1a)).thenReturn(invoice1b); + when(invoiceDao.getInvoiceById(11)).thenReturn(invoice1b); +// invoiceItemDao.addInvoiceItem(invoiceItem) + List ivmList = new ArrayList<>(); + ivmList.add(ivm1b); + + List invoices = new ArrayList<>(); + invoices.add(invoice1b); + + when(invoiceDao.getAllInvoices()).thenReturn(invoices); + when(invoiceItemDao.getInvoiceItemByInvoiceId(11)).thenReturn(invoiceItems1b); + + // Act + InvoiceViewModel ivm = new InvoiceViewModel(); + ivm.setCustomerId(22); + ivm.setPurchaseDate(LocalDate.of(2010, 1, 1)); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInventoryId(101); + invoiceItem1.setQuantity(10); + invoiceItem1.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + InvoiceItem invoiceItem2 = new InvoiceItem(); + invoiceItem2.setInventoryId(102); + invoiceItem2.setQuantity(1); + invoiceItem2.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + List invoiceItems1 = new ArrayList<>(); + invoiceItems1.add(invoiceItem1); + invoiceItems1.add(invoiceItem2); + ivm.setInvoiceItems(invoiceItems1); + + // test add + ivm = service.addInvoice(ivm); + assertEquals(ivm, ivm1b); + + // test get all + List ivmList1 = service.getAllInvoices(); + assertEquals(ivmList, ivmList1); + + // test get by id + ivm = service.getInvoiceById(11); + assertEquals(ivm, ivm1b); + + } + + + // public void updateInvoice(InvoiceViewModel ivm) + // public void deleteInvoice(int id) + @Test + public void testUpdateDeleteInvoiceById() { + // outputs from Dao + InvoiceItem invoiceItem1b = new InvoiceItem(); + invoiceItem1b.setInvoiceItemId(1); + invoiceItem1b.setInvoiceId(11); + invoiceItem1b.setInventoryId(101); + invoiceItem1b.setQuantity(10); + invoiceItem1b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + InvoiceItem invoiceItem2b = new InvoiceItem(); + invoiceItem2b.setInvoiceItemId(2); + invoiceItem2b.setInvoiceId(11); + invoiceItem2b.setInventoryId(102); + invoiceItem2b.setQuantity(1); + invoiceItem2b.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + List invoiceItems1b = new ArrayList<>(); + invoiceItems1b.add(invoiceItem1b); + invoiceItems1b.add(invoiceItem2b); + + // expected return from service layer + InvoiceViewModel ivm1b = new InvoiceViewModel(); + ivm1b.setInvoiceId(11); + ivm1b.setCustomerId(22); + ivm1b.setPurchaseDate(LocalDate.of(2010, 1, 1)); + ivm1b.setInvoiceItems(invoiceItems1b); + + Invoice invoice1b = new Invoice(); + invoice1b.setInvoiceId(ivm1b.getInvoiceId()); + invoice1b.setCustomerId(ivm1b.getCustomerId()); + invoice1b.setPurchaseDate(ivm1b.getPurchaseDate()); + + service.updateInvoice(ivm1b); + verify(invoiceDao, times(1)).updateInvoice(invoice1b); + verify(invoiceItemDao, times(2)).updateInvoiceItem(any()); + + service.deleteInvoice(11); + verify(invoiceDao, times(1)).deleteInvoice(11); + verify(invoiceItemDao, times(1)).deleteInvoiceItemByInvoiceId(11); + } + + // public List getInvoiceByCustomerId(int id) + @Test + public void testGetInvoiceByCustomerId(){ + // outputs from Dao + InvoiceItem invoiceItem1b = new InvoiceItem(); + invoiceItem1b.setInvoiceItemId(1); + invoiceItem1b.setInvoiceId(11); + invoiceItem1b.setInventoryId(101); + invoiceItem1b.setQuantity(10); + invoiceItem1b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + + InvoiceItem invoiceItem2b = new InvoiceItem(); + invoiceItem2b.setInvoiceItemId(2); + invoiceItem2b.setInvoiceId(11); + invoiceItem2b.setInventoryId(102); + invoiceItem2b.setQuantity(1); + invoiceItem2b.setUnitPrice(new BigDecimal(100.00).setScale(2)); + + List invoiceItems1b = new ArrayList<>(); + invoiceItems1b.add(invoiceItem1b); + invoiceItems1b.add(invoiceItem2b); + + // expected return from service layer + InvoiceViewModel ivm1b = new InvoiceViewModel(); + ivm1b.setInvoiceId(11); + ivm1b.setCustomerId(22); + ivm1b.setPurchaseDate(LocalDate.of(2010, 1, 1)); + ivm1b.setInvoiceItems(invoiceItems1b); + + Invoice invoice1b = new Invoice(); + invoice1b.setInvoiceId(ivm1b.getInvoiceId()); + invoice1b.setCustomerId(ivm1b.getCustomerId()); + invoice1b.setPurchaseDate(ivm1b.getPurchaseDate()); + List invoices = new ArrayList<>(); + invoices.add(invoice1b); + + when(invoiceDao.getInvoiceByCustomerId(22)).thenReturn(invoices); + when(invoiceItemDao.getInvoiceItemByInvoiceId(11)).thenReturn(invoiceItems1b); + List ivmList = service.getInvoiceByCustomerId(22); + assertEquals(ivmList.get(0),ivm1b); + assertEquals(ivmList.size(),1); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/invoice-service/src/test/resources/application.properties b/healthyliving-casestudy/invoice-service/src/test/resources/application.properties new file mode 100644 index 000000000..f8b64514e --- /dev/null +++ b/healthyliving-casestudy/invoice-service/src/test/resources/application.properties @@ -0,0 +1,4 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/invoice_test?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-consumer/.gitignore b/healthyliving-casestudy/levelup-consumer/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/levelup-consumer/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/levelup-consumer/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/levelup-consumer/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/levelup-consumer/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/levelup-consumer/mvnw.cmd b/healthyliving-casestudy/levelup-consumer/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/levelup-consumer/pom.xml b/healthyliving-casestudy/levelup-consumer/pom.xml new file mode 100644 index 000000000..b6bfc5c94 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/pom.xml @@ -0,0 +1,88 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company + level-consumer + 0.0.1-SNAPSHOT + levelup-consumer + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.cloud + spring-cloud-starter-feign + 1.4.7.RELEASE + + + com.fasterxml.jackson.core + jackson-core + 2.9.8 + + + com.fasterxml.jackson.core + jackson-annotations + 2.9.8 + + + com.fasterxml.jackson.core + jackson-databind + + 2.9.9.2 + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + org.springframework.cloud + spring-cloud-starter-config + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplication.java b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplication.java new file mode 100644 index 000000000..f99708032 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplication.java @@ -0,0 +1,47 @@ +package com.company.capstone2.levelupconsumer; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +@EnableFeignClients +public class LevelupConsumerApplication { + + public static final String TOPIC_EXCHANGE_NAME = "level-up-exchange"; + public static final String QUEUE_NAME = "level-up-queue"; + public static final String ROUTING_KEY = "level-up.#"; + + @Bean + Queue queue(){ + return new Queue(QUEUE_NAME,false); + } + + @Bean + TopicExchange exchange(){ + return new TopicExchange(TOPIC_EXCHANGE_NAME); + } + + @Bean + Binding binding(Queue queue, TopicExchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); + } + + @Bean + public Jackson2JsonMessageConverter jackson2JsonMessageConverter(){ + return new Jackson2JsonMessageConverter(); + } + + public static void main(String[] args) { + SpringApplication.run(LevelupConsumerApplication.class, args); + } + + + +} diff --git a/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/Listener.java b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/Listener.java new file mode 100644 index 000000000..c9e3eccb2 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/Listener.java @@ -0,0 +1,36 @@ +package com.company.capstone2.levelupconsumer; + +import com.company.capstone2.levelupconsumer.model.Levelup; +import com.company.capstone2.levelupconsumer.util.feign.LevelupClient; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; + +@Service +@Component +public class Listener { + + @Autowired + private final LevelupClient client; + + public Listener(LevelupClient client) { + this.client = client; + } + + @RabbitListener(queues = LevelupConsumerApplication.QUEUE_NAME) + public void receiveMessage(Levelup msg) { + System.out.println(msg.toString()); + Levelup levelup = new Levelup(); + levelup.setLevelupId(msg.getLevelupId()); + levelup.setCustomerId(msg.getCustomerId()); + levelup.setPoint(msg.getPoint()); + levelup.setMemberDate(msg.getMemberDate()); + client.addLevelup(levelup); + } +} diff --git a/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/model/Levelup.java b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/model/Levelup.java new file mode 100644 index 000000000..b30ada70b --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/model/Levelup.java @@ -0,0 +1,79 @@ +package com.company.capstone2.levelupconsumer.model; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import java.time.LocalDate; +import java.util.Date; +import java.util.Objects; + +public class Levelup { + private int levelupId; + private int customerId; + private int point; + // generates "yyyy-MM-dd" output + @JsonSerialize(using = LocalDateSerializer.class) + // handles "yyyy-MM-dd" input just fine (note: "yyyy-M-d" format will not work) + @JsonDeserialize(using = LocalDateDeserializer.class) + private LocalDate memberDate; // create memberdate when create customer + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Levelup levelup = (Levelup) o; + return levelupId == levelup.levelupId && + customerId == levelup.customerId && + point == levelup.point && + memberDate.equals(levelup.memberDate); + } + + @Override + public String toString() { + return "Levelup{" + + "levelupId=" + levelupId + + ", customerId=" + customerId + + ", point=" + point + + ", memberDate=" + memberDate + + '}'; + } + + @Override + public int hashCode() { + return Objects.hash(levelupId, customerId, point, memberDate); + } + + public int getLevelupId() { + return levelupId; + } + + public void setLevelupId(int levelupId) { + this.levelupId = levelupId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public int getPoint() { + return point; + } + + public void setPoint(int point) { + this.point = point; + } + + public LocalDate getMemberDate() { + return memberDate; + } + + public void setMemberDate(LocalDate memberDate) { + this.memberDate = memberDate; + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/util/feign/LevelupClient.java b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/util/feign/LevelupClient.java new file mode 100644 index 000000000..9e6df3a96 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/main/java/com/company/capstone2/levelupconsumer/util/feign/LevelupClient.java @@ -0,0 +1,15 @@ +package com.company.capstone2.levelupconsumer.util.feign; + +import com.company.capstone2.levelupconsumer.model.Levelup; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="levelup-service") +public interface LevelupClient { + @RequestMapping(value = "/levelup", method = RequestMethod.POST) + public Levelup addLevelup(@RequestBody Levelup levelup); +} diff --git a/healthyliving-casestudy/levelup-consumer/src/main/resources/application.properties b/healthyliving-casestudy/levelup-consumer/src/main/resources/application.properties new file mode 100644 index 000000000..f775cba3c --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/main/resources/application.properties @@ -0,0 +1,2 @@ +feign.client.config.default.connectTimeout: 160000000 +feign.client.config.default.readTimeout: 160000000 \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-consumer/src/test/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplicationTests.java b/healthyliving-casestudy/levelup-consumer/src/test/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplicationTests.java new file mode 100644 index 000000000..c1b242cf1 --- /dev/null +++ b/healthyliving-casestudy/levelup-consumer/src/test/java/com/company/capstone2/levelupconsumer/LevelupConsumerApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.levelupconsumer; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class LevelupConsumerApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/levelup-service/.gitignore b/healthyliving-casestudy/levelup-service/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/levelup-service/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/levelup-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/levelup-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/levelup-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/levelup-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/levelup-service/mvnw.cmd b/healthyliving-casestudy/levelup-service/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/levelup-service/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/levelup-service/pom.xml b/healthyliving-casestudy/levelup-service/pom.xml new file mode 100644 index 000000000..fc6f81d2c --- /dev/null +++ b/healthyliving-casestudy/levelup-service/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company.capstone2 + levelup-service + 0.0.1-SNAPSHOT + levelup-service + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/LevelupServiceApplication.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/LevelupServiceApplication.java new file mode 100644 index 000000000..a56c880bf --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/LevelupServiceApplication.java @@ -0,0 +1,15 @@ +package com.company.capstone2.levelupservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +public class LevelupServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(LevelupServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..b485c86d4 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,75 @@ +package com.company.capstone2.levelupservice.controller; + +import com.company.capstone2.levelupservice.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/LevelupController.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/LevelupController.java new file mode 100644 index 000000000..a4b7f30b3 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/controller/LevelupController.java @@ -0,0 +1,71 @@ +package com.company.capstone2.levelupservice.controller; + + +import com.company.capstone2.levelupservice.exception.NotFoundException; +import com.company.capstone2.levelupservice.model.Levelup; +import com.company.capstone2.levelupservice.service.LevelupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RefreshScope +@RequestMapping("/levelup") +public class LevelupController { + + @Autowired + LevelupService service; + + public LevelupController(LevelupService service) { + this.service = service; + } + + @PostMapping + @ResponseStatus(value = HttpStatus.ACCEPTED) + public Levelup addLevelup(@RequestBody @Valid Levelup levelup){ + return service.addLevelup(levelup); + } + + @GetMapping + @ResponseStatus(value = HttpStatus.OK) + public List getAllLevelups() { + return service.getAllLevelups(); + } + + @GetMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public Levelup getLevelupById(@PathVariable int id) { + Levelup levelup= service.getLevelupById(id); + if (levelup==null){ + throw new NotFoundException("Levelup not found, id: "+id); + } else { + return levelup; + } + } + @PutMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void updateLevelup(@RequestBody @Valid Levelup levelup, @PathVariable int id) { + if (levelup.getLevelupId()==id){ + service.updateLevelup(levelup); + } else { + throw new NotFoundException("path id should match levelup id: "+ levelup.getLevelupId()); + } + } + + @DeleteMapping("/{id}") + @ResponseStatus(value = HttpStatus.OK) + public void deleteLevelup(@PathVariable int id) { + service.deleteLevelup(id); + } + + @GetMapping("/customer/{id}") + @ResponseStatus(value = HttpStatus.OK) + public List getLevelupByCustomerId(@PathVariable int id) { + return service.getLevelUpByCustomerId(id); + } + +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDao.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDao.java new file mode 100644 index 000000000..5a01eeb0d --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDao.java @@ -0,0 +1,21 @@ +package com.company.capstone2.levelupservice.dao; + +import com.company.capstone2.levelupservice.model.Levelup; + +import java.util.List; + +public interface LevelupDao { + + Levelup addLevelup(Levelup customer); + + List getAllLevelups(); + + Levelup getLevelupById(int id); + + void updateLevelup(Levelup customer); + + void deleteLevelup(int id); + + List getLevelupByCustomerId(int id); + +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImple.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImple.java new file mode 100644 index 000000000..15281220a --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImple.java @@ -0,0 +1,112 @@ +package com.company.capstone2.levelupservice.dao; + +import com.company.capstone2.levelupservice.model.Levelup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +@Repository +public class LevelupDaoJdbcTemplateImple implements LevelupDao { + + @Autowired + JdbcTemplate jdbcTemplate; + + public LevelupDaoJdbcTemplateImple(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @Override + public Levelup addLevelup(Levelup levelup) { + String sql = "insert into level_up (" + + "customer_id," + + "points," + + "member_date" + + ") values (?,?,?)"; + jdbcTemplate.update( + sql, + levelup.getCustomerId(), + levelup.getPoint(), + levelup.getMemberDate() + ); + int id = jdbcTemplate.queryForObject( + "select last_insert_id()", + Integer.class + ); + levelup.setLevelupId(id); + return levelup; + } + + // helper method + private Levelup mapTo(ResultSet rs, int rowNum) throws SQLException { + Levelup levelup = new Levelup(); + levelup.setLevelupId(rs.getInt("level_up_id")); + levelup.setCustomerId(rs.getInt("customer_id")); + levelup.setPoint(rs.getInt("points")); + levelup.setMemberDate(rs.getDate("member_date").toLocalDate()); + return levelup; + } + + @Override + public List getAllLevelups() { + String sql = "select * from level_up"; + return jdbcTemplate.query( + sql, + this::mapTo + ); + } + + @Override + public Levelup getLevelupById(int id) { + String sql = "select * from level_up where level_up_id=?"; + try { + return jdbcTemplate.queryForObject( + sql, + this::mapTo, + id + ); + } catch (EmptyResultDataAccessException e) { + return null; + } + } + + @Override + public void updateLevelup(Levelup levelup) { + String sql = "update level_up set " + + "customer_id=?," + + "points=?," + + "member_date=?" + + "where level_up_id=?"; + jdbcTemplate.update( + sql, + levelup.getCustomerId(), + levelup.getPoint(), + levelup.getMemberDate(), + levelup.getLevelupId() + ); + } + + @Override + public void deleteLevelup(int id) { + String sql = "delete from level_up where level_up_id=?"; + jdbcTemplate.update( + sql, + id + ); + } + + @Override + public List getLevelupByCustomerId(int id) { + String sql = "select * from level_up where customer_id=?"; + + return jdbcTemplate.query( + sql, + this::mapTo, + id); + + } +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/exception/NotFoundException.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/exception/NotFoundException.java new file mode 100644 index 000000000..0591ffd9d --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/exception/NotFoundException.java @@ -0,0 +1,10 @@ +package com.company.capstone2.levelupservice.exception; + +public class NotFoundException extends RuntimeException { + public NotFoundException(String message) { + super(message); + } + + public NotFoundException() { + } +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/model/Levelup.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/model/Levelup.java new file mode 100644 index 000000000..809750f24 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/model/Levelup.java @@ -0,0 +1,69 @@ +package com.company.capstone2.levelupservice.model; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import java.time.LocalDate; +import java.util.Objects; + +public class Levelup { + private int levelupId; + @NotNull(message = "customer id please") + @Min(value = 1, message = "invalid customer id") + private int customerId; + private int point; + @NotNull(message = "member date please") + private LocalDate memberDate; // create memberdate when create customer + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Levelup levelup = (Levelup) o; + return levelupId == levelup.levelupId && + customerId == levelup.customerId && + point == levelup.point && + memberDate.equals(levelup.memberDate); + } + + @Override + public int hashCode() { + return Objects.hash(levelupId, customerId, point, memberDate); + } + + public int getLevelupId() { + return levelupId; + } + + public void setLevelupId(int levelupId) { + this.levelupId = levelupId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public int getPoint() { + return point; + } + + public void setPoint(int point) { + this.point = point; + } + + public LocalDate getMemberDate() { + return memberDate; + } + + public void setMemberDate(LocalDate memberDate) { + this.memberDate = memberDate; + } +} diff --git a/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/service/LevelupService.java b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/service/LevelupService.java new file mode 100644 index 000000000..92c8c9656 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/java/com/company/capstone2/levelupservice/service/LevelupService.java @@ -0,0 +1,47 @@ +package com.company.capstone2.levelupservice.service; + +import com.company.capstone2.levelupservice.dao.LevelupDao; +import com.company.capstone2.levelupservice.model.Levelup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class LevelupService { + + @Autowired + LevelupDao dao; + + public LevelupService(LevelupDao dao) { + this.dao = dao; + } + + @Transactional + public Levelup addLevelup(Levelup levelup) { + levelup = dao.addLevelup(levelup); + return levelup; + } + + public List getAllLevelups() { + return dao.getAllLevelups(); + } + + public Levelup getLevelupById(int id) { + return dao.getLevelupById(id); + } + + @Transactional + public void updateLevelup(Levelup levelup) { + dao.updateLevelup(levelup); + } + + public void deleteLevelup(int id) { + dao.deleteLevelup(id); + } + + public List getLevelUpByCustomerId(int id){ + return dao.getLevelupByCustomerId(id); + } +} diff --git a/healthyliving-casestudy/levelup-service/src/main/resources/application.properties b/healthyliving-casestudy/levelup-service/src/main/resources/application.properties new file mode 100644 index 000000000..e69de29bb diff --git a/healthyliving-casestudy/levelup-service/src/main/resources/bootstrap.properties b/healthyliving-casestudy/levelup-service/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..e7a572c5d --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=levelup-service +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/LevelupServiceApplicationTests.java b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/LevelupServiceApplicationTests.java new file mode 100644 index 000000000..dd8d3658e --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/LevelupServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.levelupservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class LevelupServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImpleTest.java b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImpleTest.java new file mode 100644 index 000000000..1f823481f --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/dao/LevelupDaoJdbcTemplateImpleTest.java @@ -0,0 +1,75 @@ +package com.company.capstone2.levelupservice.dao; + +import com.company.capstone2.levelupservice.model.Levelup; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class LevelupDaoJdbcTemplateImpleTest { + + @Autowired + LevelupDao dao; + + @Before + public void setUp() throws Exception { + // clear the data base + List levelups = dao.getAllLevelups(); + levelups.stream().forEach(levelup -> dao.deleteLevelup(levelup.getLevelupId())); + } + + @Test + public void testAddLevelupGetAllLevelupsGetLevelupById() { + Levelup levelup1 = new Levelup(); + levelup1.setCustomerId(1); + levelup1.setPoint(10); + levelup1.setMemberDate(LocalDate.of(2000,1,1)); + + // test add + levelup1 = dao.addLevelup(levelup1); + // test getAll + List levelups = dao.getAllLevelups(); + assertEquals(levelups.size(),1); + // test get by Id + Levelup levelup2 = dao.getLevelupById(levelup1.getLevelupId()); + assertEquals(levelup1,levelup2); + levelup2 = dao.getLevelupById(-1); + } + + @Test + public void testUpdateLevelupDeleteLevelup() { + Levelup levelup1 = new Levelup(); + levelup1.setCustomerId(1); + levelup1.setPoint(10); + levelup1.setMemberDate(LocalDate.of(2000,1,1)); + + levelup1 = dao.addLevelup(levelup1); + levelup1.setPoint(9000); + dao.updateLevelup(levelup1); + assertEquals(dao.getLevelupById(levelup1.getLevelupId()).getPoint(),9000); + } + + @Test + public void testGetLevelupByCustomerId(){ + Levelup levelup1 = new Levelup(); + levelup1.setCustomerId(1); + levelup1.setPoint(10); + levelup1.setMemberDate(LocalDate.of(2000,1,1)); +List levelups = new ArrayList<>(); +levelups.add(levelup1); + + levelup1= dao.addLevelup(levelup1); + List levelup2= dao.getLevelupByCustomerId(1); + assertEquals(levelup2,levelups); + levelup2 = dao.getLevelupByCustomerId(2); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/service/LevelupServiceTest.java b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/service/LevelupServiceTest.java new file mode 100644 index 000000000..ca90c7b56 --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/test/java/com/company/capstone2/levelupservice/service/LevelupServiceTest.java @@ -0,0 +1,75 @@ +package com.company.capstone2.levelupservice.service; + +import com.company.capstone2.levelupservice.dao.LevelupDao; +import com.company.capstone2.levelupservice.model.Levelup; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class LevelupServiceTest { + + @InjectMocks + LevelupService service; + + @Mock + LevelupDao dao; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void addLevelup() { + + Levelup levelup1 = new Levelup(); + when(dao.addLevelup(levelup1)).thenReturn(levelup1); + levelup1 = service.addLevelup(levelup1); + verify(dao,times(1)).addLevelup(levelup1); + } + + @Test + public void getAllLevelups() { + List levelups = service.getAllLevelups(); + verify(dao,times(1)).getAllLevelups(); + } + + @Test + public void getLevelupById() { + Levelup levelup1 = new Levelup(); + levelup1.setLevelupId(1); + levelup1 = service.getLevelupById(1); + verify(dao,times(1)).getLevelupById(1); + } + + @Test + public void updateLevelup() { + Levelup levelup1 = new Levelup(); + service.updateLevelup(levelup1); + verify(dao,times(1)).updateLevelup(levelup1); + } + + @Test + public void deleteLevelup() { + service.deleteLevelup(1); + verify(dao,times(1)).deleteLevelup(1); + } + + @Test + public void getLevelUpByCustomerId() { + List levelups = service.getLevelUpByCustomerId(1); + verify(dao,times(1)).getLevelupByCustomerId(1); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/levelup-service/src/test/resources/application.properties b/healthyliving-casestudy/levelup-service/src/test/resources/application.properties new file mode 100644 index 000000000..8b246a44a --- /dev/null +++ b/healthyliving-casestudy/levelup-service/src/test/resources/application.properties @@ -0,0 +1,4 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/level_up_test?useSSL=false +spring.datasource.username=root +spring.datasource.password=password +spring.datasource.driver-class-name=com.mysql.jdbc.Driver diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/ProductServiceApplication.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/ProductServiceApplication.java new file mode 100644 index 000000000..cd510309a --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/ProductServiceApplication.java @@ -0,0 +1,19 @@ +package com.company.capstone2.productservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +@EnableCaching +public class ProductServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(ProductServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ControllerExceptionHandler.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ControllerExceptionHandler.java new file mode 100644 index 000000000..f0ef4e0b4 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ControllerExceptionHandler.java @@ -0,0 +1,76 @@ +package com.company.capstone2.productservice.controller; + + +import javassist.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@RestControllerAdvice +public class ControllerExceptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {com.company.capstone2.productservice.exception.NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public ResponseEntity RequestNotFoundException(NotFoundException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Not found : " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.NOT_FOUND); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ProductServiceController.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ProductServiceController.java new file mode 100644 index 000000000..b85116843 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/controller/ProductServiceController.java @@ -0,0 +1,77 @@ +package com.company.capstone2.productservice.controller; + +import com.company.capstone2.productservice.dao.ProductDao; +import com.company.capstone2.productservice.model.Product; +import com.company.capstone2.productservice.serviceLayer.ProductService; +import javassist.NotFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; + + +@RestController +@RefreshScope +@CacheConfig(cacheNames = {"products"}) +public class ProductServiceController { + @Autowired + ProductService service; + + + @CachePut(key = "#result.getProductId()") + @RequestMapping(value = "/products", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public Product addProduct(@RequestBody @Valid Product product) { + return service.addProduct(product); + } + + @RequestMapping(value = "/products", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public List getAllProducts() { + return service.getAllProducts(); + } + + @Cacheable + @RequestMapping(value = "/products/{id}", method = RequestMethod.GET) + @ResponseStatus(HttpStatus.OK) + public Product getProductById(@PathVariable int id) throws NotFoundException { + Product product= service.getProductById(id); + //return service.getProductById(id); + if (product==null){ + throw new NotFoundException("Product not found, id: "+id); + } else { + return product; + } + } + + @CacheEvict(key = "#product.getProductId()") + @RequestMapping(value = "/products/{id}", method = RequestMethod.PUT) + @ResponseStatus(HttpStatus.OK) + public void updateProduct(@RequestBody @Valid Product product,@PathVariable int id) { + System.out.println("UPDATING Product = " + product.getProductId()); + if (id!=product.getProductId()){ + throw new com.company.capstone2.productservice.exception.NotFoundException("path id should match with id: "+id); + } else { + service.updateProduct(product); + } + } + + @CacheEvict + @RequestMapping(value = "/products/{id}", method = RequestMethod.DELETE) + @ResponseStatus(HttpStatus.OK) + public void deleteProduct(@PathVariable int id) { + service.deleteProduct(id); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDao.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDao.java new file mode 100644 index 000000000..8e71db27a --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDao.java @@ -0,0 +1,23 @@ +package com.company.capstone2.productservice.dao; + +import com.company.capstone2.productservice.model.Product; + +import java.util.List; + +public interface ProductDao { + + //Method to get a product by the id + Product getProductById(int id); + + // method to get all the Products + List getAllProducts(); + + //method to add a new Product to inventory + Product addProduct(Product product); + + //Update Product + void updateProduct(Product product); + + void deleteProduct(int id); + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImpl.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImpl.java new file mode 100644 index 000000000..df14b1568 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImpl.java @@ -0,0 +1,116 @@ +package com.company.capstone2.productservice.dao; + +import com.company.capstone2.productservice.model.Product; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + + +@Repository +public class ProductDaoJdbcTemplateImpl implements ProductDao { + private static final String INSERT_PRODUCT_SQL = + "insert into product(" + + "product_name," + + " product_description," + + "list_price," + + " unit_cost" + + ")" + + "values(?,?,?,?)"; + private static final String SELECT_PRODUCT_SQL = + "select * from product where product_id = ?"; + + private static final String SELECT_ALL_PRODUCTS_SQL = + "select * from product"; + + private static final String DELETE_PRODUCT_SQL = + "delete from product where product_id = ?"; + + private static final String UPDATE_PRODUCT_SQL = + "update product set " + + "product_name = ?," + + " product_description = ?," + + " list_price = ?," + + "unit_cost = ?" + + " where product_id = ?"; + + private JdbcTemplate jdbcTemplate; + + @Autowired + public ProductDaoJdbcTemplateImpl(JdbcTemplate jdbcTemplate) { + + this.jdbcTemplate = jdbcTemplate; + } + + @Override + @Transactional + public Product addProduct(Product product) { + jdbcTemplate.update(INSERT_PRODUCT_SQL, + product.getProductName(), + product.getProductDescription(), + product.getListPrice(), + product.getUnitCost()); + + int id = jdbcTemplate.queryForObject("select last_insert_id()", Integer.class); + product.setProductId(id); + return product; + } + + private Product mapRowToProduct(ResultSet rs, int rowNum) throws SQLException { + Product product = new Product(); + product.setProductId(rs.getInt("product_id")); + product.setProductName(rs.getString("product_name")); + product.setProductDescription(rs.getString("product_description")); + product.setListPrice(rs.getBigDecimal("list_price")); + product.setUnitCost(rs.getBigDecimal("unit_cost")); + return product; + } + + public Product getProductById(int id) { + try { + return jdbcTemplate + .queryForObject(SELECT_PRODUCT_SQL, this::mapRowToProduct, id); + } catch (EmptyResultDataAccessException e) { + //if nothing is returned just catch the exception + //and return null + return null; + } + } + + + @Override + public List getAllProducts() { + + return jdbcTemplate.query(SELECT_ALL_PRODUCTS_SQL, this::mapRowToProduct); + } + + + + + @Override + public void updateProduct(Product product) { + jdbcTemplate.update(UPDATE_PRODUCT_SQL, + product.getProductName(), + product.getProductDescription(), + product.getListPrice(), + product.getUnitCost(), + product.getProductId()); + } + + @Override + public void deleteProduct(int id) { + jdbcTemplate.update(DELETE_PRODUCT_SQL, id); + + } + + + +} + + + diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/exception/NotFoundException.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/exception/NotFoundException.java new file mode 100644 index 000000000..09ffe616d --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/exception/NotFoundException.java @@ -0,0 +1,7 @@ +package com.company.capstone2.productservice.exception; + +public class NotFoundException extends RuntimeException{ + public NotFoundException(String message) { + super(message); + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Inventory.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Inventory.java new file mode 100644 index 000000000..bfef5ef44 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Inventory.java @@ -0,0 +1,48 @@ +package com.company.capstone2.productservice.model; + +import java.util.Objects; + +public class Inventory { + private int inventoryId; + private int productId; + private int quantity; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Inventory inventory = (Inventory) o; + return inventoryId == inventory.inventoryId && + productId == inventory.productId && + quantity == inventory.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(inventoryId, productId, quantity); + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Invoice.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Invoice.java new file mode 100644 index 000000000..3c0c6db34 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Invoice.java @@ -0,0 +1,49 @@ +package com.company.capstone2.productservice.model; + +import java.time.LocalDate; +import java.util.Objects; + +public class Invoice { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Invoice invoice = (Invoice) o; + return invoiceId == invoice.invoiceId && + customerId == invoice.customerId && + purchaseDate.equals(invoice.purchaseDate); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate); + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/InvoiceItem.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/InvoiceItem.java new file mode 100644 index 000000000..e10071fa0 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/InvoiceItem.java @@ -0,0 +1,69 @@ +package com.company.capstone2.productservice.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class InvoiceItem { + private int invoiceItemId; + private int invoiceId; + private int inventoryId; + private int quantity; + private BigDecimal unitPrice; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceItem that = (InvoiceItem) o; + return invoiceItemId == that.invoiceItemId && + invoiceId == that.invoiceId && + inventoryId == that.inventoryId && + quantity == that.quantity && + unitPrice.equals(that.unitPrice); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceItemId, invoiceId, inventoryId, quantity, unitPrice); + } + + public int getInvoiceItemId() { + return invoiceItemId; + } + + public void setInvoiceItemId(int invoiceItemId) { + this.invoiceItemId = invoiceItemId; + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Product.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Product.java new file mode 100644 index 000000000..185d5af62 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/model/Product.java @@ -0,0 +1,78 @@ +package com.company.capstone2.productservice.model; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Objects; + +public class Product { + private int productId; + @NotEmpty(message = "product name missing") + private String productName; + @NotEmpty(message = "product name missing") + private String productDescription; + @NotNull(message = "price??") + private BigDecimal listPrice; + @NotNull(message = "cost??") + private BigDecimal unitCost; + + public Product() { + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public BigDecimal getListPrice() { + return listPrice; + } + + public void setListPrice(BigDecimal listPrice) { + this.listPrice = listPrice; + } + + public BigDecimal getUnitCost() { + return unitCost; + } + + public void setUnitCost(BigDecimal unitCost) { + this.unitCost = unitCost; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Product product = (Product) o; + return getProductId() == product.getProductId() && + getProductName().equals(product.getProductName()) && + getProductDescription().equals(product.getProductDescription()) && + getListPrice().equals(product.getListPrice()) && + getUnitCost().equals(product.getUnitCost()); + } + + @Override + public int hashCode() { + return Objects.hash(getProductId(), getProductName(), getProductDescription(), getListPrice(), getUnitCost()); + } +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/serviceLayer/ProductService.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/serviceLayer/ProductService.java new file mode 100644 index 000000000..e844b2151 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/serviceLayer/ProductService.java @@ -0,0 +1,53 @@ +package com.company.capstone2.productservice.serviceLayer; + +import com.company.capstone2.productservice.dao.ProductDao; +import com.company.capstone2.productservice.model.Product; +import com.company.capstone2.productservice.util.feign.InventoryServiceClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Component +public class ProductService { + ProductDao productDao; + + + @Autowired + InventoryServiceClient inventoryServiceClient; + + public ProductService(ProductDao productDao, + InventoryServiceClient inventoryServiceClient) { + this.productDao = productDao; + this.inventoryServiceClient = inventoryServiceClient; + + } + + @Transactional // must commit entire code block or nothing + public Product addProduct(Product product) { + return productDao.addProduct(product); + + } + + public Product getProductById(int id) { + return productDao.getProductById(id); + } + + public List getAllProducts() { + return productDao.getAllProducts(); + } + + @Transactional + public void updateProduct(Product product) { + productDao.updateProduct(product); + } + + @Transactional + public void deleteProduct(int id) { + inventoryServiceClient.deleteInventoryByProductId(id); + productDao.deleteProduct(id); + } + + +} diff --git a/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/util/feign/InventoryServiceClient.java b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/util/feign/InventoryServiceClient.java new file mode 100644 index 000000000..927bcf461 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/main/java/com/company/capstone2/productservice/util/feign/InventoryServiceClient.java @@ -0,0 +1,18 @@ +package com.company.capstone2.productservice.util.feign; + +import com.company.capstone2.productservice.model.Inventory; +import com.company.capstone2.productservice.model.Product; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient("inventory-service") +public interface InventoryServiceClient { + + @RequestMapping(method = RequestMethod.DELETE,value = "/inventory/product/{id}") + public void deleteInventoryByProductId(@PathVariable int id); +} diff --git a/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/ProductServiceApplicationTests.java b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/ProductServiceApplicationTests.java new file mode 100644 index 000000000..aa027de33 --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/ProductServiceApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.productservice; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProductServiceApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImplTest.java b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImplTest.java new file mode 100644 index 000000000..d77a5586b --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/dao/ProductDaoJdbcTemplateImplTest.java @@ -0,0 +1,91 @@ +package com.company.capstone2.productservice.dao; + +import com.company.capstone2.productservice.model.Product; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.math.BigDecimal; +import java.util.List; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ProductDaoJdbcTemplateImplTest { + @Autowired + ProductDao productDao; + + @Before + public void setUp() throws Exception { + List products = productDao.getAllProducts(); + for (Product pro : products) { + productDao.deleteProduct(pro.getProductId()); + } + } + @Test + public void addGetDeleteProduct() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + + + product = productDao.addProduct(product); + + Product product1 = productDao.getProductById(product.getProductId()); + assertEquals(product1, product); + + productDao.deleteProduct(product.getProductId()); + product1 = productDao.getProductById(product.getProductId()); + //assertNull(console1); + } + + @Test + public void getAllProducts() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + product = productDao.addProduct(product); + + product = new Product(); + product.setProductName("Model2"); + product.setProductDescription("Manufacturer2"); + product.setListPrice(BigDecimal.valueOf(100.99)); + product.setUnitCost(BigDecimal.valueOf(50.99)); + product = productDao.addProduct(product); + + List pList = productDao.getAllProducts(); + assertEquals(2, pList.size()); + } + + + @Test + public void updateProduct() { + Product product = new Product(); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer1"); + product.setListPrice(BigDecimal.valueOf(125.99)); + product.setUnitCost(BigDecimal.valueOf(25.99)); + + product = productDao.addProduct(product); + product.setProductName("Model1"); + product.setProductDescription("Manufacturer2"); + product.setListPrice(BigDecimal.valueOf(250.99)); + product.setUnitCost(BigDecimal.valueOf(20.99)); + + productDao.updateProduct(product); + + Product product1 = productDao.getProductById(product.getProductId()); + assertEquals(product1,product); + + } + + +} \ No newline at end of file diff --git a/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/serviceLayer/ProductServiceTest.java b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/serviceLayer/ProductServiceTest.java new file mode 100644 index 000000000..b2e49fe8b --- /dev/null +++ b/healthyliving-casestudy/product-service/src/test/java/com/company/capstone2/productservice/serviceLayer/ProductServiceTest.java @@ -0,0 +1,85 @@ +package com.company.capstone2.productservice.serviceLayer; + +import com.company.capstone2.productservice.dao.ProductDao; +import com.company.capstone2.productservice.model.Inventory; +import com.company.capstone2.productservice.model.Invoice; +import com.company.capstone2.productservice.model.InvoiceItem; +import com.company.capstone2.productservice.model.Product; +import com.company.capstone2.productservice.util.feign.InventoryServiceClient; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class ProductServiceTest { + @InjectMocks + ProductService service; + @Mock + ProductDao dao; + + @Mock + InventoryServiceClient inventoryClient; + + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testAddProduct() { + Product product1 = new Product(); + product1.setProductName("Books"); + product1.setProductDescription("Hard Cover"); + product1.setListPrice(BigDecimal.valueOf(120.50)); + product1.setUnitCost(BigDecimal.valueOf(20.50)); + when(dao.addProduct(product1)).thenReturn(product1); + product1 = service.addProduct(product1); + verify(dao, times(1)).addProduct(product1); + + } + + @Test + public void testGetAllProducts() { + List products = new ArrayList<>(); + when(dao.getAllProducts()).thenReturn(products); + List products1 = service.getAllProducts(); + verify(dao, times(1)).getAllProducts(); + } + + @Test + public void testGetProductById() { + Product product1 = new Product(); + when(dao.getProductById(1)).thenReturn(product1); + product1 = service.getProductById(1); + verify(dao, times(1)).getProductById(1); + } + + @Test + public void updateProduct() { + Product product1 = new Product(); + service.updateProduct(product1); + verify(dao, times(1)).updateProduct(product1); + } + + @Test + public void deleteProduct() { + service.deleteProduct(1); + verify(dao, times(1)).deleteProduct(1); + } + +} \ No newline at end of file diff --git a/healthyliving-casestudy/retail-api/.gitignore b/healthyliving-casestudy/retail-api/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/retail-api/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/retail-api/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/retail-api/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/retail-api/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/retail-api/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/retail-api/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 zcmbTe1CV9Qwl>;j+wQV$+qSXFw%KK)%eHN!%U!l@+x~l>b1vR}@9y}|TM-#CBjy|< zb7YRpp)Z$$Gzci_H%LgxZ{NNV{%Qa9gZlF*E2<($D=8;N5Asbx8se{Sz5)O13x)rc z5cR(k$_mO!iis+#(8-D=#R@|AF(8UQ`L7dVNSKQ%v^P|1A%aF~Lye$@HcO@sMYOb3 zl`5!ThJ1xSJwsg7hVYFtE5vS^5UE0$iDGCS{}RO;R#3y#{w-1hVSg*f1)7^vfkxrm!!N|oTR0Hj?N~IbVk+yC#NK} z5myv()UMzV^!zkX@O=Yf!(Z_bF7}W>k*U4@--&RH0tHiHY0IpeezqrF#@8{E$9d=- z7^kT=1Bl;(Q0k{*_vzz1Et{+*lbz%mkIOw(UA8)EE-Pkp{JtJhe@VXQ8sPNTn$Vkj zicVp)sV%0omhsj;NCmI0l8zzAipDV#tp(Jr7p_BlL$}Pys_SoljztS%G-Wg+t z&Q#=<03Hoga0R1&L!B);r{Cf~b$G5p#@?R-NNXMS8@cTWE^7V!?ixz(Ag>lld;>COenWc$RZ61W+pOW0wh>sN{~j; zCBj!2nn|4~COwSgXHFH?BDr8pK323zvmDK-84ESq25b;Tg%9(%NneBcs3;r znZpzntG%E^XsSh|md^r-k0Oen5qE@awGLfpg;8P@a-s<{Fwf?w3WapWe|b-CQkqlo z46GmTdPtkGYdI$e(d9Zl=?TU&uv94VR`g|=7xB2Ur%=6id&R2 z4e@fP7`y58O2sl;YBCQFu7>0(lVt-r$9|06Q5V>4=>ycnT}Fyz#9p;3?86`ZD23@7 z7n&`!LXzjxyg*P4Tz`>WVvpU9-<5MDSDcb1 zZaUyN@7mKLEPGS$^odZcW=GLe?3E$JsMR0kcL4#Z=b4P94Q#7O%_60{h>0D(6P*VH z3}>$stt2s!)w4C4 z{zsj!EyQm$2ARSHiRm49r7u)59ZyE}ZznFE7AdF&O&!-&(y=?-7$LWcn4L_Yj%w`qzwz`cLqPRem1zN; z)r)07;JFTnPODe09Z)SF5@^uRuGP~Mjil??oWmJTaCb;yx4?T?d**;AW!pOC^@GnT zaY`WF609J>fG+h?5&#}OD1<%&;_lzM2vw70FNwn2U`-jMH7bJxdQM#6+dPNiiRFGT z7zc{F6bo_V%NILyM?rBnNsH2>Bx~zj)pJ}*FJxW^DC2NLlOI~18Mk`7sl=t`)To6Ui zu4GK6KJx^6Ms4PP?jTn~jW6TOFLl3e2-q&ftT=31P1~a1%7=1XB z+H~<1dh6%L)PbBmtsAr38>m~)?k3}<->1Bs+;227M@?!S+%X&M49o_e)X8|vZiLVa z;zWb1gYokP;Sbao^qD+2ZD_kUn=m=d{Q9_kpGxcbdQ0d5<_OZJ!bZJcmgBRf z!Cdh`qQ_1NLhCulgn{V`C%|wLE8E6vq1Ogm`wb;7Dj+xpwik~?kEzDT$LS?#%!@_{ zhOoXOC95lVcQU^pK5x$Da$TscVXo19Pps zA!(Mk>N|tskqBn=a#aDC4K%jV#+qI$$dPOK6;fPO)0$0j$`OV+mWhE+TqJoF5dgA=TH-}5DH_)H_ zh?b(tUu@65G-O)1ah%|CsU8>cLEy0!Y~#ut#Q|UT92MZok0b4V1INUL-)Dvvq`RZ4 zTU)YVX^r%_lXpn_cwv`H=y49?!m{krF3Rh7O z^z7l4D<+^7E?ji(L5CptsPGttD+Z7{N6c-`0V^lfFjsdO{aJMFfLG9+wClt<=Rj&G zf6NgsPSKMrK6@Kvgarmx{&S48uc+ZLIvk0fbH}q-HQ4FSR33$+%FvNEusl6xin!?e z@rrWUP5U?MbBDeYSO~L;S$hjxISwLr&0BOSd?fOyeCWm6hD~)|_9#jo+PVbAY3wzf zcZS*2pX+8EHD~LdAl>sA*P>`g>>+&B{l94LNLp#KmC)t6`EPhL95s&MMph46Sk^9x%B$RK!2MI--j8nvN31MNLAJBsG`+WMvo1}xpaoq z%+W95_I`J1Pr&Xj`=)eN9!Yt?LWKs3-`7nf)`G6#6#f+=JK!v943*F&veRQxKy-dm(VcnmA?K_l~ zfDWPYl6hhN?17d~^6Zuo@>Hswhq@HrQ)sb7KK^TRhaM2f&td)$6zOn7we@ zd)x4-`?!qzTGDNS-E(^mjM%d46n>vPeMa;%7IJDT(nC)T+WM5F-M$|p(78W!^ck6)A_!6|1o!D97tw8k|5@0(!8W&q9*ovYl)afk z2mxnniCOSh7yHcSoEu8k`i15#oOi^O>uO_oMpT=KQx4Ou{&C4vqZG}YD0q!{RX=`#5wmcHT=hqW3;Yvg5Y^^ ziVunz9V)>2&b^rI{ssTPx26OxTuCw|+{tt_M0TqD?Bg7cWN4 z%UH{38(EW1L^!b~rtWl)#i}=8IUa_oU8**_UEIw+SYMekH;Epx*SA7Hf!EN&t!)zuUca@_Q^zW(u_iK_ zrSw{nva4E6-Npy9?lHAa;b(O z`I74A{jNEXj(#r|eS^Vfj-I!aHv{fEkzv4=F%z0m;3^PXa27k0Hq#RN@J7TwQT4u7 ztisbp3w6#k!RC~!5g-RyjpTth$lf!5HIY_5pfZ8k#q!=q*n>~@93dD|V>=GvH^`zn zVNwT@LfA8^4rpWz%FqcmzX2qEAhQ|_#u}md1$6G9qD%FXLw;fWWvqudd_m+PzI~g3 z`#WPz`M1XUKfT3&T4~XkUie-C#E`GN#P~S(Zx9%CY?EC?KP5KNK`aLlI1;pJvq@d z&0wI|dx##t6Gut6%Y9c-L|+kMov(7Oay++QemvI`JOle{8iE|2kZb=4x%a32?>-B~ z-%W$0t&=mr+WJ3o8d(|^209BapD`@6IMLbcBlWZlrr*Yrn^uRC1(}BGNr!ct z>xzEMV(&;ExHj5cce`pk%6!Xu=)QWtx2gfrAkJY@AZlHWiEe%^_}mdzvs(6>k7$e; ze4i;rv$_Z$K>1Yo9f4&Jbx80?@X!+S{&QwA3j#sAA4U4#v zwZqJ8%l~t7V+~BT%j4Bwga#Aq0&#rBl6p$QFqS{DalLd~MNR8Fru+cdoQ78Dl^K}@l#pmH1-e3?_0tZKdj@d2qu z_{-B11*iuywLJgGUUxI|aen-((KcAZZdu8685Zi1b(#@_pmyAwTr?}#O7zNB7U6P3 zD=_g*ZqJkg_9_X3lStTA-ENl1r>Q?p$X{6wU6~e7OKNIX_l9T# z>XS?PlNEM>P&ycY3sbivwJYAqbQH^)z@PobVRER*Ud*bUi-hjADId`5WqlZ&o+^x= z-Lf_80rC9>tqFBF%x#`o>69>D5f5Kp->>YPi5ArvgDwV#I6!UoP_F0YtfKoF2YduA zCU!1`EB5;r68;WyeL-;(1K2!9sP)at9C?$hhy(dfKKBf}>skPqvcRl>UTAB05SRW! z;`}sPVFFZ4I%YrPEtEsF(|F8gnfGkXI-2DLsj4_>%$_ZX8zVPrO=_$7412)Mr9BH{ zwKD;e13jP2XK&EpbhD-|`T~aI`N(*}*@yeDUr^;-J_`fl*NTSNbupyHLxMxjwmbuw zt3@H|(hvcRldE+OHGL1Y;jtBN76Ioxm@UF1K}DPbgzf_a{`ohXp_u4=ps@x-6-ZT>F z)dU`Jpu~Xn&Qkq2kg%VsM?mKC)ArP5c%r8m4aLqimgTK$atIxt^b8lDVPEGDOJu!) z%rvASo5|v`u_}vleP#wyu1$L5Ta%9YOyS5;w2I!UG&nG0t2YL|DWxr#T7P#Ww8MXDg;-gr`x1?|V`wy&0vm z=hqozzA!zqjOm~*DSI9jk8(9nc4^PL6VOS$?&^!o^Td8z0|eU$9x8s{8H!9zK|)NO zqvK*dKfzG^Dy^vkZU|p9c+uVV3>esY)8SU1v4o{dZ+dPP$OT@XCB&@GJ<5U&$Pw#iQ9qzuc`I_%uT@%-v zLf|?9w=mc;b0G%%{o==Z7AIn{nHk`>(!e(QG%(DN75xfc#H&S)DzSFB6`J(cH!@mX3mv_!BJv?ByIN%r-i{Y zBJU)}Vhu)6oGoQjT2tw&tt4n=9=S*nQV`D_MSw7V8u1-$TE>F-R6Vo0giKnEc4NYZ zAk2$+Tba~}N0wG{$_7eaoCeb*Ubc0 zq~id50^$U>WZjmcnIgsDione)f+T)0ID$xtgM zpGZXmVez0DN!)ioW1E45{!`G9^Y1P1oXhP^rc@c?o+c$^Kj_bn(Uo1H2$|g7=92v- z%Syv9Vo3VcibvH)b78USOTwIh{3%;3skO_htlfS?Cluwe`p&TMwo_WK6Z3Tz#nOoy z_E17(!pJ>`C2KECOo38F1uP0hqBr>%E=LCCCG{j6$b?;r?Fd$4@V-qjEzgWvzbQN%_nlBg?Ly`x-BzO2Nnd1 zuO|li(oo^Rubh?@$q8RVYn*aLnlWO_dhx8y(qzXN6~j>}-^Cuq4>=d|I>vhcjzhSO zU`lu_UZ?JaNs1nH$I1Ww+NJI32^qUikAUfz&k!gM&E_L=e_9}!<(?BfH~aCmI&hfzHi1~ zraRkci>zMPLkad=A&NEnVtQQ#YO8Xh&K*;6pMm$ap_38m;XQej5zEqUr`HdP&cf0i z5DX_c86@15jlm*F}u-+a*^v%u_hpzwN2eT66Zj_1w)UdPz*jI|fJb#kSD_8Q-7q9gf}zNu2h=q{)O*XH8FU)l|m;I;rV^QpXRvMJ|7% zWKTBX*cn`VY6k>mS#cq!uNw7H=GW3?wM$8@odjh$ynPiV7=Ownp}-|fhULZ)5{Z!Q z20oT!6BZTK;-zh=i~RQ$Jw>BTA=T(J)WdnTObDM#61lUm>IFRy@QJ3RBZr)A9CN!T z4k7%)I4yZ-0_n5d083t!=YcpSJ}M5E8`{uIs3L0lIaQws1l2}+w2(}hW&evDlMnC!WV?9U^YXF}!N*iyBGyCyJ<(2(Ca<>!$rID`( zR?V~-53&$6%DhW=)Hbd-oetTXJ-&XykowOx61}1f`V?LF=n8Nb-RLFGqheS7zNM_0 z1ozNap9J4GIM1CHj-%chrCdqPlP307wfrr^=XciOqn?YPL1|ozZ#LNj8QoCtAzY^q z7&b^^K&?fNSWD@*`&I+`l9 zP2SlD0IO?MK60nbucIQWgz85l#+*<{*SKk1K~|x{ux+hn=SvE_XE`oFlr7$oHt-&7 zP{+x)*y}Hnt?WKs_Ymf(J^aoe2(wsMMRPu>Pg8H#x|zQ_=(G5&ieVhvjEXHg1zY?U zW-hcH!DJPr+6Xnt)MslitmnHN(Kgs4)Y`PFcV0Qvemj;GG`kf<>?p})@kd9DA7dqs zNtGRKVr0%x#Yo*lXN+vT;TC{MR}}4JvUHJHDLd-g88unUj1(#7CM<%r!Z1Ve>DD)FneZ| z8Q0yI@i4asJaJ^ge%JPl>zC3+UZ;UDUr7JvUYNMf=M2t{It56OW1nw#K8%sXdX$Yg zpw3T=n}Om?j3-7lu)^XfBQkoaZ(qF0D=Aw&D%-bsox~`8Y|!whzpd5JZ{dmM^A5)M zOwWEM>bj}~885z9bo{kWFA0H(hv(vL$G2;pF$@_M%DSH#g%V*R(>;7Z7eKX&AQv1~ z+lKq=488TbTwA!VtgSHwduwAkGycunrg}>6oiX~;Kv@cZlz=E}POn%BWt{EEd;*GV zmc%PiT~k<(TA`J$#6HVg2HzF6Iw5w9{C63y`Y7?OB$WsC$~6WMm3`UHaWRZLN3nKiV# zE;iiu_)wTr7ZiELH$M^!i5eC9aRU#-RYZhCl1z_aNs@f`tD4A^$xd7I_ijCgI!$+| zsulIT$KB&PZ}T-G;Ibh@UPafvOc-=p7{H-~P)s{3M+;PmXe7}}&Mn+9WT#(Jmt5DW%73OBA$tC#Ug!j1BR~=Xbnaz4hGq zUOjC*z3mKNbrJm1Q!Ft^5{Nd54Q-O7<;n})TTQeLDY3C}RBGwhy*&wgnl8dB4lwkG zBX6Xn#hn|!v7fp@@tj9mUPrdD!9B;tJh8-$aE^t26n_<4^=u~s_MfbD?lHnSd^FGGL6the7a|AbltRGhfET*X;P7=AL?WPjBtt;3IXgUHLFMRBz(aWW_ zZ?%%SEPFu&+O?{JgTNB6^5nR@)rL6DFqK$KS$bvE#&hrPs>sYsW=?XzOyD6ixglJ8rdt{P8 zPAa*+qKt(%ju&jDkbB6x7aE(={xIb*&l=GF(yEnWPj)><_8U5m#gQIIa@l49W_=Qn^RCsYqlEy6Om%!&e~6mCAfDgeXe3aYpHQAA!N|kmIW~Rk}+p6B2U5@|1@7iVbm5&e7E3;c9q@XQlb^JS(gmJl%j9!N|eNQ$*OZf`3!;raRLJ z;X-h>nvB=S?mG!-VH{65kwX-UwNRMQB9S3ZRf`hL z#WR)+rn4C(AG(T*FU}`&UJOU4#wT&oDyZfHP^s9#>V@ens??pxuu-6RCk=Er`DF)X z>yH=P9RtrtY;2|Zg3Tnx3Vb!(lRLedVRmK##_#;Kjnlwq)eTbsY8|D{@Pjn_=kGYO zJq0T<_b;aB37{U`5g6OSG=>|pkj&PohM%*O#>kCPGK2{0*=m(-gKBEOh`fFa6*~Z! zVxw@7BS%e?cV^8{a`Ys4;w=tH4&0izFxgqjE#}UfsE^?w)cYEQjlU|uuv6{>nFTp| zNLjRRT1{g{?U2b6C^w{!s+LQ(n}FfQPDfYPsNV?KH_1HgscqG7z&n3Bh|xNYW4i5i zT4Uv-&mXciu3ej=+4X9h2uBW9o(SF*N~%4%=g|48R-~N32QNq!*{M4~Y!cS4+N=Zr z?32_`YpAeg5&r_hdhJkI4|i(-&BxCKru`zm9`v+CN8p3r9P_RHfr{U$H~RddyZKw{ zR?g5i>ad^Ge&h?LHlP7l%4uvOv_n&WGc$vhn}2d!xIWrPV|%x#2Q-cCbQqQ|-yoTe z_C(P))5e*WtmpB`Fa~#b*yl#vL4D_h;CidEbI9tsE%+{-4ZLKh#9^{mvY24#u}S6oiUr8b0xLYaga!(Fe7Dxi}v6 z%5xNDa~i%tN`Cy_6jbk@aMaY(xO2#vWZh9U?mrNrLs5-*n>04(-Dlp%6AXsy;f|a+ z^g~X2LhLA>xy(8aNL9U2wr=ec%;J2hEyOkL*D%t4cNg7WZF@m?kF5YGvCy`L5jus# zGP8@iGTY|ov#t&F$%gkWDoMR7v*UezIWMeg$C2~WE9*5%}$3!eFiFJ?hypfIA(PQT@=B|^Ipcu z{9cM3?rPF|gM~{G)j*af1hm+l92W7HRpQ*hSMDbh(auwr}VBG7`ldp>`FZ^amvau zTa~Y7%tH@>|BB6kSRGiWZFK?MIzxEHKGz#P!>rB-90Q_UsZ=uW6aTzxY{MPP@1rw- z&RP^Ld%HTo($y?6*aNMz8h&E?_PiO{jq%u4kr#*uN&Q+Yg1Rn831U4A6u#XOzaSL4 zrcM+0v@%On8N*Mj!)&IzXW6A80bUK&3w|z06cP!UD^?_rb_(L-u$m+#%YilEjkrlxthGCLQ@Q?J!p?ggv~0 z!qipxy&`w48T0(Elsz<^hp_^#1O1cNJ1UG=61Nc=)rlRo_P6v&&h??Qvv$ifC3oJh zo)ZZhU5enAqU%YB>+FU!1vW)i$m-Z%w!c&92M1?))n4z1a#4-FufZ$DatpJ^q)_Zif z;Br{HmZ|8LYRTi`#?TUfd;#>c4@2qM5_(H+Clt@kkQT+kx78KACyvY)?^zhyuN_Z& z-*9_o_f3IC2lX^(aLeqv#>qnelb6_jk+lgQh;TN>+6AU9*6O2h_*=74m;xSPD1^C9 zE0#!+B;utJ@8P6_DKTQ9kNOf`C*Jj0QAzsngKMQVDUsp=k~hd@wt}f{@$O*xI!a?p z6Gti>uE}IKAaQwKHRb0DjmhaF#+{9*=*^0)M-~6lPS-kCI#RFGJ-GyaQ+rhbmhQef zwco))WNA1LFr|J3Qsp4ra=_j?Y%b{JWMX6Zr`$;*V`l`g7P0sP?Y1yOY;e0Sb!AOW0Em=U8&i8EKxTd$dX6=^Iq5ZC%zMT5Jjj%0_ zbf|}I=pWjBKAx7wY<4-4o&E6vVStcNlT?I18f5TYP9!s|5yQ_C!MNnRyDt7~u~^VS@kKd}Zwc~? z=_;2}`Zl^xl3f?ce8$}g^V)`b8Pz88=9FwYuK_x%R?sbAF-dw`*@wokEC3mp0Id>P z>OpMGxtx!um8@gW2#5|)RHpRez+)}_p;`+|*m&3&qy{b@X>uphcgAVgWy`?Nc|NlH z75_k2%3h7Fy~EkO{vBMuzV7lj4B}*1Cj(Ew7oltspA6`d69P`q#Y+rHr5-m5&be&( zS1GcP5u#aM9V{fUQTfHSYU`kW&Wsxeg;S*{H_CdZ$?N>S$JPv!_6T(NqYPaS{yp0H7F~7vy#>UHJr^lV?=^vt4?8$v8vkI-1eJ4{iZ!7D5A zg_!ZxZV+9Wx5EIZ1%rbg8`-m|=>knmTE1cpaBVew_iZpC1>d>qd3`b6<(-)mtJBmd zjuq-qIxyKvIs!w4$qpl{0cp^-oq<=-IDEYV7{pvfBM7tU+ zfX3fc+VGtqjPIIx`^I0i>*L-NfY=gFS+|sC75Cg;2<)!Y`&p&-AxfOHVADHSv1?7t zlOKyXxi|7HdwG5s4T0))dWudvz8SZpxd<{z&rT<34l}XaaP86x)Q=2u5}1@Sgc41D z2gF)|aD7}UVy)bnm788oYp}Es!?|j73=tU<_+A4s5&it~_K4 z;^$i0Vnz8y&I!abOkzN|Vz;kUTya#Wi07>}Xf^7joZMiHH3Mdy@e_7t?l8^A!r#jTBau^wn#{|!tTg=w01EQUKJOca!I zV*>St2399#)bMF++1qS8T2iO3^oA`i^Px*i)T_=j=H^Kp4$Zao(>Y)kpZ=l#dSgcUqY=7QbGz9mP9lHnII8vl?yY9rU+i%X)-j0&-- zrtaJsbkQ$;DXyIqDqqq)LIJQ!`MIsI;goVbW}73clAjN;1Rtp7%{67uAfFNe_hyk= zn=8Q1x*zHR?txU)x9$nQu~nq7{Gbh7?tbgJ>i8%QX3Y8%T{^58W^{}(!9oPOM+zF3 zW`%<~q@W}9hoes56uZnNdLkgtcRqPQ%W8>o7mS(j5Sq_nN=b0A`Hr%13P{uvH?25L zMfC&Z0!{JBGiKoVwcIhbbx{I35o}twdI_ckbs%1%AQ(Tdb~Xw+sXAYcOoH_9WS(yM z2dIzNLy4D%le8Fxa31fd;5SuW?ERAsagZVEo^i};yjBhbxy9&*XChFtOPV8G77{8! zlYemh2vp7aBDMGT;YO#=YltE~(Qv~e7c=6$VKOxHwvrehtq>n|w}vY*YvXB%a58}n zqEBR4zueP@A~uQ2x~W-{o3|-xS@o>Ad@W99)ya--dRx;TZLL?5E(xstg(6SwDIpL5 zMZ)+)+&(hYL(--dxIKB*#v4mDq=0ve zNU~~jk426bXlS8%lcqsvuqbpgn zbFgxap;17;@xVh+Y~9@+-lX@LQv^Mw=yCM&2!%VCfZsiwN>DI=O?vHupbv9!4d*>K zcj@a5vqjcjpwkm@!2dxzzJGQ7#ujW(IndUuYC)i3N2<*doRGX8a$bSbyRO#0rA zUpFyEGx4S9$TKuP9BybRtjcAn$bGH-9>e(V{pKYPM3waYrihBCQf+UmIC#E=9v?or z_7*yzZfT|)8R6>s(lv6uzosT%WoR`bQIv(?llcH2Bd@26?zU%r1K25qscRrE1 z9TIIP_?`78@uJ{%I|_K;*syVinV;pCW!+zY-!^#n{3It^6EKw{~WIA0pf_hVzEZy zFzE=d-NC#mge{4Fn}we02-%Zh$JHKpXX3qF<#8__*I}+)Npxm?26dgldWyCmtwr9c zOXI|P0zCzn8M_Auv*h9;2lG}x*E|u2!*-s}moqS%Z`?O$<0amJG9n`dOV4**mypG- zE}In1pOQ|;@@Jm;I#m}jkQegIXag4K%J;C7<@R2X8IdsCNqrbsaUZZRT|#6=N!~H} zlc2hPngy9r+Gm_%tr9V&HetvI#QwUBKV&6NC~PK>HNQ3@fHz;J&rR7XB>sWkXKp%A ziLlogA`I*$Z7KzLaX^H_j)6R|9Q>IHc? z{s0MsOW>%xW|JW=RUxY@@0!toq`QXa=`j;)o2iDBiDZ7c4Bc>BiDTw+zk}Jm&vvH8qX$R`M6Owo>m%n`eizBf!&9X6 z)f{GpMak@NWF+HNg*t#H5yift5@QhoYgT7)jxvl&O=U54Z>FxT5prvlDER}AwrK4Q z*&JP9^k332OxC$(E6^H`#zw|K#cpwy0i*+!z{T23;dqUKbjP!-r*@_!sp+Uec@^f0 zIJMjqhp?A#YoX5EB%iWu;mxJ1&W6Nb4QQ@GElqNjFNRc*=@aGc$PHdoUptckkoOZC zk@c9i+WVnDI=GZ1?lKjobDl%nY2vW~d)eS6Lch&J zDi~}*fzj9#<%xg<5z-4(c}V4*pj~1z2z60gZc}sAmys^yvobWz)DKDGWuVpp^4-(!2Nn7 z3pO})bO)({KboXlQA>3PIlg@Ie$a=G;MzVeft@OMcKEjIr=?;=G0AH?dE_DcNo%n$_bFjqQ8GjeIyJP^NkX~7e&@+PqnU-c3@ABap z=}IZvC0N{@fMDOpatOp*LZ7J6Hz@XnJzD!Yh|S8p2O($2>A4hbpW{8?#WM`uJG>?} zwkDF3dimqejl$3uYoE7&pr5^f4QP-5TvJ;5^M?ZeJM8ywZ#Dm`kR)tpYieQU;t2S! z05~aeOBqKMb+`vZ2zfR*2(&z`Y1VROAcR(^Q7ZyYlFCLHSrTOQm;pnhf3Y@WW#gC1 z7b$_W*ia0@2grK??$pMHK>a$;J)xIx&fALD4)w=xlT=EzrwD!)1g$2q zy8GQ+r8N@?^_tuCKVi*q_G*!#NxxY#hpaV~hF} zF1xXy#XS|q#)`SMAA|46+UnJZ__lETDwy}uecTSfz69@YO)u&QORO~F^>^^j-6q?V z-WK*o?XSw~ukjoIT9p6$6*OStr`=+;HrF#)p>*>e|gy0D9G z#TN(VSC11^F}H#?^|^ona|%;xCC!~H3~+a>vjyRC5MPGxFqkj6 zttv9I_fv+5$vWl2r8+pXP&^yudvLxP44;9XzUr&a$&`?VNhU^$J z`3m68BAuA?ia*IF%Hs)@>xre4W0YoB^(X8RwlZ?pKR)rvGX?u&K`kb8XBs^pe}2v* z_NS*z7;4%Be$ts_emapc#zKjVMEqn8;aCX=dISG3zvJP>l4zHdpUwARLixQSFzLZ0 z$$Q+9fAnVjA?7PqANPiH*XH~VhrVfW11#NkAKjfjQN-UNz?ZT}SG#*sk*)VUXZ1$P zdxiM@I2RI7Tr043ZgWd3G^k56$Non@LKE|zLwBgXW#e~{7C{iB3&UjhKZPEj#)cH9 z%HUDubc0u@}dBz>4zU;sTluxBtCl!O4>g9ywc zhEiM-!|!C&LMjMNs6dr6Q!h{nvTrNN0hJ+w*h+EfxW=ro zxAB%*!~&)uaqXyuh~O`J(6e!YsD0o0l_ung1rCAZt~%4R{#izD2jT~${>f}m{O!i4 z`#UGbiSh{L=FR`Q`e~9wrKHSj?I>eXHduB`;%TcCTYNG<)l@A%*Ld?PK=fJi}J? z9T-|Ib8*rLE)v_3|1+Hqa!0ch>f% zfNFz@o6r5S`QQJCwRa4zgx$7AyQ7ZTv2EM7ZQHh!72CFL+qT`Y)k!)|Zr;7mcfV8T z)PB$1r*5rUzgE@y^E_kDG3Ol5n6q}eU2hJcXY7PI1}N=>nwC6k%nqxBIAx4Eix*`W zch0}3aPFe5*lg1P(=7J^0ZXvpOi9v2l*b?j>dI%iamGp$SmFaxpZod*TgYiyhF0= za44lXRu%9MA~QWN;YX@8LM32BqKs&W4&a3ve9C~ndQq>S{zjRNj9&&8k-?>si8)^m zW%~)EU)*$2YJzTXjRV=-dPAu;;n2EDYb=6XFyz`D0f2#29(mUX}*5~KU3k>$LwN#OvBx@ zl6lC>UnN#0?mK9*+*DMiboas!mmGnoG%gSYeThXI<=rE(!Pf-}oW}?yDY0804dH3o zo;RMFJzxP|srP-6ZmZ_peiVycfvH<`WJa9R`Z#suW3KrI*>cECF(_CB({ToWXSS18#3%vihZZJ{BwJPa?m^(6xyd1(oidUkrOU zlqyRQUbb@W_C)5Q)%5bT3K0l)w(2cJ-%?R>wK35XNl&}JR&Pn*laf1M#|s4yVXQS# zJvkT$HR;^3k{6C{E+{`)J+~=mPA%lv1T|r#kN8kZP}os;n39exCXz^cc{AN(Ksc%} zA561&OeQU8gIQ5U&Y;Ca1TatzG`K6*`9LV<|GL-^=qg+nOx~6 zBEMIM7Q^rkuhMtw(CZtpU(%JlBeV?KC+kjVDL34GG1sac&6(XN>nd+@Loqjo%i6I~ zjNKFm^n}K=`z8EugP20fd_%~$Nfu(J(sLL1gvXhxZt|uvibd6rLXvM%!s2{g0oNA8 z#Q~RfoW8T?HE{ge3W>L9bx1s2_L83Odx)u1XUo<`?a~V-_ZlCeB=N-RWHfs1(Yj!_ zP@oxCRysp9H8Yy@6qIc69TQx(1P`{iCh)8_kH)_vw1=*5JXLD(njxE?2vkOJ z>qQz!*r`>X!I69i#1ogdVVB=TB40sVHX;gak=fu27xf*}n^d>@*f~qbtVMEW!_|+2 zXS`-E%v`_>(m2sQnc6+OA3R z-6K{6$KZsM+lF&sn~w4u_md6J#+FzqmtncY;_ z-Q^D=%LVM{A0@VCf zV9;?kF?vV}*=N@FgqC>n-QhKJD+IT7J!6llTEH2nmUxKiBa*DO4&PD5=HwuD$aa(1 z+uGf}UT40OZAH@$jjWoI7FjOQAGX6roHvf_wiFKBfe4w|YV{V;le}#aT3_Bh^$`Pp zJZGM_()iFy#@8I^t{ryOKQLt%kF7xq&ZeD$$ghlTh@bLMv~||?Z$#B2_A4M&8)PT{ zyq$BzJpRrj+=?F}zH+8XcPvhRP+a(nnX2^#LbZqgWQ7uydmIM&FlXNx4o6m;Q5}rB z^ryM&o|~a-Zb20>UCfSFwdK4zfk$*~<|90v0=^!I?JnHBE{N}74iN;w6XS=#79G+P zB|iewe$kk;9^4LinO>)~KIT%%4Io6iFFXV9gJcIvu-(!um{WfKAwZDmTrv=wb#|71 zWqRjN8{3cRq4Ha2r5{tw^S>0DhaC3m!i}tk9q08o>6PtUx1GsUd{Z17FH45rIoS+oym1>3S0B`>;uo``+ADrd_Um+8s$8V6tKsA8KhAm z{pTv@zj~@+{~g&ewEBD3um9@q!23V_8Nb0_R#1jcg0|MyU)?7ua~tEY63XSvqwD`D zJ+qY0Wia^BxCtXpB)X6htj~*7)%un+HYgSsSJPAFED7*WdtlFhuJj5d3!h8gt6$(s ztrx=0hFH8z(Fi9}=kvPI?07j&KTkssT=Vk!d{-M50r!TsMD8fPqhN&%(m5LGpO>}L zse;sGl_>63FJ)(8&8(7Wo2&|~G!Lr^cc!uuUBxGZE)ac7Jtww7euxPo)MvxLXQXlk zeE>E*nMqAPwW0&r3*!o`S7wK&078Q#1bh!hNbAw0MFnK-2gU25&8R@@j5}^5-kHeR z!%krca(JG%&qL2mjFv380Gvb*eTLllTaIpVr3$gLH2e3^xo z=qXjG0VmES%OXAIsOQG|>{aj3fv+ZWdoo+a9tu8)4AyntBP>+}5VEmv@WtpTo<-aH zF4C(M#dL)MyZmU3sl*=TpAqU#r>c8f?-zWMq`wjEcp^jG2H`8m$p-%TW?n#E5#Th+ z7Zy#D>PPOA4|G@-I$!#Yees_9Ku{i_Y%GQyM)_*u^nl+bXMH!f_ z8>BM|OTex;vYWu`AhgfXFn)0~--Z7E0WR-v|n$XB-NOvjM156WR(eu z(qKJvJ%0n+%+%YQP=2Iz-hkgI_R>7+=)#FWjM#M~Y1xM8m_t8%=FxV~Np$BJ{^rg9 z5(BOvYfIY{$h1+IJyz-h`@jhU1g^Mo4K`vQvR<3wrynWD>p{*S!kre-(MT&`7-WK! zS}2ceK+{KF1yY*x7FH&E-1^8b$zrD~Ny9|9(!1Y)a#)*zf^Uo@gy~#%+*u`U!R`^v zCJ#N!^*u_gFq7;-XIYKXvac$_=booOzPgrMBkonnn%@#{srUC<((e*&7@YR?`CP;o zD2*OE0c%EsrI72QiN`3FpJ#^Bgf2~qOa#PHVmbzonW=dcrs92>6#{pEnw19AWk%;H zJ4uqiD-dx*w2pHf8&Jy{NXvGF^Gg!ungr2StHpMQK5^+ zEmDjjBonrrT?d9X;BHSJeU@lX19|?On)(Lz2y-_;_!|}QQMsq4Ww9SmzGkzVPQTr* z)YN>_8i^rTM>Bz@%!!v)UsF&Nb{Abz>`1msFHcf{)Ufc_a-mYUPo@ei#*%I_jWm#7 zX01=Jo<@6tl`c;P_uri^gJxDVHOpCano2Xc5jJE8(;r@y6THDE>x*#-hSKuMQ_@nc z68-JLZyag_BTRE(B)Pw{B;L0+Zx!5jf%z-Zqug*og@^ zs{y3{Za(0ywO6zYvES>SW*cd4gwCN^o9KQYF)Lm^hzr$w&spGNah6g>EQBufQCN!y zI5WH$K#67$+ic{yKAsX@el=SbBcjRId*cs~xk~3BBpQsf%IsoPG)LGs zdK0_rwz7?L0XGC^2$dktLQ9qjwMsc1rpGx2Yt?zmYvUGnURx(1k!kmfPUC@2Pv;r9 z`-Heo+_sn+!QUJTAt;uS_z5SL-GWQc#pe0uA+^MCWH=d~s*h$XtlN)uCI4$KDm4L$ zIBA|m0o6@?%4HtAHRcDwmzd^(5|KwZ89#UKor)8zNI^EsrIk z1QLDBnNU1!PpE3iQg9^HI){x7QXQV{&D>2U%b_II>*2*HF2%>KZ>bxM)Jx4}|CCEa`186nD_B9h`mv6l45vRp*L+z_nx5i#9KvHi>rqxJIjKOeG(5lCeo zLC|-b(JL3YP1Ds=t;U!Y&Gln*Uwc0TnDSZCnh3m$N=xWMcs~&Rb?w}l51ubtz=QUZsWQhWOX;*AYb)o(^<$zU_v=cFwN~ZVrlSLx| zpr)Q7!_v*%U}!@PAnZLqOZ&EbviFbej-GwbeyaTq)HSBB+tLH=-nv1{MJ-rGW%uQ1 znDgP2bU@}!Gd=-;3`KlJYqB@U#Iq8Ynl%eE!9g;d*2|PbC{A}>mgAc8LK<69qcm)piu?`y~3K8zlZ1>~K_4T{%4zJG6H?6%{q3B-}iP_SGXELeSv*bvBq~^&C=3TsP z9{cff4KD2ZYzkArq=;H(Xd)1CAd%byUXZdBHcI*%a24Zj{Hm@XA}wj$=7~$Q*>&4} z2-V62ek{rKhPvvB711`qtAy+q{f1yWuFDcYt}hP)Vd>G?;VTb^P4 z(QDa?zvetCoB_)iGdmQ4VbG@QQ5Zt9a&t(D5Rf#|hC`LrONeUkbV)QF`ySE5x+t_v z-(cW{S13ye9>gtJm6w&>WwJynxJQm8U2My?#>+(|)JK}bEufIYSI5Y}T;vs?rzmLE zAIk%;^qbd@9WUMi*cGCr=oe1-nthYRQlhVHqf{ylD^0S09pI}qOQO=3&dBsD)BWo# z$NE2Ix&L&4|Aj{;ed*A?4z4S!7o_Kg^8@%#ZW26_F<>y4ghZ0b|3+unIoWDUVfen~ z`4`-cD7qxQSm9hF-;6WvCbu$t5r$LCOh}=`k1(W<&bG-xK{VXFl-cD%^Q*x-9eq;k8FzxAqZB zH@ja_3%O7XF~>owf3LSC_Yn!iO}|1Uc5uN{Wr-2lS=7&JlsYSp3IA%=E?H6JNf()z zh>jA>JVsH}VC>3Be>^UXk&3o&rK?eYHgLwE-qCHNJyzDLmg4G(uOFX5g1f(C{>W3u zn~j`zexZ=sawG8W+|SErqc?uEvQP(YT(YF;u%%6r00FP;yQeH)M9l+1Sv^yddvGo- z%>u>5SYyJ|#8_j&%h3#auTJ!4y@yEg<(wp#(~NH zXP7B#sv@cW{D4Iz1&H@5wW(F82?-JmcBt@Gw1}WK+>FRXnX(8vwSeUw{3i%HX6-pvQS-~Omm#x-udgp{=9#!>kDiLwqs_7fYy{H z)jx_^CY?5l9#fR$wukoI>4aETnU>n<$UY!JDlIvEti908)Cl2Ziyjjtv|P&&_8di> z<^amHu|WgwMBKHNZ)t)AHII#SqDIGTAd<(I0Q_LNPk*?UmK>C5=rIN^gs}@65VR*!J{W;wp5|&aF8605*l-Sj zQk+C#V<#;=Sl-)hzre6n0n{}|F=(#JF)X4I4MPhtm~qKeR8qM?a@h!-kKDyUaDrqO z1xstrCRCmDvdIFOQ7I4qesby8`-5Y>t_E1tUTVOPuNA1De9| z8{B0NBp*X2-ons_BNzb*Jk{cAJ(^F}skK~i;p0V(R7PKEV3bB;syZ4(hOw47M*-r8 z3qtuleeteUl$FHL$)LN|q8&e;QUN4(id`Br{rtsjpBdriO}WHLcr<;aqGyJP{&d6? zMKuMeLbc=2X0Q_qvSbl3r?F8A^oWw9Z{5@uQ`ySGm@DUZ=XJ^mKZ-ipJtmiXjcu<%z?Nj%-1QY*O{NfHd z=V}Y(UnK=f?xLb-_~H1b2T&0%O*2Z3bBDf06-nO*q%6uEaLs;=omaux7nqqW%tP$i zoF-PC%pxc(ymH{^MR_aV{@fN@0D1g&zv`1$Pyu3cvdR~(r*3Y%DJ@&EU?EserVEJ` zEprux{EfT+(Uq1m4F?S!TrZ+!AssSdX)fyhyPW6C`}ko~@y#7acRviE(4>moNe$HXzf zY@@fJa~o_r5nTeZ7ceiXI=k=ISkdp1gd1p)J;SlRn^5;rog!MlTr<<6-U9|oboRBN zlG~o*dR;%?9+2=g==&ZK;Cy0pyQFe)x!I!8g6;hGl`{{3q1_UzZy)J@c{lBIEJVZ& z!;q{8h*zI!kzY#RO8z3TNlN$}l;qj10=}du!tIKJs8O+?KMJDoZ+y)Iu`x`yJ@krO zwxETN$i!bz8{!>BKqHpPha{96eriM?mST)_9Aw-1X^7&;Bf=c^?17k)5&s08^E$m^ zRt02U_r!99xfiow-XC~Eo|Yt8t>32z=rv$Z;Ps|^26H73JS1Xle?;-nisDq$K5G3y znR|l8@rlvv^wj%tdgw+}@F#Ju{SkrQdqZ?5zh;}|IPIdhy3ivi0Q41C@4934naAaY z%+otS8%Muvrr{S-Y96G?b2j0ldu1&coOqsq^vfcUT3}#+=#;fii6@M+hDp}dr9A0Y zjbhvqmB03%4jhsZ{_KQfGh5HKm-=dFxN;3tnwBej^uzcVLrrs z>eFP-jb#~LE$qTP9JJ;#$nVOw%&;}y>ezA6&i8S^7YK#w&t4!A36Ub|or)MJT z^GGrzgcnQf6D+!rtfuX|Pna`Kq*ScO#H=de2B7%;t+Ij<>N5@(Psw%>nT4cW338WJ z>TNgQ^!285hS1JoHJcBk;3I8%#(jBmcpEkHkQDk%!4ygr;Q2a%0T==W zT#dDH>hxQx2E8+jE~jFY$FligkN&{vUZeIn*#I_Ca!l&;yf){eghi z>&?fXc-C$z8ab$IYS`7g!2#!3F@!)cUquAGR2oiR0~1pO<$3Y$B_@S2dFwu~B0e4D z6(WiE@O{(!vP<(t{p|S5#r$jl6h;3@+ygrPg|bBDjKgil!@Sq)5;rXNjv#2)N5_nn zuqEURL>(itBYrT&3mu-|q;soBd52?jMT75cvXYR!uFuVP`QMot+Yq?CO%D9$Jv24r zhq1Q5`FD$r9%&}9VlYcqNiw2#=3dZsho0cKKkv$%X&gmVuv&S__zyz@0zmZdZI59~s)1xFs~kZS0C^271hR*O z9nt$5=y0gjEI#S-iV0paHx!|MUNUq&$*zi>DGt<#?;y;Gms|dS{2#wF-S`G3$^$7g z1#@7C65g$=4Ij?|Oz?X4=zF=QfixmicIw{0oDL5N7iY}Q-vcVXdyQNMb>o_?3A?e6 z$4`S_=6ZUf&KbMgpn6Zt>6n~)zxI1>{HSge3uKBiN$01WB9OXscO?jd!)`?y5#%yp zJvgJU0h+|^MdA{!g@E=dJuyHPOh}i&alC+cY*I3rjB<~DgE{`p(FdHuXW;p$a+%5` zo{}x#Ex3{Sp-PPi)N8jGVo{K!$^;z%tVWm?b^oG8M?Djk)L)c{_-`@F|8LNu|BTUp zQY6QJVzVg8S{8{Pe&o}Ux=ITQ6d42;0l}OSEA&Oci$p?-BL187L6rJ>Q)aX0)Wf%T zneJF2;<-V%-VlcA?X03zpf;wI&8z9@Hy0BZm&ac-Gdtgo>}VkZYk##OOD+nVOKLFJ z5hgXAhkIzZtCU%2M#xl=D7EQPwh?^gZ_@0p$HLd*tF>qgA_P*dP;l^cWm&iQSPJZE zBoipodanrwD0}}{H#5o&PpQpCh61auqlckZq2_Eg__8;G-CwyH#h1r0iyD#Hd_$WgM89n+ldz;=b!@pvr4;x zs|YH}rQuCyZO!FWMy%lUyDE*0)(HR}QEYxIXFexCkq7SHmSUQ)2tZM2s`G<9dq;Vc ziNVj5hiDyqET?chgEA*YBzfzYh_RX#0MeD@xco%)ON%6B7E3#3iFBkPK^P_=&8$pf zpM<0>QmE~1FX1>mztm>JkRoosOq8cdJ1gF5?%*zMDak%qubN}SM!dW6fgH<*F>4M7 zX}%^g{>ng^2_xRNGi^a(epr8SPSP>@rg7s=0PO-#5*s}VOH~4GpK9<4;g=+zuJY!& ze_ld=ybcca?dUI-qyq2Mwl~-N%iCGL;LrE<#N}DRbGow7@5wMf&d`kT-m-@geUI&U z0NckZmgse~(#gx;tsChgNd|i1Cz$quL>qLzEO}ndg&Pg4f zy`?VSk9X5&Ab_TyKe=oiIiuNTWCsk6s9Ie2UYyg1y|i}B7h0k2X#YY0CZ;B7!dDg7 z_a#pK*I7#9-$#Iev5BpN@xMq@mx@TH@SoNWc5dv%^8!V}nADI&0K#xu_#y)k%P2m~ zqNqQ{(fj6X8JqMe5%;>MIkUDd#n@J9Dm~7_wC^z-Tcqqnsfz54jPJ1*+^;SjJzJhG zIq!F`Io}+fRD>h#wjL;g+w?Wg`%BZ{f()%Zj)sG8permeL0eQ9vzqcRLyZ?IplqMg zpQaxM11^`|6%3hUE9AiM5V)zWpPJ7nt*^FDga?ZP!U1v1aeYrV2Br|l`J^tgLm;~%gX^2l-L9L`B?UDHE9_+jaMxy|dzBY4 zjsR2rcZ6HbuyyXsDV(K0#%uPd#<^V%@9c7{6Qd_kQEZL&;z_Jf+eabr)NF%@Ulz_a1e(qWqJC$tTC! zwF&P-+~VN1Vt9OPf`H2N{6L@UF@=g+xCC_^^DZ`8jURfhR_yFD7#VFmklCR*&qk;A zzyw8IH~jFm+zGWHM5|EyBI>n3?2vq3W?aKt8bC+K1`YjklQx4*>$GezfU%E|>Or9Y zNRJ@s(>L{WBXdNiJiL|^In*1VA`xiE#D)%V+C;KuoQi{1t3~4*8 z;tbUGJ2@2@$XB?1!U;)MxQ}r67D&C49k{ceku^9NyFuSgc}DC2pD|+S=qLH&L}Vd4 zM=-UK4{?L?xzB@v;qCy}Ib65*jCWUh(FVc&rg|+KnopG`%cb>t;RNv=1%4= z#)@CB7i~$$JDM>q@4ll8{Ja5Rsq0 z$^|nRac)f7oZH^=-VdQldC~E_=5%JRZSm!z8TJocv`w<_e0>^teZ1en^x!yQse%Lf z;JA5?0vUIso|MS03y${dX19A&bU4wXS~*T7h+*4cgSIX11EB?XGiBS39hvWWuyP{!5AY^x5j{!c?z<}7f-kz27%b>llPq%Z7hq+CU|Ev2 z*jh(wt-^7oL`DQ~Zw+GMH}V*ndCc~ zr>WVQHJQ8ZqF^A7sH{N5~PbeDihT$;tUP`OwWn=j6@L+!=T|+ze%YQ zO+|c}I)o_F!T(^YLygYOTxz&PYDh9DDiv_|Ewm~i7|&Ck^$jsv_0n_}q-U5|_1>*L44)nt!W|;4q?n&k#;c4wpSx5atrznZbPc;uQI^I}4h5Fy`9J)l z7yYa7Rg~f@0oMHO;seQl|E@~fd|532lLG#e6n#vXrfdh~?NP){lZ z&3-33d;bUTEAG=!4_{YHd3%GCV=WS|2b)vZgX{JC)?rsljjzWw@Hflbwg3kIs^l%y zm3fVP-55Btz;<-p`X(ohmi@3qgdHmwXfu=gExL!S^ve^MsimP zNCBV>2>=BjLTobY^67f;8mXQ1YbM_NA3R^s z{zhY+5@9iYKMS-)S>zSCQuFl!Sd-f@v%;;*fW5hme#xAvh0QPtJ##}b>&tth$)6!$ z0S&b2OV-SE<|4Vh^8rs*jN;v9aC}S2EiPKo(G&<6C|%$JQ{;JEg-L|Yob*<-`z?AsI(~U(P>cC=1V$OETG$7i# zG#^QwW|HZuf3|X|&86lOm+M+BE>UJJSSAAijknNp*eyLUq=Au z7&aqR(x8h|>`&^n%p#TPcC@8@PG% zM&7k6IT*o-NK61P1XGeq0?{8kA`x;#O+|7`GTcbmyWgf^JvWU8Y?^7hpe^85_VuRq7yS~8uZ=Cf%W^OfwF_cbBhr`TMw^MH0<{3y zU=y;22&oVlrH55eGNvoklhfPM`bPX`|C_q#*etS^O@5PeLk(-DrK`l|P*@#T4(kRZ z`AY7^%&{!mqa5}q%<=x1e29}KZ63=O>89Q)yO4G@0USgbGhR#r~OvWI4+yu4*F8o`f?EG~x zBCEND=ImLu2b(FDF3sOk_|LPL!wrzx_G-?&^EUof1C~A{feam{2&eAf@2GWem7! z|LV-lff1Dk+mvTw@=*8~0@_Xu@?5u?-u*r8E7>_l1JRMpi{9sZqYG+#Ty4%Mo$`ds zsVROZH*QoCErDeU7&=&-ma>IUM|i_Egxp4M^|%^I7ecXzq@K8_oz!}cHK#>&+$E4rs2H8Fyc)@Bva?(KO%+oc!+3G0&Rv1cP)e9u_Y|dXr#!J;n%T4+9rTF>^m_4X3 z(g+$G6Zb@RW*J-IO;HtWHvopoVCr7zm4*h{rX!>cglE`j&;l_m(FTa?hUpgv%LNV9 zkSnUu1TXF3=tX)^}kDZk|AF%7FmLv6sh?XCORzhTU%d>y4cC;4W5mn=i6vLf2 ztbTQ8RM@1gn|y$*jZa8&u?yTOlNo{coXPgc%s;_Y!VJw2Z1bf%57p%kC1*5e{bepl zwm?2YGk~x=#69_Ul8A~(BB}>UP27=M)#aKrxWc-)rLL+97=>x|?}j)_5ewvoAY?P| z{ekQQbmjbGC%E$X*x-M=;Fx}oLHbzyu=Dw>&WtypMHnOc92LSDJ~PL7sU!}sZw`MY z&3jd_wS8>a!si2Y=ijCo(rMnAqq z-o2uzz}Fd5wD%MAMD*Y&=Ct?|B6!f0jfiJt;hvkIyO8me(u=fv_;C;O4X^vbO}R_% zo&Hx7C@EcZ!r%oy}|S-8CvPR?Ns0$j`FtMB;h z`#0Qq)+6Fxx;RCVnhwp`%>0H4hk(>Kd!(Y}>U+Tr_6Yp?W%jt_zdusOcA$pTA z(4l9$K=VXT2ITDs!OcShuUlG=R6#x@t74B2x7Dle%LGwsZrtiqtTuZGFUio_Xwpl} z=T7jdfT~ld#U${?)B67E*mP*E)XebDuMO(=3~Y=}Z}rm;*4f~7ka196QIHj;JK%DU z?AQw4I4ZufG}gmfVQ3w{snkpkgU~Xi;}V~S5j~;No^-9eZEYvA`Et=Q4(5@qcK=Pr zk9mo>v!%S>YD^GQc7t4c!C4*qU76b}r(hJhO*m-s9OcsktiXY#O1<OoH z#J^Y@1A;nRrrxNFh?3t@Hx9d>EZK*kMb-oe`2J!gZ;~I*QJ*f1p93>$lU|4qz!_zH z&mOaj#(^uiFf{*Nq?_4&9ZssrZeCgj1J$1VKn`j+bH%9#C5Q5Z@9LYX1mlm^+jkHf z+CgcdXlX5);Ztq6OT@;UK_zG(M5sv%I`d2(i1)>O`VD|d1_l(_aH(h>c7fP_$LA@d z6Wgm))NkU!v^YaRK_IjQy-_+>f_y(LeS@z+B$5be|FzXqqg}`{eYpO;sXLrU{*fJT zQHUEXoWk%wh%Kal`E~jiu@(Q@&d&dW*!~9;T=gA{{~NJwQvULf;s43Ku#A$NgaR^1 z%U3BNX`J^YE-#2dM*Ov*CzGdP9^`iI&`tmD~Bwqy4*N=DHt%RycykhF* zc7BcXG28Jvv(5G8@-?OATk6|l{Rg1 zwdU2Md1Qv?#$EO3E}zk&9>x1sQiD*sO0dGSUPkCN-gjuppdE*%*d*9tEWyQ%hRp*7 zT`N^=$PSaWD>f;h@$d2Ca7 z8bNsm14sdOS%FQhMn9yC83$ z-YATg3X!>lWbLUU7iNk-`O%W8MrgI03%}@6l$9+}1KJ1cTCiT3>^e}-cTP&aEJcUt zCTh_xG@Oa-v#t_UDKKfd#w0tJfA+Ash!0>X&`&;2%qv$!Gogr4*rfMcKfFl%@{ztA zwoAarl`DEU&W_DUcIq-{xaeRu(ktyQ64-uw?1S*A>7pRHH5_F)_yC+2o@+&APivkn zwxDBp%e=?P?3&tiVQb8pODI}tSU8cke~T#JLAxhyrZ(yx)>fUhig`c`%;#7Ot9le# zSaep4L&sRBd-n&>6=$R4#mU8>T>=pB)feU9;*@j2kyFHIvG`>hWYJ_yqv?Kk2XTw` z42;hd=hm4Iu0h{^M>-&c9zKPtqD>+c$~>k&Wvq#>%FjOyifO%RoFgh*XW$%Hz$y2-W!@W6+rFJja=pw-u_s0O3WMVgLb&CrCQ)8I^6g!iQj%a%#h z<~<0S#^NV4n!@tiKb!OZbkiSPp~31?f9Aj#fosfd*v}j6&7YpRGgQ5hI_eA2m+Je) zT2QkD;A@crBzA>7T zw4o1MZ_d$)puHvFA2J|`IwSXKZyI_iK_}FvkLDaFj^&6}e|5@mrHr^prr{fPVuN1+ z4=9}DkfKLYqUq7Q7@qa$)o6&2)kJx-3|go}k9HCI6ahL?NPA&khLUL}k_;mU&7GcN zNG6(xXW}(+a%IT80=-13-Q~sBo>$F2m`)7~wjW&XKndrz8soC*br=F*A_>Sh_Y}2Mt!#A1~2l?|hj) z9wpN&jISjW)?nl{@t`yuLviwvj)vyZQ4KR#mU-LE)mQ$yThO1oohRv;93oEXE8mYE zXPQSVCK~Lp3hIA_46A{8DdA+rguh@98p?VG2+Nw(4mu=W(sK<#S`IoS9nwuOM}C0) zH9U|6N=BXf!jJ#o;z#6vi=Y3NU5XT>ZNGe^z4u$i&x4ty^Sl;t_#`|^hmur~;r;o- z*CqJb?KWBoT`4`St5}10d*RL?!hm`GaFyxLMJPgbBvjVD??f7GU9*o?4!>NabqqR! z{BGK7%_}96G95B299eErE5_rkGmSWKP~590$HXvsRGJN5-%6d@=~Rs_68BLA1RkZb zD%ccBqGF0oGuZ?jbulkt!M}{S1;9gwAVkgdilT^_AS`w6?UH5Jd=wTUA-d$_O0DuM z|9E9XZFl$tZctd`Bq=OfI(cw4A)|t zl$W~3_RkP zFA6wSu+^efs79KH@)0~c3Dn1nSkNj_s)qBUGs6q?G0vjT&C5Y3ax-seA_+_}m`aj} zvW04)0TSIpqQkD@#NXZBg9z@GK1^ru*aKLrc4{J0PjhNfJT}J;vEeJ1ov?*KVNBy< zXtNIY3TqLZ=o1Byc^wL!1L6#i6n(088T9W<_iu~$S&VWGfmD|wNj?Q?Dnc#6iskoG zt^u26JqFnt=xjS-=|ACC%(=YQh{_alLW1tk;+tz1ujzeQ--lEu)W^Jk>UmHK(H303f}P2i zrsrQ*nEz`&{V!%2O446^8qLR~-Pl;2Y==NYj^B*j1vD}R5plk>%)GZSSjbi|tx>YM zVd@IS7b>&Uy%v==*35wGwIK4^iV{31mc)dS^LnN8j%#M}s%B@$=bPFI_ifcyPd4hilEWm71chIwfIR(-SeQaf20{;EF*(K(Eo+hu{}I zZkjXyF}{(x@Ql~*yig5lAq7%>-O5E++KSzEe(sqiqf1>{Em)pN`wf~WW1PntPpzKX zn;14G3FK7IQf!~n>Y=cd?=jhAw1+bwlVcY_kVuRyf!rSFNmR4fOc(g7(fR{ANvcO< zbG|cnYvKLa>dU(Z9YP796`Au?gz)Ys?w!af`F}1#W>x_O|k9Q z>#<6bKDt3Y}?KT2tmhU>H6Umn}J5M zarILVggiZs=kschc2TKib2`gl^9f|(37W93>80keUkrC3ok1q{;PO6HMbm{cZ^ROcT#tWWsQy?8qKWt<42BGryC(Dx>^ohIa0u7$^)V@Bn17^(VUgBD> zAr*Wl6UwQ&AAP%YZ;q2cZ;@2M(QeYFtW@PZ+mOO5gD1v-JzyE3^zceyE5H?WLW?$4 zhBP*+3i<09M$#XU;jwi7>}kW~v%9agMDM_V1$WlMV|U-Ldmr|<_nz*F_kcgrJnrViguEnJt{=Mk5f4Foin7(3vUXC>4gyJ>sK<;-p{h7 z2_mr&Fca!E^7R6VvodGznqJn3o)Ibd`gk>uKF7aemX*b~Sn#=NYl5j?v*T4FWZF2D zaX(M9hJ2YuEi%b~4?RkJwT*?aCRT@ecBkq$O!i}EJJEw`*++J_a>gsMo0CG^pZ3x+ zdfTSbCgRwtvAhL$p=iIf7%Vyb!j*UJsmOMler--IauWQ;(ddOk+U$WgN-RBle~v9v z9m2~@h|x*3t@m+4{U2}fKzRoVePrF-}U{`YT|vW?~64Bv*7|Dz03 zRYM^Yquhf*ZqkN?+NK4Ffm1;6BR0ZyW3MOFuV1ljP~V(=-tr^Tgu#7$`}nSd<8?cP z`VKtIz5$~InI0YnxAmn|pJZj+nPlI3zWsykXTKRnDCBm~Dy*m^^qTuY+8dSl@>&B8~0H$Y0Zc25APo|?R= z>_#h^kcfs#ae|iNe{BWA7K1mLuM%K!_V?fDyEqLkkT&<`SkEJ;E+Py^%hPVZ(%a2P4vL=vglF|X_`Z$^}q470V+7I4;UYdcZ7vU=41dd{d#KmI+|ZGa>C10g6w1a?wxAc&?iYsEv zuCwWvcw4FoG=Xrq=JNyPG*yIT@xbOeV`$s_kx`pH0DXPf0S7L?F208x4ET~j;yQ2c zhtq=S{T%82U7GxlUUKMf-NiuhHD$5*x{6}}_eZ8_kh}(}BxSPS9<(x2m$Rn0sx>)a zt$+qLRJU}0)5X>PXVxE?Jxpw(kD0W43ctKkj8DjpYq}lFZE98Je+v2t7uxuKV;p0l z5b9smYi5~k2%4aZe+~6HyobTQ@4_z#*lRHl# zSA`s~Jl@RGq=B3SNQF$+puBQv>DaQ--V!alvRSI~ZoOJx3VP4sbk!NdgMNBVbG&BX zdG*@)^g4#M#qoT`^NTR538vx~rdyOZcfzd7GBHl68-rG|fkofiGAXTJx~`~%a&boY zZ#M4sYwHIOnu-Mr!Ltpl8!NrX^p74tq{f_F4%M@&<=le;>xc5pAi&qn4P>04D$fp` z(OuJXQia--?vD0DIE6?HC|+DjH-?Cl|GqRKvs8PSe027_NH=}+8km9Ur8(JrVx@*x z0lHuHd=7*O+&AU_B;k{>hRvV}^Uxl^L1-c-2j4V^TG?2v66BRxd~&-GMfcvKhWgwu z60u{2)M{ZS)r*=&J4%z*rtqs2syPiOQq(`V0UZF)boPOql@E0U39>d>MP=BqFeJzz zh?HDKtY3%mR~reR7S2rsR0aDMA^a|L^_*8XM9KjabpYSBu z;zkfzU~12|X_W_*VNA=e^%Za14PMOC!z`5Xt|Fl$2bP9fz>(|&VJFZ9{z;;eEGhOl zl7OqqDJzvgZvaWc7Nr!5lfl*Qy7_-fy9%f(v#t#&2#9o-ba%J3(%s#C=@dagx*I{d zB&AzGT9EEiknWJU^naNdz7Logo%#OFV!eyCIQuzgpZDDN-1F}JJTdGXiLN85p|GT! zGOfNd8^RD;MsK*^3gatg2#W0J<8j)UCkUYoZRR|R*UibOm-G)S#|(`$hPA7UmH+fT ziZxTgeiR_yzvNS1s+T!xw)QgNSH(_?B@O?uTBwMj`G)2c^8%g8zu zxMu5SrQ^J+K91tkPrP%*nTpyZor#4`)}(T-Y8eLd(|sv8xcIoHnicKyAlQfm1YPyI z!$zimjMlEcmJu?M6z|RtdouAN1U5lKmEWY3gajkPuUHYRvTVeM05CE@`@VZ%dNoZN z>=Y3~f$~Gosud$AN{}!DwV<6CHm3TPU^qcR!_0$cY#S5a+GJU-2I2Dv;ktonSLRRH zALlc(lvX9rm-b5`09uNu904c}sU(hlJZMp@%nvkcgwkT;Kd7-=Z_z9rYH@8V6Assf zKpXju&hT<=x4+tCZ{elYtH+_F$V=tq@-`oC%vdO>0Wmu#w*&?_=LEWRJpW|spYc8V z=$)u#r}Pu7kvjSuM{FSyy9_&851CO^B zTm$`pF+lBWU!q>X#;AO1&=tOt=i!=9BVPC#kPJU}K$pO&8Ads)XOFr336_Iyn z$d{MTGYQLX9;@mdO;_%2Ayw3hv}_$UT00*e{hWxS?r=KT^ymEwBo429b5i}LFmSk` zo)-*bF1g;y@&o=34TW|6jCjUx{55EH&DZ?7wB_EmUg*B4zc6l7x-}qYLQR@^7o6rrgkoujRNym9O)K>wNfvY+uy+4Om{XgRHi#Hpg*bZ36_X%pP`m7FIF z?n?G*g&>kt$>J_PiXIDzgw3IupL3QZbysSzP&}?JQ-6TN-aEYbA$X>=(Zm}0{hm6J zJnqQnEFCZGmT06LAdJ^T#o`&)CA*eIYu?zzDJi#c$1H9zX}hdATSA|zX0Vb^q$mgg z&6kAJ=~gIARct>}4z&kzWWvaD9#1WK=P>A_aQxe#+4cpJtcRvd)TCu! z>eqrt)r(`qYw6JPKRXSU#;zYNB7a@MYoGuAT0Nzxr`>$=vk`uEq2t@k9?jYqg)MXl z67MA3^5_}Ig*mycsGeH0_VtK3bNo;8#0fFQ&qDAj=;lMU9%G)&HL>NO|lWU3z+m4t7 zfV*3gSuZ++rIWsinX@QaT>dsbD>Xp8%8c`HLamm~(i{7L&S0uZ;`W-tqU4XAgQclM$PxE76OH(PSjHjR$(nh({vsNnawhP!!HcP!l)5 zG;C=k0xL<^q+4rpbp{sGzcc~ZfGv9J*k~PPl}e~t$>WPSxzi0}05(D6d<=5+E}Y4e z@_QZtDcC7qh4#dQFYb6Pulf_8iAYYE z1SWJfNe5@auBbE5O=oeO@o*H5mS(pm%$!5yz-71~lEN5=x0eN|V`xAeP;eTje?eC= z53WneK;6n35{OaIH2Oh6Hx)kV-jL-wMzFlynGI8Wk_A<~_|06rKB#Pi_QY2XtIGW_ zYr)RECK_JRzR1tMd(pM(L=F98y~7wd4QBKAmFF(AF(e~+80$GLZpFc;a{kj1h}g4l z3SxIRlV=h%Pl1yRacl^g>9q%>U+`P(J`oh-w8i82mFCn|NJ5oX*^VKODX2>~HLUky z3D(ak0Sj=Kv^&8dUhU(3Ab!U5TIy97PKQ))&`Ml~hik%cHNspUpCn24cqH@dq6ZVo zO9xz!cEMm;NL;#z-tThlFF%=^ukE8S0;hDMR_`rv#eTYg7io1w9n_vJpK+6%=c#Y?wjAs_(#RQA0gr&Va2BQTq` zUc8)wHEDl&Uyo<>-PHksM;b-y(`E_t8Rez@Iw+eogcEI*FDg@Bc;;?3j3&kPsq(mx z+Yr_J#?G6D?t2G%O9o&e7Gbf&>#(-)|8)GIbG_a${TU26cVrIQSt=% zQ~XY-b1VQVc>IV=7um0^Li>dF z`zSm_o*i@ra4B+Tw5jdguVqx`O(f4?_USIMJzLvS$*kvBfEuToq-VR%K*%1VHu=++ zQ`=cG3cCnEv{ZbP-h9qbkF}%qT$j|Z7ZB2?s7nK@gM{bAD=eoDKCCMlm4LG~yre!- zzPP#Rn9ZDUgb4++M78-V&VX<1ah(DN z(4O5b`Fif%*k?L|t%!WY`W$C_C`tzC`tI7XC`->oJs_Ezs=K*O_{*#SgNcvYdmBbG zHd8!UTzGApZC}n7LUp1fe0L<3|B5GdLbxX@{ETeUB2vymJgWP0q2E<&!Dtg4>v`aa zw(QcLoA&eK{6?Rb&6P0kY+YszBLXK49i~F!jr)7|xcnA*mOe1aZgkdmt4{Nq2!!SL z`aD{6M>c00muqJt4$P+RAj*cV^vn99UtJ*s${&agQ;C>;SEM|l%KoH_^kAcmX=%)* zHpByMU_F12iGE#68rHGAHO_ReJ#<2ijo|T7`{PSG)V-bKw}mpTJwtCl%cq2zxB__m zM_p2k8pDmwA*$v@cmm>I)TW|7a7ng*X7afyR1dcuVGl|BQzy$MM+zD{d~n#)9?1qW zdk(th4Ljb-vpv5VUt&9iuQBnQ$JicZ)+HoL`&)B^Jr9F1wvf=*1and~v}3u{+7u7F zf0U`l4Qx-ANfaB3bD1uIeT^zeXerps8nIW(tmIxYSL;5~!&&ZOLVug2j4t7G=zzK+ zmPy5<4h%vq$Fw)i1)ya{D;GyEm3fybsc8$=$`y^bRdmO{XU#95EZ$I$bBg)FW#=}s z@@&c?xwLF3|C7$%>}T7xl0toBc6N^C{!>a8vWc=G!bAFKmn{AKS6RxOWIJBZXP&0CyXAiHd?7R#S46K6UXYXl#c_#APL5SfW<<-|rcfX&B6e*isa|L^RK=0}D`4q-T0VAs0 zToyrF6`_k$UFGAGhY^&gg)(Fq0p%J{h?E)WQ(h@Gy=f6oxUSAuT4ir}jI)36|NnmnI|vtij;t!jT?6Jf-E19}9Lf9(+N+ z)+0)I5mST_?3diP*n2=ZONTYdXkjKsZ%E$jjU@0w_lL+UHJOz|K{{Uh%Zy0dhiqyh zofWXzgRyFzY>zpMC8-L^43>u#+-zlaTMOS(uS!p{Jw#u3_9s)(s)L6j-+`M5sq?f+ zIIcjq$}~j9b`0_hIz~?4?b(Sqdpi(;1=8~wkIABU+APWQdf5v@g=1c{c{d*J(X5+cfEdG?qxq z{GKkF;)8^H&Xdi~fb~hwtJRsfg#tdExEuDRY^x9l6=E+|fxczIW4Z29NS~-oLa$Iq z93;5$(M0N8ba%8&q>vFc=1}a8T?P~_nrL5tYe~X>G=3QoFlBae8vVt-K!^@vusN<8gQJ!WD7H%{*YgY0#(tXxXy##C@o^U7ysxe zLmUWN@4)JBjjZ3G-_)mrA`|NPCc8Oe!%Ios4$HWpBmJse7q?)@Xk%$x&lIY>vX$7L zpfNWlXxy2p7TqW`Wq22}Q3OC2OWTP_X(*#kRx1WPe%}$C!Qn^FvdYmvqgk>^nyk;6 zXv*S#P~NVx1n6pdbXuX9x_}h1SY#3ZyvLZ&VnWVva4)9D|i7kjGY{>am&^ z-_x1UYM1RU#z17=AruK~{BK$A65Sajj_OW|cpYQBGWO*xfGJXSn4E&VMWchq%>0yP z{M2q=zx!VnO71gb8}Al2i+uxb=ffIyx@oso@8Jb88ld6M#wgXd=WcX$q$91o(94Ek zjeBqQ+CZ64hI>sZ@#tjdL}JeJu?GS7N^s$WCIzO`cvj60*d&#&-BQ>+qK#7l+!u1t zBuyL-Cqups?2>)ek2Z|QnAqs_`u1#y8=~Hvsn^2Jtx-O`limc*w;byk^2D-!*zqRi zVcX+4lzwcCgb+(lROWJ~qi;q2!t6;?%qjGcIza=C6{T7q6_?A@qrK#+)+?drrs3U}4Fov+Y}`>M z#40OUPpwpaC-8&q8yW0XWGw`RcSpBX+7hZ@xarfCNnrl-{k@`@Vv> zYWB*T=4hLJ1SObSF_)2AaX*g(#(88~bVG9w)ZE91eIQWflNecYC zzUt}ov<&)S&i$}?LlbIi9i&-g=UUgjWTq*v$!0$;8u&hwL*S^V!GPSpM3PR3Ra5*d z7d77UC4M{#587NcZS4+JN=m#i)7T0`jWQ{HK3rIIlr3cDFt4odV25yu9H1!}BVW-& zrqM5DjDzbd^pE^Q<-$1^_tX)dX8;97ILK{ z!{kF{!h`(`6__+1UD5=8sS&#!R>*KqN9_?(Z$4cY#B)pG8>2pZqI;RiYW6aUt7kk*s^D~Rml_fg$m+4+O5?J&p1)wE zp5L-X(6og1s(?d7X#l-RWO+5Jj(pAS{nz1abM^O;8hb^X4pC7ADpzUlS{F~RUoZp^ zuJCU_fq}V!9;knx^uYD2S9E`RnEsyF^ZO$;`8uWNI%hZzKq=t`q12cKEvQjJ9dww9 zCerpM3n@Ag+XZJztlqHRs!9X(Dv&P;_}zz$N&xwA@~Kfnd3}YiABK*T)Ar2E?OG6V z<;mFs`D?U7>Rradv7(?3oCZZS_0Xr#3NNkpM1@qn-X$;aNLYL;yIMX4uubh^Xb?HloImt$=^s8vm)3g!{H1D|k zmbg_Rr-ypQokGREIcG<8u(=W^+oxelI&t0U`dT=bBMe1fl+9!l&vEPFFu~yAu!XIv4@S{;| z8?%<1@hJp%7AfZPYRARF1hf`cq_VFQ-y74;EdMob{z&qec2hiQJOQa>f-?Iz^VXOr z-wnfu*uT$(5WmLsGsVkHULPBvTRy0H(}S0SQ18W0kp_U}8Phc3gz!Hj#*VYh$AiDE245!YA0M$Q@rM zT;}1DQ}MxV<)*j{hknSHyihgMPCK=H)b-iz9N~KT%<&Qmjf39L@&7b;;>9nQkDax- zk%7ZMA%o41l#(G5K=k{D{80E@P|I;aufYpOlIJXv!dS+T^plIVpPeZ)Gp`vo+?BWt z8U8u=C51u%>yDCWt>`VGkE5~2dD4y_8+n_+I9mFN(4jHJ&x!+l*>%}b4Z>z#(tb~< z+<+X~GIi`sDb=SI-7m>*krlqE3aQD?D5WiYX;#8m|ENYKw}H^95u!=n=xr3jxhCB&InJ7>zgLJg;i?Sjjd`YW!2; z%+y=LwB+MMnSGF@iu#I%!mvt)aXzQ*NW$cHNHwjoaLtqKCHqB}LW^ozBX?`D4&h%# zeMZ3ZumBn}5y9&odo3=hN$Q&SRte*^-SNZg2<}6>OzRpF91oy0{RuZU(Q0I zvx%|9>;)-Ca9#L)HQt~axu0q{745Ac;s1XQKV ze3D9I5gV5SP-J>&3U!lg1`HN>n5B6XxYpwhL^t0Z)4$`YK93vTd^7BD%<)cIm|4e!;*%9}B-3NX+J*Nr@;5(27Zmf(TmfHsej^Bz+J1 zXKIjJ)H{thL4WOuro|6&aPw=-JW8G=2 z|L4YL)^rYf7J7DOKXpTX$4$Y{-2B!jT4y^w8yh3LKRKO3-4DOshFk}N^^Q{r(0K0+ z?7w}x>(s{Diq6K)8sy)>%*g&{u>)l+-Lg~=gteW?pE`B@FE`N!F-+aE;XhjF+2|RV z8vV2((yeA-VDO;3=^E;fhW~b=Wd5r8otQrO{Vu)M1{j(+?+^q%xpYCojc6rmQ<&ytZ2ly?bw*X)WB8(n^B4Gmxr^1bQ&=m;I4O$g{ z3m|M{tmkOyAPnMHu(Z}Q1X1GM|A+)VDP3Fz934zSl)z>N|D^`G-+>Mej|VcK+?iew zQ3=DH4zz;i>z{Yv_l@j*?{936kxM{c7eK$1cf8wxL>>O#`+vsu*KR)te$adfTD*w( zAStXnZk<6N3V-Vs#GB%vXZat+(EFWbkbky#{yGY`rOvN)?{5qUuFv=r=dyYZrULf%MppWuNRUWc z8|YaIn}P0DGkwSZ(njAO$Zhr3Yw`3O1A+&F*2UjO{0`P%kK(qL;kEkfjRC=lxPRjL z{{4PO3-*5RZ_B3LUB&?ZpJ4nk1E4L&eT~HX0Jo(|uGQCW3utB@p)rF@W*n$==TlS zKiTfzhrLbAeRqru%D;fUwXOUcHud{pw@Ib1xxQ}<2)?KC&%y5PVef<7rcu2l!8dsy z?lvdaHJ#s$0m18y{x#fB$o=l)-sV?Qya5GWf#8Vd{~Grn@qgX#!EI`Y>++l%1A;eL z{_7t6jMeEr@a+oxyCL^+_}9Qc;i0&Xd%LXp?to*R|26LKHG(m0)*QF4*h;5%YG5<9)c> z1vq!7bIJSv1^27i-mcH!zX>ep3Iw0^{nx<1jOy)N_UoFD8v}x~2mEWapI3m~kMQkR z#&@4FuEGBn`mgtSx6jeY7vUQNf=^}sTZErIEpH!cy|@7Z zU4h_Oxxd2s=f{}$XXy4}%JqTSjRC \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/retail-api/mvnw.cmd b/healthyliving-casestudy/retail-api/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/retail-api/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/retail-api/pom.xml b/healthyliving-casestudy/retail-api/pom.xml new file mode 100644 index 000000000..1a2eca3ba --- /dev/null +++ b/healthyliving-casestudy/retail-api/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.7.RELEASE + + + com.company.capstone2 + retail-api + 0.0.1-SNAPSHOT + retail-api + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.cloud + spring-cloud-starter-netflix-hystrix + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + org.springframework.cloud + spring-cloud-starter-feign + 1.4.7.RELEASE + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/RetailApiApplication.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/RetailApiApplication.java new file mode 100644 index 000000000..355f4da65 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/RetailApiApplication.java @@ -0,0 +1,34 @@ +package com.company.capstone2.retailapi; + +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +@EnableCircuitBreaker +public class RetailApiApplication { + @Bean + public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory){ + RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); + rabbitTemplate.setMessageConverter(jackson2JsonMessageConverter()); + return rabbitTemplate; + } + + @Bean + public Jackson2JsonMessageConverter jackson2JsonMessageConverter(){ + return new Jackson2JsonMessageConverter(); + } + + public static void main(String[] args) { + SpringApplication.run(RetailApiApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/Service/RetailApiService.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/Service/RetailApiService.java new file mode 100644 index 000000000..fae18b6b7 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/Service/RetailApiService.java @@ -0,0 +1,281 @@ +package com.company.capstone2.retailapi.Service; + +import com.company.capstone2.retailapi.exception.NotFoundException; +import com.company.capstone2.retailapi.model.*; +import com.company.capstone2.retailapi.util.feign.*; +import com.company.capstone2.retailapi.viewModel.Order; +import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; +import feign.FeignException; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +import java.math.BigDecimal; +import java.net.SocketTimeoutException; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +@Component +public class RetailApiService { + + public static final String EXCHANGE = "level-up-exchange"; + public static final String ROUTING_KEY = "level-up.#"; + + @Autowired + InvoiceClient invoiceClient; + @Autowired + LevelupClient levelupClient; + @Autowired + ProductClient productClient; + @Autowired + CustomerClient customerClient; + @Autowired + InventoryClient inventoryClient; + + @Autowired + private RabbitTemplate rabbitTemplate; + + public RetailApiService( + InvoiceClient invoiceClient, + LevelupClient levelupClient, + ProductClient productClient, + CustomerClient customerClient, + InventoryClient inventoryClient, + RabbitTemplate rabbitTemplate) { + this.invoiceClient = invoiceClient; + this.levelupClient = levelupClient; + this.productClient = productClient; + this.customerClient = customerClient; + this.inventoryClient = inventoryClient; + this.rabbitTemplate = rabbitTemplate; + } + + // @HystrixCommand(fallbackMethod = "reliable3") + @Transactional + public Order submitInvoice(Order ivm) { + // check if customer + Customer customer; + try { + customer = customerClient.getCustomerById(ivm.getCustomerId()); + } catch (FeignException e) { + throw new NotFoundException("invalid customer id: " + ivm.getCustomerId()); + } + // from invoiceItems of view model, get inventory from inventory id and then get product thu inventory, + // take product price and set to the invoice item. + List invoiceItems = ivm.getInvoiceItems(); + List inventories = new ArrayList<>(); + invoiceItems.stream().forEach(invoiceItem -> { + Inventory tempInventory; + try { + tempInventory = inventoryClient.getInventoryById(invoiceItem.getInventoryId()); + } catch (FeignException e) { + throw new NotFoundException("invalid inventory id: " + invoiceItem.getInventoryId()); + } + if (tempInventory.getQuantity() < invoiceItem.getQuantity()) { + throw new NotFoundException("Not enough inventory"); + } + inventories.add(tempInventory); + + int productId = tempInventory.getProductId(); + Product tempProduct; + try { + tempProduct = productClient.getProductById(productId); + } catch (FeignException e) { + throw new NotFoundException("invalid product id: " + productId); + } + invoiceItem.setUnitPrice(tempProduct.getListPrice()); + + }); + // add invoice + LocalDate localDate = LocalDate.now(); + ivm.setPurchaseDate(localDate); + ivm = invoiceClient.submitInvoice(ivm); + + // for every 50 dollars, add 10 points + AtomicInteger tempPoints = new AtomicInteger(ivm.getPoint()); + invoiceItems.stream().forEach(invoiceItem -> { + BigDecimal subtotal = + invoiceItem.getUnitPrice().multiply(BigDecimal.valueOf(invoiceItem.getQuantity())); + tempPoints.addAndGet(subtotal.intValue() / 5); + }); + ivm.setPoint(tempPoints.intValue()); + // construct msg + Levelup msg = new Levelup(); + // if customer's point == 0, set member date = now; + int awardPoint = getLevelUpPointsByCustomerId(ivm.getCustomerId()); + if (awardPoint == 0) { + msg.setMemberDate(LocalDate.now()); + } else { // else pick the first date + List tempLevelups = getLevelUpByCustomerId(ivm.getCustomerId()); + msg.setMemberDate(tempLevelups.get(0).getMemberDate()); + } + msg.setPoint(ivm.getPoint()); + msg.setCustomerId(customer.getCustomerId()); + rabbitTemplate.convertAndSend(EXCHANGE, ROUTING_KEY, msg); + + return ivm; + } + + @Transactional + public Order reliable3(Order ivm) { + Customer customer = customerClient.getCustomerById(ivm.getCustomerId()); + List invoiceItems = ivm.getInvoiceItems(); + List inventories = new ArrayList<>(); + invoiceItems.stream().forEach(invoiceItem -> { + Inventory tempInventory = inventoryClient.getInventoryById(invoiceItem.getInventoryId()); + inventories.add(tempInventory); + int productId = tempInventory.getProductId(); + Product tempProduct = productClient.getProductById(productId); + invoiceItem.setUnitPrice(tempProduct.getListPrice()); + }); + // add invoice + LocalDate localDate = LocalDate.now(); + ivm.setPurchaseDate(localDate); + ivm = invoiceClient.submitInvoice(ivm); + + // for every 50 dollars, add 10 points + AtomicInteger tempPoints = new AtomicInteger(ivm.getPoint()); + invoiceItems.stream().forEach(invoiceItem -> { + BigDecimal subtotal = + invoiceItem.getUnitPrice().multiply(BigDecimal.valueOf(invoiceItem.getQuantity())); + tempPoints.addAndGet(subtotal.intValue() / 5); + }); + ivm.setPoint(tempPoints.intValue()); + // construct msg + Levelup msg = new Levelup(); + msg.setMemberDate(LocalDate.now()); + msg.setPoint(ivm.getPoint()); + msg.setCustomerId(customer.getCustomerId()); + rabbitTemplate.convertAndSend(EXCHANGE, ROUTING_KEY, msg); + return ivm; + } + + @Transactional + @HystrixCommand(fallbackMethod = "reliable2") + public int getLevelUpPointsByCustomerId(int id) { + List levelups = getLevelUpByCustomerId(id); + int awardPoints = levelups.stream().mapToInt(Levelup::getPoint).sum(); + return awardPoints; + } + + @Transactional + @HystrixCommand(fallbackMethod = "reliable") + public List getLevelUpByCustomerId(int id) { + List levelups= new ArrayList<>();; + try { + levelups= levelupClient.getLevelUpByCustomerId(id); + } catch (Exception e){ + if (e.getCause().getClass().equals(SocketTimeoutException.class)) { + throw new NotFoundException("Server connection timeout!"); + } + } finally { + return levelups; + } + } + + public int reliable2(int id) { + return -1; + } + + @Transactional + public List reliable(int id) { + Levelup levelup = new Levelup(); + levelup.setCustomerId(id); + levelup.setPoint(0); + List levelups = new ArrayList<>(); + levelups.add(levelup); + return levelups; + } + + + public Order getInvoiceById(int id) { + Order rivm = invoiceClient.getInvoiceById(id); + int point = calculatePoint(rivm); + rivm.setPoint(point); + return rivm; + } + + // helper method + public int calculatePoint(Order rivm) { + int point = rivm.getInvoiceItems().stream() + .map(invoiceItem -> invoiceItem.getUnitPrice().multiply(BigDecimal.valueOf(invoiceItem.getQuantity()))) + .mapToInt(total -> total.intValue() / 5).sum(); + + return point; + } + + + public List getAllInvoices() { + List rivms = invoiceClient.getAllInvoices(); + rivms.stream().forEach(rivm -> { + int point = calculatePoint(rivm); + rivm.setPoint(point); + }); + return rivms; + } + + + public List getInvoicesByCustomerId(int id) { + List rivms = invoiceClient.getInvoicesByCustomerId(id); + rivms.stream().forEach(rivm -> { + int point = calculatePoint(rivm); + rivm.setPoint(point); + }); + return rivms; + } + + public Product getProductById(int id) { + return productClient.getProductById(id); + } + + + public List getProductsInInventory() { +// return productClient.getProductsInInventory(); + List inventories = inventoryClient.getAllInventory(); + List products = new ArrayList<>(); + inventories.stream().forEach(inventory -> { + int productId = inventory.getProductId(); + Product tempProduct = new Product(); + try { + tempProduct = productClient.getProductById(productId); + } catch (FeignException e) { + throw new NotFoundException("invalid product id: " + productId); + } finally { + if (tempProduct.getProductId() != 0) { + products.add(tempProduct); + } + } + }); + return products; + } + + + public List getProductByInvoiceId(int id) { +// return productClient.getProductByInvoiceId(id); + Order invoice = new Order(); + try { + invoice = invoiceClient.getInvoiceById(id); + } catch (FeignException e) { + throw new NotFoundException("invalid invoice id: " + id); + } + int invoiceId = invoice.getInvoiceId(); + List items = invoiceClient.getInvoiceItemByInvoiceId(invoiceId); + List products = new ArrayList<>(); + items.stream().forEach(item -> { + int tempInventoryId = item.getInventoryId(); + int tempProductId = inventoryClient.getAllInventory().stream() + .filter(inventory -> inventory.getInventoryId() == tempInventoryId).collect(Collectors.toList()) + .get(0).getProductId(); + Product tempProduct = getProductById(tempProductId); + products.add(tempProduct); + }); + return products; + } + + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/ControllerExcemptionHandler.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/ControllerExcemptionHandler.java new file mode 100644 index 000000000..da51464cb --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/ControllerExcemptionHandler.java @@ -0,0 +1,75 @@ +package com.company.capstone2.retailapi.controller; + +import com.company.capstone2.retailapi.exception.NotFoundException; +import org.springframework.dao.DataAccessException; +import org.springframework.hateoas.VndErrors; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.context.request.WebRequest; + +import java.util.ArrayList; +import java.util.List; +@ControllerAdvice +public class ControllerExcemptionHandler { + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity validationError(MethodArgumentNotValidException e, WebRequest request) { + // BindingResult holds the validation errors + BindingResult result = e.getBindingResult(); + // Validation errors are stored in FieldError objects + List fieldErrors = result.getFieldErrors(); + + // Translate the FieldErrors to VndErrors + List vndErrorList = new ArrayList<>(); + + for (FieldError fieldError : fieldErrors) { + VndErrors.VndError vndError = new VndErrors.VndError(request.toString(), fieldError.getDefaultMessage()); + vndErrorList.add(vndError); + } + + // Wrap all of the VndError objects in a VndErrors object + VndErrors vndErrors = new VndErrors(vndErrorList); + + // Create and return the ResponseEntity + ResponseEntity responseEntity = new ResponseEntity<>(vndErrors, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {IllegalArgumentException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity outOfRangeException(IllegalArgumentException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NumberFormatException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity numberFormatException(NumberFormatException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "Parameter must be a whole number. " + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {DataAccessException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity dataAccessException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) + public ResponseEntity notFoundException(DataAccessException e, WebRequest request) { + VndErrors error = new VndErrors(request.toString(), "An internal error occured" + e.getMessage()); + ResponseEntity responseEntity = new ResponseEntity<>(error, HttpStatus.UNPROCESSABLE_ENTITY); + return responseEntity; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/RetailApiController.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/RetailApiController.java new file mode 100644 index 000000000..025552d99 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/controller/RetailApiController.java @@ -0,0 +1,63 @@ +package com.company.capstone2.retailapi.controller; + +import com.company.capstone2.retailapi.Service.RetailApiService; +import com.company.capstone2.retailapi.model.Product; +import com.company.capstone2.retailapi.viewModel.Order; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RefreshScope +public class RetailApiController { + + @Autowired + RetailApiService service; + + public RetailApiController(RetailApiService service) { + this.service = service; + } + + @RequestMapping(value = "/invoices", method = RequestMethod.POST) + public Order submitInvoice(@RequestBody Order ivm) { + return service.submitInvoice(ivm); + } + + @RequestMapping(value = "/invoices/{id}", method = RequestMethod.GET) + public Order getInvoiceById(@PathVariable int id) { + return service.getInvoiceById(id); + } + + @RequestMapping(value = "/invoices", method = RequestMethod.GET) + public List getAllInvoices() { + return service.getAllInvoices(); + } + + @RequestMapping(value = "/invoices/customer/{id}", method = RequestMethod.GET) + public List getInvoicesByCustomerId(@PathVariable int id) { + return service.getInvoicesByCustomerId(id); + } + + @RequestMapping(value = "/products/inventory", method = RequestMethod.GET) + public List getProductsInInventory() { + return service.getProductsInInventory(); + } + + @RequestMapping(value = "/products/{id}", method = RequestMethod.GET) + public Product getProductById(@PathVariable int id) { + return service.getProductById(id); + } + + @RequestMapping(value = "/products/invoice/{id}", method = RequestMethod.GET) + public List getProductByInvoiceId(@PathVariable int id) { + return service.getProductByInvoiceId(id); + } + + @RequestMapping(value = "/levelup/customer/{id}", method = RequestMethod.GET) + public int getLevelUpPointsByCustomerId(@PathVariable int id) { + return service.getLevelUpPointsByCustomerId(id); + } + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/exception/NotFoundException.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/exception/NotFoundException.java new file mode 100644 index 000000000..fee31764f --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/exception/NotFoundException.java @@ -0,0 +1,7 @@ +package com.company.capstone2.retailapi.exception; + +public class NotFoundException extends RuntimeException{ + public NotFoundException(String message) { + super(message); + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Customer.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Customer.java new file mode 100644 index 000000000..0ff5e358b --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Customer.java @@ -0,0 +1,98 @@ +package com.company.capstone2.retailapi.model; + +import java.util.Objects; + +public class Customer { + private int customerId; + private String fistName; + private String lastName; + private String street; + private String city; + private String zip; + private String email; + private String phone; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Customer customer = (Customer) o; + return customerId == customer.customerId && + fistName.equals(customer.fistName) && + lastName.equals(customer.lastName) && + street.equals(customer.street) && + city.equals(customer.city) && + zip.equals(customer.zip) && + email.equals(customer.email) && + phone.equals(customer.phone); + } + + @Override + public int hashCode() { + return Objects.hash(customerId, fistName, lastName, street, city, zip, email, phone); + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public String getFistName() { + return fistName; + } + + public void setFistName(String fistName) { + this.fistName = fistName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Inventory.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Inventory.java new file mode 100644 index 000000000..6b745056d --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Inventory.java @@ -0,0 +1,48 @@ +package com.company.capstone2.retailapi.model; + +import java.util.Objects; + +public class Inventory { + private int inventoryId; + private int productId; + private int quantity; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Inventory inventory = (Inventory) o; + return inventoryId == inventory.inventoryId && + productId == inventory.productId && + quantity == inventory.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(inventoryId, productId, quantity); + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/InvoiceItem.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/InvoiceItem.java new file mode 100644 index 000000000..288d15f71 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/InvoiceItem.java @@ -0,0 +1,69 @@ +package com.company.capstone2.retailapi.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class InvoiceItem { + private int invoiceItemId; + private int invoiceId; + private int inventoryId; + private int quantity; + private BigDecimal unitPrice; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceItem that = (InvoiceItem) o; + return invoiceItemId == that.invoiceItemId && + invoiceId == that.invoiceId && + inventoryId == that.inventoryId && + quantity == that.quantity && + unitPrice.equals(that.unitPrice); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceItemId, invoiceId, inventoryId, quantity, unitPrice); + } + + public int getInvoiceItemId() { + return invoiceItemId; + } + + public void setInvoiceItemId(int invoiceItemId) { + this.invoiceItemId = invoiceItemId; + } + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getInventoryId() { + return inventoryId; + } + + public void setInventoryId(int inventoryId) { + this.inventoryId = inventoryId; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Levelup.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Levelup.java new file mode 100644 index 000000000..50de0e2c3 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Levelup.java @@ -0,0 +1,77 @@ +package com.company.capstone2.retailapi.model; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; + +import java.time.LocalDate; +import java.util.Objects; + +public class Levelup { + private int levelupId; + private int customerId; + private int point; + // generates "yyyy-MM-dd" output + @JsonSerialize(using = LocalDateSerializer.class) +// // handles "yyyy-MM-dd" input just fine (note: +// "yyyy-M-d" format will not work) +//// @JsonDeserialize(using = LocalDateDeserializer.class) + private LocalDate memberDate; // create memberdate when create customer + + @Override + public String toString() { + return "Levelup{" + + "levelupId=" + levelupId + + ", customerId=" + customerId + + ", point=" + point + + ", memberdate=" + memberDate + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Levelup levelup = (Levelup) o; + return levelupId == levelup.levelupId && + customerId == levelup.customerId && + point == levelup.point && + memberDate.equals(levelup.memberDate); + } + + @Override + public int hashCode() { + return Objects.hash(levelupId, customerId, point, memberDate); + } + + public int getLevelupId() { + return levelupId; + } + + public void setLevelupId(int levelupId) { + this.levelupId = levelupId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public int getPoint() { + return point; + } + + public void setPoint(int point) { + this.point = point; + } + + public LocalDate getMemberDate() { + return memberDate; + } + + public void setMemberDate(LocalDate memberDate) { + this.memberDate = memberDate; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Product.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Product.java new file mode 100644 index 000000000..20d5d34ed --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/model/Product.java @@ -0,0 +1,69 @@ +package com.company.capstone2.retailapi.model; + +import java.math.BigDecimal; +import java.util.Objects; + +public class Product { + private int productId; + private String productName; + private String productDescription; + private BigDecimal listPrice; + private BigDecimal unitCost; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Product product = (Product) o; + return productId == product.productId && + productName.equals(product.productName) && + productDescription.equals(product.productDescription) && + listPrice.equals(product.listPrice) && + unitCost.equals(product.unitCost); + } + + @Override + public int hashCode() { + return Objects.hash(productId, productName, productDescription, listPrice, unitCost); + } + + public int getProductId() { + return productId; + } + + public void setProductId(int productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public BigDecimal getListPrice() { + return listPrice; + } + + public void setListPrice(BigDecimal listPrice) { + this.listPrice = listPrice; + } + + public BigDecimal getUnitCost() { + return unitCost; + } + + public void setUnitCost(BigDecimal unitCost) { + this.unitCost = unitCost; + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/CustomerClient.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/CustomerClient.java new file mode 100644 index 000000000..40899f29c --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/CustomerClient.java @@ -0,0 +1,15 @@ +package com.company.capstone2.retailapi.util.feign; + +import com.company.capstone2.retailapi.model.Customer; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +@FeignClient(name="customer-service") +public interface CustomerClient { + + @RequestMapping(value = "/customers/{id}", method = RequestMethod.GET) + public Customer getCustomerById(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InventoryClient.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InventoryClient.java new file mode 100644 index 000000000..0b01e9398 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InventoryClient.java @@ -0,0 +1,22 @@ +package com.company.capstone2.retailapi.util.feign; + +import com.company.capstone2.retailapi.model.Customer; +import com.company.capstone2.retailapi.model.Inventory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="inventory-service") +public interface InventoryClient { + + @RequestMapping(value = "/inventory/{id}", method = RequestMethod.GET) + public Inventory getInventoryById(@PathVariable int id); + + @RequestMapping(value = "/inventory", method = RequestMethod.GET) + public List getAllInventory(); + + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InvoiceClient.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InvoiceClient.java new file mode 100644 index 000000000..f1fe843c8 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/InvoiceClient.java @@ -0,0 +1,28 @@ +package com.company.capstone2.retailapi.util.feign; + +import com.company.capstone2.retailapi.model.InvoiceItem; +import com.company.capstone2.retailapi.viewModel.Order; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@FeignClient(name="invoice-service") +public interface InvoiceClient { + + @RequestMapping(value = "/invoices", method = RequestMethod.POST) + public Order submitInvoice(@RequestBody Order invoice); + + @RequestMapping(value = "/invoices/{id}", method = RequestMethod.GET) + public Order getInvoiceById(@PathVariable int id); + + @RequestMapping(value = "/invoices", method = RequestMethod.GET) + public List getAllInvoices(); + + @RequestMapping(value = "/invoices/customer/{id}", method = RequestMethod.GET) + public List getInvoicesByCustomerId(@PathVariable int id); + + @RequestMapping(value = "/invoices/invoiceitem/{id}", method = RequestMethod.GET) + List getInvoiceItemByInvoiceId(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/LevelupClient.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/LevelupClient.java new file mode 100644 index 000000000..b2b568a5b --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/LevelupClient.java @@ -0,0 +1,15 @@ +package com.company.capstone2.retailapi.util.feign; + +import com.company.capstone2.retailapi.model.Levelup; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="levelup-service") +public interface LevelupClient { + @RequestMapping(value = "/levelup/customer/{id}", method = RequestMethod.GET) + public List getLevelUpByCustomerId(@PathVariable int id); +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/ProductClient.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/ProductClient.java new file mode 100644 index 000000000..7331f64c0 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/util/feign/ProductClient.java @@ -0,0 +1,17 @@ +package com.company.capstone2.retailapi.util.feign; + +import com.company.capstone2.retailapi.model.Product; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.List; + +@FeignClient(name="product-service") +public interface ProductClient { + + @RequestMapping(value = "/products/{id}", method = RequestMethod.GET) + public Product getProductById(@PathVariable int id); + +} diff --git a/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/viewModel/Order.java b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/viewModel/Order.java new file mode 100644 index 000000000..90faa4ae3 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/java/com/company/capstone2/retailapi/viewModel/Order.java @@ -0,0 +1,73 @@ +package com.company.capstone2.retailapi.viewModel; + + +import com.company.capstone2.retailapi.model.InvoiceItem; + +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + +public class Order { + private int invoiceId; + private int customerId; + private LocalDate purchaseDate; + private List invoiceItems; + private int point; + + public int getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(int invoiceId) { + this.invoiceId = invoiceId; + } + + public int getCustomerId() { + return customerId; + } + + public void setCustomerId(int customerId) { + this.customerId = customerId; + } + + public LocalDate getPurchaseDate() { + return purchaseDate; + } + + public void setPurchaseDate(LocalDate purchaseDate) { + this.purchaseDate = purchaseDate; + } + + public List getInvoiceItems() { + return invoiceItems; + } + + public void setInvoiceItems(List invoiceItems) { + this.invoiceItems = invoiceItems; + } + + public int getPoint() { + return point; + } + + public void setPoint(int point) { + this.point = point; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Order that = (Order) o; + return invoiceId == that.invoiceId && + customerId == that.customerId && + point == that.point && + purchaseDate.equals(that.purchaseDate) && + invoiceItems.equals(that.invoiceItems); + } + + @Override + public int hashCode() { + return Objects.hash(invoiceId, customerId, purchaseDate, invoiceItems, point); + } +} diff --git a/healthyliving-casestudy/retail-api/src/main/resources/application.properties b/healthyliving-casestudy/retail-api/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/healthyliving-casestudy/retail-api/src/main/resources/bootstrap.properties b/healthyliving-casestudy/retail-api/src/main/resources/bootstrap.properties new file mode 100644 index 000000000..1b28787cf --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/main/resources/bootstrap.properties @@ -0,0 +1,2 @@ +spring.application.name=retail-api +spring.cloud.config.uri=http://localhost:9999 \ No newline at end of file diff --git a/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/RetailApiApplicationTests.java b/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/RetailApiApplicationTests.java new file mode 100644 index 000000000..7348e02d5 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/RetailApiApplicationTests.java @@ -0,0 +1,16 @@ +package com.company.capstone2.retailapi; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class RetailApiApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/Service/RetailApiServiceTest.java b/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/Service/RetailApiServiceTest.java new file mode 100644 index 000000000..592d8e2c9 --- /dev/null +++ b/healthyliving-casestudy/retail-api/src/test/java/com/company/capstone2/retailapi/Service/RetailApiServiceTest.java @@ -0,0 +1,269 @@ +package com.company.capstone2.retailapi.Service; + +import com.company.capstone2.retailapi.model.*; +import com.company.capstone2.retailapi.util.feign.*; +import com.company.capstone2.retailapi.viewModel.Order; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import static org.mockito.internal.verification.VerificationModeFactory.times; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class RetailApiServiceTest { + + @Mock + InvoiceClient invoiceClient; + @Mock + LevelupClient levelupClient; + @Mock + ProductClient productClient; + @Mock + CustomerClient customerClient; + @Mock + InventoryClient inventoryClient; + @Mock + RabbitTemplate rabbit; + @InjectMocks + RetailApiService service; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + public static final String EXCHANGE = "level-up-exchange"; + public static final String ROUTING_KEY = "level-up.#"; + + // public InvoiceViewModel submitInvoice(InvoiceViewModel ivm) + @Test + public void testSubmitInvoice() { + // arrange input + // retailInvoiceViewModel{ + // customerId:10, + // invoiceItem:[{inventoryId:1000, quantity:1 },{inventoryId:1001, quantity:10}], + // awardPoints:40 + // } + + Order rivm = new Order(); + rivm.setCustomerId(1); + rivm.setPurchaseDate(LocalDate.now()); + InvoiceItem invoiceItem1a = new InvoiceItem(); + invoiceItem1a.setInventoryId(1000); + invoiceItem1a.setQuantity(1); + invoiceItem1a.setUnitPrice(new BigDecimal(100.00).setScale(2)); + InvoiceItem invoiceItem1b = new InvoiceItem(); + invoiceItem1b.setInventoryId(1001); + invoiceItem1b.setQuantity(10); + invoiceItem1b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + List invoiceItems = new ArrayList<>(); + invoiceItems.add(invoiceItem1a); + invoiceItems.add(invoiceItem1b); + rivm.setInvoiceItems(invoiceItems); + + Order rivm2 = new Order(); + rivm2.setInvoiceId(1); + rivm2.setCustomerId(1); + rivm2.setPurchaseDate(LocalDate.now()); + InvoiceItem invoiceItem2a = new InvoiceItem(); + invoiceItem2a.setInvoiceItemId(1); + invoiceItem2a.setInventoryId(1000); + invoiceItem2a.setQuantity(1); + invoiceItem2a.setUnitPrice(new BigDecimal(100.00).setScale(2)); + InvoiceItem invoiceItem2b = new InvoiceItem(); + invoiceItem2a.setInvoiceItemId(2); + invoiceItem2b.setInventoryId(1001); + invoiceItem2b.setQuantity(10); + invoiceItem2b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + List invoiceItems2 = new ArrayList<>(); + invoiceItems2.add(invoiceItem2a); + invoiceItems2.add(invoiceItem2b); + rivm2.setInvoiceItems(invoiceItems2); + + Customer customer1 = new Customer(); + customer1.setCustomerId(1); + when(customerClient.getCustomerById(1)).thenReturn(customer1); + Inventory inventory1a = new Inventory(); + inventory1a.setProductId(50); + inventory1a.setQuantity(1000); + Inventory inventory1b = new Inventory(); + inventory1b.setProductId(51); + inventory1b.setQuantity(1000); + when(inventoryClient.getInventoryById(1000)).thenReturn(inventory1a); + when(inventoryClient.getInventoryById(1001)).thenReturn(inventory1b); + Product product1a = new Product(); + product1a.setListPrice(new BigDecimal(100.0).setScale(2)); + Product product1b = new Product(); + product1b.setListPrice(new BigDecimal(10.0).setScale(2)); + when(productClient.getProductById(50)).thenReturn(product1a); + when(productClient.getProductById(51)).thenReturn(product1b); + when(invoiceClient.submitInvoice(rivm)).thenReturn(rivm2); + rivm = service.submitInvoice(rivm); + + verify(customerClient, times(1)).getCustomerById(1); + verify(inventoryClient, times(2)).getInventoryById(any(Integer.class)); + verify(productClient, times(2)).getProductById(any(Integer.class)); + verify(levelupClient, times(1)).getLevelUpByCustomerId(1); + verify(rabbit, times(1)).convertAndSend(eq(EXCHANGE), + eq(ROUTING_KEY), any(Object.class)); + assertEquals(rivm.getPoint(), 40); + } + + // public InvoiceViewModel getInvoiceById(int id) + @Test + public void testGetInvoiceById() { + //arrange + Order rivm2 = new Order(); + rivm2.setInvoiceId(1); + rivm2.setCustomerId(1); + rivm2.setPurchaseDate(LocalDate.now()); + InvoiceItem invoiceItem2a = new InvoiceItem(); + invoiceItem2a.setInvoiceItemId(1); + invoiceItem2a.setInventoryId(1000); + invoiceItem2a.setQuantity(1); + invoiceItem2a.setUnitPrice(new BigDecimal(100.00).setScale(2)); + InvoiceItem invoiceItem2b = new InvoiceItem(); + invoiceItem2a.setInvoiceItemId(2); + invoiceItem2b.setInventoryId(1001); + invoiceItem2b.setQuantity(10); + invoiceItem2b.setUnitPrice(new BigDecimal(10.00).setScale(2)); + List invoiceItems2 = new ArrayList<>(); + invoiceItems2.add(invoiceItem2a); + invoiceItems2.add(invoiceItem2b); + rivm2.setInvoiceItems(invoiceItems2); + when(invoiceClient.getInvoiceById(5)).thenReturn(rivm2); + // act + rivm2 = service.getInvoiceById(5); + // assert + verify(invoiceClient, times(1)).getInvoiceById(5); + } + + // public List getAllInvoices() + @Test + public void testGetAllInvoices() { + // act + List ivms = service.getAllInvoices(); + // assert + verify(invoiceClient, times(1)).getAllInvoices(); + } + + // public List getInvoicesByCustomerId(int id) + @Test + public void testGetInvoiceByCustomerId() { + // act + List ivms = service.getInvoicesByCustomerId(5); + // assert + verify(invoiceClient, times(1)).getInvoicesByCustomerId(5); + } + + // public Product getProductById(int id) + @Test + public void testGetProductsById() { + Product product = service.getProductById(5); + verify(productClient, times(1)).getProductById(5); + } + + // public List getProductsInInventory() { + @Test + public void testGetProductsInInventory() { + Inventory inventory1 = new Inventory(); + inventory1.setInventoryId(1); + inventory1.setProductId(10); + inventory1.setQuantity(900); + Inventory inventory2 = new Inventory(); + inventory2.setInventoryId(2); + inventory2.setProductId(11); + inventory2.setQuantity(90); + List inventories = new ArrayList<>(); + inventories.add(inventory1); + inventories.add(inventory2); + + when(inventoryClient.getAllInventory()).thenReturn(inventories); + // Product tempProduct = productDao.getProductById(productId); + Product product1 = new Product(); + product1.setProductId(10); + product1.setProductDescription("garbage"); + Product product2 = new Product(); + product2.setProductId(11); + product2.setProductDescription("trash"); + when(productClient.getProductById(10)).thenReturn(product1); + when(productClient.getProductById(11)).thenReturn(product2); + + List products = new ArrayList<>(); + products.add(product1); + products.add(product2); + + List assertList = service.getProductsInInventory(); + assertEquals(assertList, products); + } + + + @Test + public void testGetProductByInvoiceId() { + Order invoice = new Order(); + invoice.setInvoiceId(1); + + InvoiceItem invoiceItem1 = new InvoiceItem(); + invoiceItem1.setInvoiceId(1); + invoiceItem1.setInventoryId(10); + InvoiceItem invoiceItem2 = new InvoiceItem(); + invoiceItem2.setInvoiceId(1); + invoiceItem2.setInventoryId(11); + List invoiceItems = new ArrayList<>(); + invoiceItems.add(invoiceItem1); + invoiceItems.add(invoiceItem2); + + Inventory inventory1 = new Inventory(); + inventory1.setInventoryId(10); + inventory1.setProductId(100); + Inventory inventory2 = new Inventory(); + inventory2.setInventoryId(11); + inventory2.setProductId(101); + + List inventories = new ArrayList<>(); + inventories.add(inventory1); + inventories.add(inventory2); + + Product product1 = new Product(); + product1.setProductId(100); + product1.setProductDescription("ball"); + Product product2 = new Product(); + product2.setProductId(101); + product2.setProductDescription("phone"); + + List products = new ArrayList<>(); + products.add(product1); + products.add(product2); + + when(invoiceClient.getInvoiceById(1)).thenReturn(invoice); + when(invoiceClient.getInvoiceItemByInvoiceId(1)).thenReturn(invoiceItems); + when(inventoryClient.getAllInventory()).thenReturn(inventories); + + when(service.getProductById(100)).thenReturn(product1); + when(service.getProductById(101)).thenReturn(product2); + + List assertList = service.getProductByInvoiceId(1); + assertEquals(assertList, products); + } + + // public int getLevelUpPointsByCustomerId(int id) + @Test + public void testGetLevelUpPointsByCustomerId() { + int points = service.getLevelUpPointsByCustomerId(5); + verify(levelupClient, times(1)).getLevelUpByCustomerId(5); + } +} \ No newline at end of file diff --git a/healthyliving-casestudy/spring-config-server/.gitignore b/healthyliving-casestudy/spring-config-server/.gitignore new file mode 100644 index 000000000..a2a3040aa --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/spring-config-server/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/spring-config-server/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..72308aa47 --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +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 + + https://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. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/spring-config-server/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/spring-config-server/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..01e67997377a393fd672c7dcde9dccbedf0cb1e9 GIT binary patch literal 48337 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" + # TODO classpath? +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + wget "$jarUrl" -O "$wrapperJarPath" + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + curl -o "$wrapperJarPath" "$jarUrl" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/spring-config-server/mvnw.cmd b/healthyliving-casestudy/spring-config-server/mvnw.cmd new file mode 100644 index 000000000..fef5a8f7f --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/mvnw.cmd @@ -0,0 +1,161 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + echo Found %WRAPPER_JAR% +) else ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" + echo Finished downloading %WRAPPER_JAR% +) +@REM End of extension + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/spring-config-server/pom.xml b/healthyliving-casestudy/spring-config-server/pom.xml new file mode 100644 index 000000000..8466bb11e --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.6.RELEASE + + + com.trilogyed + spring-config-server + 0.0.1-SNAPSHOT + spring-config-server + Demo project for Spring Boot + + + 1.8 + Greenwich.SR2 + + + + + org.springframework.cloud + spring-cloud-config-server + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/spring-config-server/src/main/java/com/trilogyed/springconfigserver/SpringConfigServerApplication.java b/healthyliving-casestudy/spring-config-server/src/main/java/com/trilogyed/springconfigserver/SpringConfigServerApplication.java new file mode 100644 index 000000000..f0f9939fa --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/src/main/java/com/trilogyed/springconfigserver/SpringConfigServerApplication.java @@ -0,0 +1,15 @@ +package com.trilogyed.springconfigserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.config.server.EnableConfigServer; + +@SpringBootApplication +@EnableConfigServer +public class SpringConfigServerApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringConfigServerApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/spring-config-server/src/main/resources/application.properties b/healthyliving-casestudy/spring-config-server/src/main/resources/application.properties new file mode 100644 index 000000000..de9ce299f --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/src/main/resources/application.properties @@ -0,0 +1,3 @@ +server.port = 9999 +spring.cloud.config.server.git.uri= https://github.com/Simonkcoding/capstone2-cloud-config.git + diff --git a/healthyliving-casestudy/spring-config-server/src/test/java/com/trilogyed/springconfigserver/SpringConfigServerApplicationTests.java b/healthyliving-casestudy/spring-config-server/src/test/java/com/trilogyed/springconfigserver/SpringConfigServerApplicationTests.java new file mode 100644 index 000000000..725b981b9 --- /dev/null +++ b/healthyliving-casestudy/spring-config-server/src/test/java/com/trilogyed/springconfigserver/SpringConfigServerApplicationTests.java @@ -0,0 +1,16 @@ +package com.trilogyed.springconfigserver; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class SpringConfigServerApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java index cc810344d..0656158f5 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/MainApplication.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; @SpringBootApplication +@ComponentScan(basePackages = "com.casestudy") public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/ProductConfig.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/ProductConfig.java new file mode 100644 index 000000000..3055845bf --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/config/ProductConfig.java @@ -0,0 +1,26 @@ +package com.casestudy.config; + + +// +//import com.casestudy.model.Product; +//import com.casestudy.repository.ProductRepository; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Configuration; +// +//import javax.annotation.PostConstruct; +//import java.util.Arrays; +// +//@Configuration +//public class ProductConfig { +// @Autowired +// private ProductRepository repository; +// +// @PostConstruct +// public void setup() { +// repository.saveAll(Arrays.asList( +// new Product(), +// new Product(), +// new Product(), +// new Product())); +// } +//} \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java index 911837907..19304ce6b 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/EventController.java @@ -3,48 +3,90 @@ import com.casestudy.model.Event; import com.casestudy.service.EventService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; -@RestController -@RequestMapping(value="/events") +@Controller public class EventController { - - private EventService service; - - @Autowired - public EventController(EventService service) { - this.service = service; + private EventService EventService; +@Autowired + public EventController(EventService eventService) { + EventService = eventService; } - @PostMapping(value = "/") - public ResponseEntity create(Event eventToBeCreated) { - return new ResponseEntity<>(service.create(eventToBeCreated), HttpStatus.CREATED); + @InitBinder + public void initBinder(WebDataBinder binder){ + // Date - dd/mm/yyyy + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + binder.registerCustomEditor(Date.class, + new CustomDateEditor(dateFormat,false)); } - - @GetMapping(value = "/{id}") - public ResponseEntity readById(@PathVariable Long id) { - return new ResponseEntity<>(service.readById(id), HttpStatus.OK); + @RequestMapping(value = "/list-Events", method = RequestMethod.GET) + public String showEvent(ModelMap model) { + String name = getLoggedInUserName(model); + model.put("Events",EventService.getEventByUser(name)); + // model insert to do service + return "list-Events"; + } + private String getLoggedInUserName(ModelMap model) { + Object principal = SecurityContextHolder + .getContext() + .getAuthentication() + .getPrincipal(); + if (principal instanceof UserDetails){ + return ((UserDetails) principal).getUsername(); + } + return principal.toString(); } - @GetMapping(value = "/") - public ResponseEntity> readAll() { - return new ResponseEntity<>(service.readAll(), HttpStatus.OK); + @RequestMapping(value = "/add-Event", method = RequestMethod.GET) + public String showAddEventPage(ModelMap model){ + model.addAttribute("Events", new Event()); + model.addAttribute("Event", new Event()); + return "Event"; } - @PutMapping(value = "/{id}") - public ResponseEntity updateById( - @PathVariable Long id, - @RequestBody Event newData) { - return new ResponseEntity<>(service.updateById(id, newData), HttpStatus.OK); + @RequestMapping(value = "/delete-Event", method = RequestMethod.GET) + public String deleteEvent(@RequestParam long id){ + EventService.deleteEvent(id); + return "redirect:/list-Events"; } - @DeleteMapping(value = "/{id}") - public ResponseEntity deleteById(@PathVariable Long id) { - return new ResponseEntity<>(service.deleteById(id), HttpStatus.OK); + @RequestMapping(value = "/update-Event", method = RequestMethod.GET) + public String showUpdateEventPage(@RequestParam long id, ModelMap model){ + Event Event = EventService.getEventById(id).get(); + model.put("Event", Event); + return "Event"; + } + @RequestMapping(value = "/update-Event", method = RequestMethod.POST) + public String updateEvent(ModelMap model, @Valid Event Event, BindingResult result){ + if (result.hasErrors()) { + return "Event"; + } + Event.setName(getLoggedInUserName(model)); + EventService.updateEvent(Event); + return "redirect:/list-Events"; + } + @RequestMapping(value = "/add-Event", method = RequestMethod.POST) + public String addEvent(ModelMap model, @Valid Event Event, BindingResult result){ + if (result.hasErrors()){ + return "Event"; + } + Event.setName(getLoggedInUserName(model)); + EventService.saveEvent(Event); + return "redirect:/list-Events"; } } - diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java index fa8cf3cfa..df4a85ce3 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/controller/ProductController.java @@ -3,9 +3,13 @@ import com.casestudy.model.Product; import com.casestudy.service.ProductService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.EnableMBeanExport; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,13 +26,13 @@ public ProductController(ProductService service) { } @PostMapping(value = "/") - public ResponseEntity create(Product employeeToBeCreated) { - return new ResponseEntity<>(service.create(employeeToBeCreated), HttpStatus.CREATED); + public ResponseEntity create(Product ProductToBeCreated) { + return new ResponseEntity<>(service.create(ProductToBeCreated), HttpStatus.CREATED); } @GetMapping(value = "/{id}") public ResponseEntity readById(@PathVariable Long id) { - return new ResponseEntity<>(service.readById("id"), HttpStatus.OK); + return new ResponseEntity<>(service.readById(id), HttpStatus.OK); } @GetMapping(value = "/") @@ -48,4 +52,4 @@ public ResponseEntity deleteById(@PathVariable Long id) { return new ResponseEntity<>(service.deleteById(id), HttpStatus.OK); } -} +} \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Cart.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Cart.java new file mode 100644 index 000000000..fc419fecc --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Cart.java @@ -0,0 +1,42 @@ +package com.casestudy.model; + +import javax.persistence.*; +import java.util.List; +import java.util.Objects; + +@Entity +public class Cart { + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + private Long id; + + private String CartName; + + @OneToMany + @ElementCollection + private List Products; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public List getProducts() { + return Products; + } + + public void setProducts(List Products) { + this.Products = Products; + } + + public String getCartName() { + return CartName; + } + + public void setCartName(String CartName) { + this.CartName = CartName; + } +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java index cecd412c0..480afa50d 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Event.java @@ -5,78 +5,54 @@ import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.*; +import javax.validation.constraints.Size; import java.util.Date; import java.util.List; import java.util.Objects; @Entity +@Table(name = "event_list") public class Event { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String location; - private String description; - private Date date; - @OneToMany - private List members; + private String name; + private Date targetDate; - public Event() { - } - - public Event(Long id, String location, String description, - Date date, List members) { - this.id = id; - this.location = location; - this.description = description; - this.date = date; - this.members = members; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Date getDate() { - return date; - } - - public void setDate(Date date) { - this.date = date; - } - - public List getMembers() { - return members; - } - - public void setMembers(List members) { - this.members = members; + public Event(String name,String location, Date targetDate) { } + public Event(){ + super(); + } - @Override - public String toString() { - try { - return new ObjectMapper().writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); + public Event(String userName,String location, Date targetDate, boolean isDone) { + super(); + this.name = name; + this.location = location; + this.targetDate = targetDate; + } + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getlocation() { + return location; + } + public void setlocation(String location) { + this.location = location; + } + public Date getTargetDate() { + return targetDate; + } + public void setTargetDate(Date targetDate) { + this.targetDate = targetDate; } } -} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java index 7e2953127..f7f3695ca 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/model/Product.java @@ -1,35 +1,43 @@ package com.casestudy.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import javax.persistence.*; +import java.awt.*; +import java.util.Date; import java.util.Objects; @Entity +@Table(name="product") public class Product { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private String id; + private Long id; + private String name; - private double price; - private String photo; + private Double price; + private Integer quantity; + + @ManyToOne(cascade = CascadeType.ALL) + private Cart Cart; public Product() { } - public Product(String id, String name, String photo, double price) { - this.id = id; + public Product(String name, Double price, Integer quantity, Cart cart) { + this.name = name; this.price = price; - this.photo = photo; + this.quantity = quantity; + Cart = cart; } - public String getId() { + public Long getId() { return id; } - public void setId(String id) { + public void setId(Long id) { this.id = id; } @@ -41,45 +49,36 @@ public void setName(String name) { this.name = name; } - public double getPrice() { + public Double getPrice() { return price; } - public void setPrice(double price) { + public void setPrice(Double price) { this.price = price; } - public String getPhoto() { - return photo; + public Integer getQuantity() { + return quantity; } - public void setPhoto(String photo) { - this.photo = photo; + public void setQuantity(Integer quantity) { + this.quantity = quantity; } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Product)) return false; - Product product = (Product) o; - return Double.compare(product.getPrice(), getPrice()) == 0 && - Objects.equals(getId(), product.getId()) && - getName().equals(product.getName()) && - getPhoto().equals(product.getPhoto()); + public com.casestudy.model.Cart getCart() { + return Cart; } - @Override - public int hashCode() { - return Objects.hash(getId(), getName(), getPrice(), getPhoto()); + public void setCart(com.casestudy.model.Cart cart) { + Cart = cart; } @Override public String toString() { - return "Product{" + - "id='" + id + '\'' + - ", name='" + name + '\'' + - ", price=" + price + - ", photo='" + photo + '\'' + - '}'; + try { + return new ObjectMapper().writeValueAsString(this); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } } } diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/CartRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/CartRepository.java new file mode 100644 index 000000000..eda9c2b09 --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/CartRepository.java @@ -0,0 +1,10 @@ +package com.casestudy.repository; + +import com.casestudy.model.Cart; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface CartRepository extends CrudRepository { + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java index 88fcd69e8..6b63ae10e 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/EventRepository.java @@ -4,6 +4,9 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface EventRepository extends CrudRepository { + List findByName(String user); } diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java index 7aba57379..b6f806265 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/repository/ProductRepository.java @@ -4,7 +4,11 @@ import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Map; + @Repository -public interface ProductRepository extends CrudRepository { +public interface ProductRepository extends CrudRepository { + } diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventInterfaceService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventInterfaceService.java new file mode 100644 index 000000000..37e800fbc --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventInterfaceService.java @@ -0,0 +1,23 @@ +package com.casestudy.service; + +import com.casestudy.model.Event; + +import java.util.Date; +import java.util.List; +import java.util.Optional; + +public interface EventInterfaceService { + + List getEventByUser(String user); + + Optional getEventById(long id); + + void updateEvent(Event event); + + void addEvent(String name, String location, Date targetDate, boolean isDone); + + void deleteEvent(long id); + + void saveEvent(Event event); + } + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java index 7be80c864..78f1b3400 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/EventService.java @@ -6,50 +6,49 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Optional; @Service -public class EventService { - private EventRepository repository; +public class EventService implements EventInterfaceService { @Autowired - public EventService(EventRepository repository) { + private EventRepository repository; - this.repository = repository; + @Override + public List getEventByUser(String user){ + return repository.findByName(user); } - public Event create(Event eventToBeCreated) { - Event persistedEvent = repository.save(eventToBeCreated); - return persistedEvent; + @Override + public Optional getEventById(long id){ + return repository.findById(id); } - public List readAll() { - Iterable eventIterable = repository.findAll(); - List eventList = new ArrayList<>(); - eventIterable.forEach(eventList::add); - return eventList; + @Override + public void updateEvent(Event Event){ + repository.save(Event); } - public Event readById(Long id) { - return repository.findById(id).get(); + @Override + public void addEvent(String name, String location, Date targetDate, boolean isDone){ + repository.save(new Event(name, location, targetDate, isDone)); } - public Event updateById(Long id, Event updatedData) { - Event eventInDb = readById(id); - eventInDb.setLocation(updatedData.getLocation()); - eventInDb.setDescription(updatedData.getDescription()); - eventInDb.setDate(updatedData.getDate()); - eventInDb = repository.save(eventInDb); - return eventInDb; + @Override + public void deleteEvent(long id){ + Optional Event = repository.findById(id); + if (Event.isPresent()){ + repository.delete(Event.get()); + } } - public Event deleteById(Long id) { - Event eventToBeDeleted = readById(id); - repository.delete(eventToBeDeleted); - return eventToBeDeleted; + @Override + public void saveEvent(Event Event){ + repository.save(Event); } - } diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductInterfaceService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductInterfaceService.java new file mode 100644 index 000000000..21ad6adbf --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductInterfaceService.java @@ -0,0 +1,23 @@ +package com.casestudy.service; + +import com.casestudy.model.Cart; +import com.casestudy.model.Product; + +import java.awt.*; +import java.util.List; +import java.util.Optional; + +public interface ProductInterfaceService { + //read + Optional getProductById(String id); + List getAll(); + +//update + void updateProduct(Product product); +//create + void createProduct(String name, double price, Integer Quantity, Cart cart, boolean isCreated); +//delete + void deleteProduct(String id); + + +} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java index 9c70aa66f..c1a4aab44 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/service/ProductService.java @@ -5,58 +5,57 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.persistence.Id; +import java.awt.*; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service public class ProductService { - private ProductRepository repository; + @Autowired public ProductService(ProductRepository repository) { this.repository = repository; } - public ProductService() { - - } - - - public Product create(Product productToBeCreated) { - Product persistedProduct = (Product) repository.save(productToBeCreated); + public Product create(Product ProductToBeCreated) { + Product persistedProduct = repository.save(ProductToBeCreated); return persistedProduct; } public List readAll() { - Iterable productIterable = repository.findAll(); - List productList = new ArrayList<>(); - productIterable.forEach(productList::add); - return productList; + Iterable ProductIterable = repository.findAll(); + List ProductList = new ArrayList<>(); + ProductIterable.forEach(ProductList::add); + return ProductList; } - public Product readById(String id) { - return (Product) repository.findById(id).get(); + public Product readById(Long id) { + return repository.findById(id).get(); } public Product updateById(Long id, Product updatedData) { - Product productInDb = readById("id"); - productInDb.setName(updatedData.getName()); - productInDb.setPrice(updatedData.getPrice()); - productInDb.setPhoto(updatedData.getPhoto()); - productInDb = (Product) repository.save(productInDb); - return productInDb; + Product ProductInDb = readById(id); + ProductInDb.setCart(updatedData.getCart()); + ProductInDb.setName(updatedData.getName()); + ProductInDb.setPrice(updatedData.getPrice()); + ProductInDb.setQuantity(updatedData.getQuantity()); + ProductInDb = repository.save(ProductInDb); + return ProductInDb; } public Product deleteById(Long id) { - Product productToBeDeleted = readById("id"); - repository.delete(productToBeDeleted); - return productToBeDeleted; + Product ProductToBeDeleted = readById(id); + repository.delete(ProductToBeDeleted); + return ProductToBeDeleted; } - public Product updateName(Long id, String productName) { - Product productInDatabase = readById("id"); - productInDatabase.setName(productName); - return updateById(id, productInDatabase); + public Product updateFirstName(Long id, String name) { + Product ProductInDatabase = readById(id); + ProductInDatabase.setName(name); + return updateById(id, ProductInDatabase); } } diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java index 397f65614..0e6b926ef 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/java/com/casestudy/servlets/CartServlet.java @@ -1,89 +1,89 @@ -package com.casestudy.servlets; +//package com.casestudy.servlets; +// +//import com.casestudy.model.Cart; +//import com.casestudy.service.ProductService; +// +//import javax.servlet.ServletException; +//import javax.servlet.annotation.WebServlet; +//import javax.servlet.http.HttpServlet; +//import javax.servlet.http.HttpServletRequest; +//import javax.servlet.http.HttpServletResponse; +//import javax.servlet.http.HttpSession; +//import java.io.IOException; +//import java.util.ArrayList; +//import java.util.List; +// +//@WebServlet("/cart") +//public class CartServlet extends HttpServlet { +// +// private static final long serialVersionUID = 1L; +// +// public CartServlet() { +// super(); +// } +// +// protected void doGet(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// String action = request.getParameter("action"); +// if (action == null) { +// doGet_DisplayCart(request, response); +// } else { +// if (action.equalsIgnoreCase("buy")) { +// doGet_Buy(request, response); +// } else if (action.equalsIgnoreCase("remove")) { +// doGet_Remove(request, response); +// } +// } +// } +// +// protected void doGet_DisplayCart(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// request.getRequestDispatcher("cart/index.jsp").forward(request, response); +// } +// +// protected void doGet_Remove(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// HttpSession session = request.getSession(); +// List cart = (List) session.getAttribute("cart"); +// int index = isExisting(request.getParameter("id"), cart); +// cart.remove(index); +// session.setAttribute("cart", cart); +// response.sendRedirect("cart"); +// } -import com.casestudy.model.Item; -import com.casestudy.service.ProductService; +// protected void doGet_Buy(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// ProductService productModel = new ProductService(); +// HttpSession session = request.getSession(); +// if (session.getAttribute("cart") == null) { +// List cart = new ArrayList(); +// cart.add(new Cart(productModel.readById(request.getParameter(String.valueOf(id)))); +// session.setAttribute("cart", cart); +// } else { +// List cart = (List) session.getAttribute("cart"); +// int index = isExisting(request.getParameter("id"), cart); +// if (index == -1) { +// cart.add(new Cart(productModel.readById(request.getParameter("id")),1)); +// } else { +// int quantity = cart.get(index).getQuantity() + 1; +// cart.get(index).setQuantity(quantity); +// } +// session.setAttribute("cart", cart); +// } +// response.sendRedirect("cart"); +// } -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +// private int isExisting(String id, List cart) { +// for (int i = 0; i < cart.size(); i++) { +// if (cart.get(i).getProductById().getId().equalsIgnoreCase(id)) { +// return i; +// } +// } +// return -1; +// } -@WebServlet("/cart") -public class CartServlet extends HttpServlet { - - private static final long serialVersionUID = 1L; - - public CartServlet() { - super(); - } - - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - String action = request.getParameter("action"); - if (action == null) { - doGet_DisplayCart(request, response); - } else { - if (action.equalsIgnoreCase("buy")) { - doGet_Buy(request, response); - } else if (action.equalsIgnoreCase("remove")) { - doGet_Remove(request, response); - } - } - } - - protected void doGet_DisplayCart(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - request.getRequestDispatcher("cart/index.jsp").forward(request, response); - } - - protected void doGet_Remove(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - HttpSession session = request.getSession(); - List cart = (List) session.getAttribute("cart"); - int index = isExisting(request.getParameter("id"), cart); - cart.remove(index); - session.setAttribute("cart", cart); - response.sendRedirect("cart"); - } - - protected void doGet_Buy(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - ProductService productModel = new ProductService(); - HttpSession session = request.getSession(); - if (session.getAttribute("cart") == null) { - List cart = new ArrayList(); - cart.add(new Item(productModel.readById(request.getParameter("id")),1)); - session.setAttribute("cart", cart); - } else { - List cart = (List) session.getAttribute("cart"); - int index = isExisting(request.getParameter("id"), cart); - if (index == -1) { - cart.add(new Item(productModel.readById(request.getParameter("id")),1)); - } else { - int quantity = cart.get(index).getQuantity() + 1; - cart.get(index).setQuantity(quantity); - } - session.setAttribute("cart", cart); - } - response.sendRedirect("cart"); - } - - private int isExisting(String id, List cart) { - for (int i = 0; i < cart.size(); i++) { - if (cart.get(i).getProduct().getId().equalsIgnoreCase(id)) { - return i; - } - } - return -1; - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - } -} +// protected void doPost(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// +// } +//} diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp index 9cbb80181..d47041c69 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/footer.jsp @@ -1,4 +1,17 @@ + + + +
+ + + + + +
+ - \ No newline at end of file + > \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp index 196e10bcc..6fa32b335 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/head_common.jsp @@ -8,4 +8,6 @@ - \ No newline at end of file + + + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/home.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/home.jsp new file mode 100644 index 000000000..9df1c999f --- /dev/null +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/home.jsp @@ -0,0 +1,67 @@ +<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%> + + + + + + Event List + + + + + + + +
+
+
+

Healthy Living is the key to Longevity

+ <%

In this snippet, the background image is fixed to the body element. + Content on the page will scroll, but the image will remain in a fixed position!

+ %> + + + + + +
+ +
+
+

Scroll down...

+
+

You've reached the end!

+
+
+
+ + diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp index 374f6cecb..7c977245b 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/login.jsp @@ -9,7 +9,9 @@ Log in with your account - +
+ +
diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp index 574f17204..df4fb675d 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/product.jsp @@ -5,22 +5,26 @@ Product Page +
+Name +Description + +
+ - + + -
Id NamePhotoDescription Price Buy
${product.description} ${product.id } ${product.name } - - ${product.price } Buy @@ -30,4 +34,5 @@
- \ No newline at end of file + +<% %> \ No newline at end of file diff --git a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp index deb0586c8..e0b68ad05 100644 --- a/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp +++ b/healthyliving-casestudy/spring.jsp-loginpage/src/main/webapp/welcome.jsp @@ -21,7 +21,9 @@

Welcome ${pageContext.request.userPrincipal.name} | Logout

Would you like to attend a healthy living event?? | Attend

Would you like to browse our health products?? | View

-

Would you like to avail of our member Services?? | Avail

+

Would you like to avail of our member Services?? | Avail

+

+
diff --git a/spring.reactEventApp/.gitignore b/spring.reactEventApp/.gitignore new file mode 100644 index 000000000..529bc50ab --- /dev/null +++ b/spring.reactEventApp/.gitignore @@ -0,0 +1,561 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/node,reactnative,visualstudiocode,intellij,notepadpp,sublimetext,java,angular +# Edit at https://www.toptal.com/developers/gitignore?templates=node,reactnative,visualstudiocode,intellij,notepadpp,sublimetext,java,angular +target/ +target +target/* + +### Angular ### +## Angular ## +# compiled output +dist/ +tmp/ +app/**/*.js +app/**/*.js.map + +# dependencies +node_modules/ +bower_components/ + +# IDEs and editors +.idea/ + +# misc +.sass-cache/ +connect.lock/ +coverage/ +libpeerconnection.log/ +npm-debug.log +testem.log +typings/ + +# e2e +e2e/*.js +e2e/*.map + +# System Files +.DS_Store/ + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/**/sonarlint/ + +# SonarQube Plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Node ### +# Logs +logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +jspm_packages/ + +# TypeScript v1 declaration files + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +### NotepadPP ### +# Notepad++ backups # +*.bak + +### ReactNative ### +# React Native Stack Base + +.expo +__generated__ + +### ReactNative.Android Stack ### +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files + +# Generated files +bin/ +gen/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +### ReactNative.Buck Stack ### +buck-out/ +.buckconfig.local +.buckd/ +.buckversion +.fakebuckversion + +### ReactNative.Gradle Stack ### +.gradle + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +### ReactNative.Linux Stack ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### ReactNative.Node Stack ### +# Logs + +# Diagnostic reports (https://nodejs.org/api/report.html) + +# Runtime data + +# Directory for instrumented libs generated by jscoverage/JSCover + +# Coverage directory used by tools like istanbul + +# nyc test coverage + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +# Bower dependency directory (https://bower.io/) + +# node-waf configuration + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +# Dependency directories + +# TypeScript v1 declaration files + +# TypeScript cache + +# Optional npm cache directory + +# Optional eslint cache + +# Microbundle cache + +# Optional REPL history + +# Output of 'npm pack' + +# Yarn Integrity file + +# dotenv environment variables file + +# parcel-bundler cache (https://parceljs.org/) + +# Next.js build output + +# Nuxt.js build / generate output + +# Gatsby files +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output + +# Serverless directories + +# FuseBox cache + +# DynamoDB Local files + +# TernJS port file + +# Stores VSCode versions used for testing VSCode extensions + +### ReactNative.Xcode Stack ### +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Gcc Patch +/*.gcno + +### ReactNative.macOS Stack ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +# End of https://www.toptal.com/developers/gitignore/api/node,reactnative,visualstudiocode,intellij,notepadpp,sublimetext,java,angular diff --git a/casestudy-registration/README-annotations.md b/spring.reactEventApp/README-annotations.md similarity index 100% rename from casestudy-registration/README-annotations.md rename to spring.reactEventApp/README-annotations.md diff --git a/casestudy-registration/README-Sample.md b/spring.reactEventApp/README.md similarity index 55% rename from casestudy-registration/README-Sample.md rename to spring.reactEventApp/README.md index a6e1dc3f7..bfb10f1a8 100644 --- a/casestudy-registration/README-Sample.md +++ b/spring.reactEventApp/README.md @@ -1,4 +1,4 @@ -# Project Title +# Sping React Project Template * **Objective** - To create a product... * **Purpose** - To gain familiarity the following features... @@ -6,23 +6,43 @@ -## Instructions +## How to Run The Application + -### Testing Application via Postman - -* Ensure that the `start-class` tag in your `pom.xml` encapsulates `com.github.curriculeon.MyApplication` -* Open a command line and navigate to the project's root directory and run this command: - * `mvn spring-boot:run` -* Launch the [Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) app and enter the URI `http://localhost:8080/` and hit Send. +### Running Web Server +* Open the project from `IntelliJ` using the `pom.xml` located at the root directory of this project. +* Run the `MainApplication.java` to begin the Web Server. * If your application cannot run because something is occupying a port, use this command with the respective port number specified: * **OSX and Linux** - * ``kill -kill `lsof -t -i tcp:8080` `` + * ``kill -kill `lsof -t -i tcp:8080` `` * **Windows** * _For use in command line_: * `for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a` * _For use in bat-file_: - * `for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a` + * `for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a` + +#### Testing Web Server via Browser +* From a browser, navigate to `http://localhost:8080/h2-console/` and log into the database. + +#### Testing Web Server via Postman +* Launch the [Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) app and enter the URI `http://localhost:8080/` and hit Send. + + + + +### Running Web Application +1. ensure you [download NodeJS](https://nodejs.org/en/). + * The current version can be found here: `https://nodejs.org/en/` +2. Ensure once Node is downloaded, you [add it to your path variable](https://stackoverflow.com/a/27344046) + * View this stack overflow post for how to modify environment variables + * `https://stackoverflow.com/a/27344046` + * For easy access to environment variables in Windows OS, execute the following from the `run` window (`Windows+R`) + * `rundll32.exe sysdm.cpl,EditEnvironmentVariables` +3. from `Git Bash` navigate to the root directory of this project and execute `cd ./client`. +4. From the `./client` directory, execute `npm install` to install `node_modules`. +5. After installing `node_modules` from `./client`, execute `npm start` to begin serving the Web Application. +6. Navigate to `localhost:3000` to view the Web Application. @@ -48,7 +68,7 @@ #### Part 4 - Check Build * Ensure that the tests run upon opening the project. - * You should see `Tests Failed: 99 of 99 tests` + * You should see `Tests Failed: ${number_of_tests} of ${number_of_tests} tests` @@ -71,4 +91,4 @@ #### Part 2 - Submitting assignment * from the browser, navigate to the _forked_ project from **your** github account. * click the `Pull Requests` tab. -* select `New Pull Request` \ No newline at end of file +* select `New Pull Request` diff --git a/spring.reactEventApp/client/.gitignore b/spring.reactEventApp/client/.gitignore new file mode 100644 index 000000000..4d29575de --- /dev/null +++ b/spring.reactEventApp/client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/spring.reactEventApp/client/README.md b/spring.reactEventApp/client/README.md new file mode 100644 index 000000000..9c40dcdc3 --- /dev/null +++ b/spring.reactEventApp/client/README.md @@ -0,0 +1,68 @@ +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.
+It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting + +### Analyzing the Bundle Size + +This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size + +### Making a Progressive Web App + +This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app + +### Advanced Configuration + +This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration + +### Deployment + +This section has moved here: https://facebook.github.io/create-react-app/docs/deployment + +### `yarn build` fails to minify + +This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify diff --git a/spring.reactEventApp/client/package-lock.json b/spring.reactEventApp/client/package-lock.json new file mode 100644 index 000000000..0cf0b020b --- /dev/null +++ b/spring.reactEventApp/client/package-lock.json @@ -0,0 +1,13706 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", + "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/core": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", + "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "requires": { + "@babel/types": "^7.10.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.4.tgz", + "integrity": "sha512-LyacH/kgQPgLAuaWrvvq1+E7f5bLyT8jXCh7nM67sRsy2cpIGfgWJ+FCnAKQXfY+F0tXUaN6FqLkp4JiCzdK8Q==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", + "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", + "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", + "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", + "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", + "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", + "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", + "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", + "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-decorators": "^7.8.3" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz", + "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", + "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz", + "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", + "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", + "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-flow": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", + "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", + "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", + "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", + "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.4.tgz", + "integrity": "sha512-FTK3eQFrPv2aveerUSazFmGygqIdTtvskG50SnGnbEUnRPcGx2ylBhdFIzoVS1ty44hEgcPoCAyw5r3VDEq+Ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", + "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", + "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz", + "integrity": "sha512-3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + } + }, + "@babel/preset-typescript": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", + "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-typescript": "^7.9.0" + } + }, + "@babel/runtime": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", + "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.4.tgz", + "integrity": "sha512-BFlgP2SoLO9HJX9WBwN67gHWMBhDX/eDz64Jajd6mR/UAUzqrNMm99d4qHnVaKscAElZoFiPv+JpR/Siud5lXw==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", + "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", + "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" + }, + "@csstools/normalize.css": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", + "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + } + }, + "@jest/core": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", + "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/reporters": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-changed-files": "^24.9.0", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-resolve-dependencies": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "jest-watcher": "^24.9.0", + "micromatch": "^3.1.10", + "p-each-series": "^1.0.0", + "realpath-native": "^1.1.0", + "rimraf": "^2.5.4", + "slash": "^2.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + } + } + }, + "@jest/environment": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", + "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", + "requires": { + "@jest/fake-timers": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/reporters": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", + "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "istanbul-lib-coverage": "^2.0.2", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.1", + "istanbul-reports": "^2.2.6", + "jest-haste-map": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "node-notifier": "^5.4.2", + "slash": "^2.0.0", + "source-map": "^0.6.0", + "string-length": "^2.0.0" + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + } + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/test-sequencer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", + "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", + "requires": { + "@jest/test-result": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0" + } + }, + "@jest/transform": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", + "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "2.4.1" + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "@sheerun/mutationobserver-shim": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", + "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", + "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", + "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", + "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", + "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", + "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", + "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", + "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==" + }, + "@svgr/babel-preset": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", + "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", + "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", + "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", + "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", + "@svgr/babel-plugin-transform-svg-component": "^4.2.0" + } + }, + "@svgr/core": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", + "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", + "requires": { + "@svgr/plugin-jsx": "^4.3.3", + "camelcase": "^5.3.1", + "cosmiconfig": "^5.2.1" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", + "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@svgr/plugin-jsx": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", + "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", + "requires": { + "@babel/core": "^7.4.5", + "@svgr/babel-preset": "^4.3.3", + "@svgr/hast-util-to-babel-ast": "^4.3.2", + "svg-parser": "^2.0.0" + } + }, + "@svgr/plugin-svgo": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", + "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", + "requires": { + "cosmiconfig": "^5.2.1", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", + "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", + "requires": { + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.3", + "@svgr/plugin-jsx": "^4.3.3", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" + } + }, + "@testing-library/dom": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", + "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", + "requires": { + "@babel/runtime": "^7.8.4", + "@sheerun/mutationobserver-shim": "^0.3.2", + "@types/testing-library__dom": "^6.12.1", + "aria-query": "^4.0.2", + "dom-accessibility-api": "^0.3.0", + "pretty-format": "^25.1.0", + "wait-for-expect": "^3.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", + "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", + "requires": { + "@babel/runtime": "^7.5.1", + "chalk": "^2.4.1", + "css": "^2.2.3", + "css.escape": "^1.5.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "lodash": "^4.17.11", + "pretty-format": "^24.0.0", + "redent": "^3.0.0" + } + }, + "@testing-library/react": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", + "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", + "requires": { + "@babel/runtime": "^7.8.4", + "@testing-library/dom": "^6.15.0", + "@types/testing-library__react": "^9.1.2" + } + }, + "@testing-library/user-event": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", + "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" + }, + "@types/babel__core": { + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz", + "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz", + "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "14.0.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.22.tgz", + "integrity": "sha512-emeGcJvdiZ4Z3ohbmw93E/64jRzUHAItSHt8nF7M4TGgQTiWqFVGB8KNpLGFmUHmHLvjvBgFwVlqNcq+VuGv9g==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/react": { + "version": "16.9.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.42.tgz", + "integrity": "sha512-iGy6HwfVfotqJ+PfRZ4eqPHPP5NdPZgQlr0lTs8EfkODRBV9cYy8QMKcC9qPCe1JrESC1Im6SrCFR6tQgg74ag==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.9.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", + "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", + "requires": { + "@types/react": "*" + } + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" + }, + "@types/testing-library__dom": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", + "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", + "requires": { + "pretty-format": "^24.3.0" + } + }, + "@types/testing-library__react": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", + "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", + "requires": { + "@types/react-dom": "*", + "@types/testing-library__dom": "*", + "pretty-format": "^25.1.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@types/yargs": { + "version": "13.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz", + "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", + "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", + "requires": { + "@typescript-eslint/experimental-utils": "2.34.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", + "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + } + } + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + } + } + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", + "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", + "requires": { + "assert": "1.4.1", + "camelcase": "5.0.0", + "loader-utils": "1.2.3", + "object-path": "0.11.4", + "regex-parser": "2.2.10" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + } + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.8.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz", + "integrity": "sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001087", + "colorette": "^1.2.0", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", + "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "requires": { + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", + "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" + } + }, + "babel-plugin-jest-hoist": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", + "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz", + "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", + "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "babel-preset-react-app": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz", + "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==", + "requires": { + "@babel/core": "7.9.0", + "@babel/plugin-proposal-class-properties": "7.8.3", + "@babel/plugin-proposal-decorators": "7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", + "@babel/plugin-proposal-numeric-separator": "7.8.3", + "@babel/plugin-proposal-optional-chaining": "7.9.0", + "@babel/plugin-transform-flow-strip-types": "7.9.0", + "@babel/plugin-transform-react-display-name": "7.8.3", + "@babel/plugin-transform-runtime": "7.9.0", + "@babel/preset-env": "7.9.0", + "@babel/preset-react": "7.9.1", + "@babel/preset-typescript": "7.9.0", + "@babel/runtime": "7.9.0", + "babel-plugin-macros": "2.8.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", + "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", + "requires": { + "@babel/compat-data": "^7.9.0", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.0", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.0", + "browserslist": "^4.9.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", + "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.9.1", + "@babel/plugin-transform-react-jsx-development": "^7.9.0", + "@babel/plugin-transform-react-jsx-self": "^7.9.0", + "@babel/plugin-transform-react-jsx-source": "^7.9.0" + } + }, + "@babel/runtime": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", + "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001097", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001097.tgz", + "integrity": "sha512-TeuSleKt/vWXaPkLVFqGDnbweYfq4IaZ6rUugFf3rWY6dlII8StUZ8Ddin0PkADfgYZ4wRqCdO2ORl4Rn5eZIA==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "css-loader": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", + "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.23", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.1", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.2", + "schema-utils": "^2.6.0" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + } + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", + "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "requires": { + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.11.tgz", + "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==" + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz", + "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==" + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.496", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz", + "integrity": "sha512-TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", + "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-loader": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", + "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", + "requires": { + "fs-extra": "^8.1.0", + "loader-fs-cache": "^1.0.2", + "loader-utils": "^1.2.3", + "object-hash": "^2.0.1", + "schema-utils": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", + "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-import": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz", + "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==", + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", + "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", + "requires": { + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + }, + "dependencies": { + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + } + } + }, + "eslint-plugin-react": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", + "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", + "requires": { + "array-includes": "^3.1.1", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.1", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.15.1", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.2", + "xregexp": "^4.3.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" + }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==" + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expect": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", + "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.9.0" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", + "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + } + }, + "filesize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", + "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "follow-redirects": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fork-ts-checker-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-beta.11", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", + "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", + "requires": { + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.1.tgz", + "integrity": "sha512-/+vOpHQHhoh90Znev8BXiuw1TDQ7IDxWsQnFafUEoK5+4uN5Eoz1p+3GqOj/NtzEi9VzWKQcV9Bm+i8moxedsA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.16", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "requires": { + "html-escaper": "^2.0.0" + } + }, + "jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", + "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", + "requires": { + "import-local": "^2.0.0", + "jest-cli": "^24.9.0" + }, + "dependencies": { + "jest-cli": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", + "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", + "requires": { + "@jest/core": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "jest-config": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "prompts": "^2.0.1", + "realpath-native": "^1.1.0", + "yargs": "^13.3.0" + } + } + } + }, + "jest-changed-files": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", + "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", + "requires": { + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" + } + }, + "jest-config": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", + "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^24.9.0", + "@jest/types": "^24.9.0", + "babel-jest": "^24.9.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^24.9.0", + "jest-environment-node": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "micromatch": "^3.1.10", + "pretty-format": "^24.9.0", + "realpath-native": "^1.1.0" + } + }, + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-docblock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", + "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", + "requires": { + "detect-newline": "^2.1.0" + } + }, + "jest-each": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", + "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", + "requires": { + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-environment-jsdom": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", + "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0", + "jsdom": "^11.5.1" + } + }, + "jest-environment-jsdom-fourteen": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz", + "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==", + "requires": { + "@jest/environment": "^24.3.0", + "@jest/fake-timers": "^24.3.0", + "@jest/types": "^24.3.0", + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0", + "jsdom": "^14.1.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + }, + "jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", + "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", + "requires": { + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + }, + "jest-haste-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", + "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "requires": { + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + } + } + }, + "jest-jasmine2": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", + "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^24.9.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0", + "throat": "^4.0.0" + } + }, + "jest-leak-detector": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", + "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", + "requires": { + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", + "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" + }, + "jest-resolve": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", + "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", + "requires": { + "@jest/types": "^24.9.0", + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "jest-pnp-resolver": "^1.2.1", + "realpath-native": "^1.1.0" + } + }, + "jest-resolve-dependencies": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", + "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", + "requires": { + "@jest/types": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-snapshot": "^24.9.0" + } + }, + "jest-runner": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", + "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.4.2", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-docblock": "^24.3.0", + "jest-haste-map": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-leak-detector": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + } + }, + "jest-runtime": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", + "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", + "requires": { + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/source-map": "^24.3.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "strip-bom": "^3.0.0", + "yargs": "^13.3.0" + } + }, + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", + "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + }, + "jest-snapshot": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", + "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "expect": "^24.9.0", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^24.9.0", + "semver": "^6.2.0" + } + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + } + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + } + }, + "jest-watch-typeahead": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", + "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.1", + "jest-regex-util": "^24.9.0", + "jest-watcher": "^24.3.0", + "slash": "^3.0.0", + "string-length": "^3.1.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + } + } + } + }, + "jest-watcher": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", + "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", + "requires": { + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "jest-util": "^24.9.0", + "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + } + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "requires": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "requires": { + "tslib": "^1.10.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz", + "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==", + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-hash": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==" + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", + "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "requires": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + } + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.26", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", + "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", + "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", + "requires": { + "postcss": "^7" + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", + "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", + "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-normalize": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", + "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", + "requires": { + "@csstools/normalize.css": "^10.1.0", + "browserslist": "^4.6.2", + "postcss": "^7.0.17", + "postcss-browser-comments": "^3.0.0", + "sanitize.css": "^10.0.0" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-safe-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", + "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", + "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-app-polyfill": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz", + "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==", + "requires": { + "core-js": "^3.5.0", + "object-assign": "^4.1.1", + "promise": "^8.0.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.3", + "whatwg-fetch": "^3.0.0" + } + }, + "react-dev-utils": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", + "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", + "requires": { + "@babel/code-frame": "7.8.3", + "address": "1.1.2", + "browserslist": "4.10.0", + "chalk": "2.4.2", + "cross-spawn": "7.0.1", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "2.0.0", + "filesize": "6.0.1", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "3.1.1", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "7.0.4", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "react-error-overlay": "^6.0.7", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-error-overlay": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", + "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-scripts": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.1.tgz", + "integrity": "sha512-JpTdi/0Sfd31mZA6Ukx+lq5j1JoKItX7qqEK4OiACjVQletM1P38g49d9/D0yTxp9FrSF+xpJFStkGgKEIRjlQ==", + "requires": { + "@babel/core": "7.9.0", + "@svgr/webpack": "4.3.3", + "@typescript-eslint/eslint-plugin": "^2.10.0", + "@typescript-eslint/parser": "^2.10.0", + "babel-eslint": "10.1.0", + "babel-jest": "^24.9.0", + "babel-loader": "8.1.0", + "babel-plugin-named-asset-import": "^0.3.6", + "babel-preset-react-app": "^9.1.2", + "camelcase": "^5.3.1", + "case-sensitive-paths-webpack-plugin": "2.3.0", + "css-loader": "3.4.2", + "dotenv": "8.2.0", + "dotenv-expand": "5.1.0", + "eslint": "^6.6.0", + "eslint-config-react-app": "^5.2.1", + "eslint-loader": "3.0.3", + "eslint-plugin-flowtype": "4.6.0", + "eslint-plugin-import": "2.20.1", + "eslint-plugin-jsx-a11y": "6.2.3", + "eslint-plugin-react": "7.19.0", + "eslint-plugin-react-hooks": "^1.6.1", + "file-loader": "4.3.0", + "fs-extra": "^8.1.0", + "fsevents": "2.1.2", + "html-webpack-plugin": "4.0.0-beta.11", + "identity-obj-proxy": "3.0.0", + "jest": "24.9.0", + "jest-environment-jsdom-fourteen": "1.0.1", + "jest-resolve": "24.9.0", + "jest-watch-typeahead": "0.4.2", + "mini-css-extract-plugin": "0.9.0", + "optimize-css-assets-webpack-plugin": "5.0.3", + "pnp-webpack-plugin": "1.6.4", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-normalize": "8.0.1", + "postcss-preset-env": "6.7.0", + "postcss-safe-parser": "4.0.1", + "react-app-polyfill": "^1.0.6", + "react-dev-utils": "^10.2.1", + "resolve": "1.15.0", + "resolve-url-loader": "3.1.1", + "sass-loader": "8.0.2", + "semver": "6.3.0", + "style-loader": "0.23.1", + "terser-webpack-plugin": "2.3.5", + "ts-pnp": "1.1.6", + "url-loader": "2.3.0", + "webpack": "4.42.0", + "webpack-dev-server": "3.10.3", + "webpack-manifest-plugin": "2.2.0", + "workbox-webpack-plugin": "4.3.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "requires": { + "util.promisify": "^1.0.0" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", + "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==" + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resolve-url-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", + "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", + "requires": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", + "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + } + }, + "sanitize.css": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", + "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "requires": { + "xmlchars": "^2.1.1" + } + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==" + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz", + "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==", + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "ts-pnp": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz", + "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==" + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", + "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "wait-for-expect": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.2.tgz", + "integrity": "sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag==" + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "requires": { + "chokidar": "^3.4.0", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "optional": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "webpack": { + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz", + "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.6", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz", + "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", + "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-broadcast-update": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", + "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-build": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", + "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", + "requires": { + "@babel/runtime": "^7.3.4", + "@hapi/joi": "^15.0.0", + "common-tags": "^1.8.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.3", + "lodash.template": "^4.4.0", + "pretty-bytes": "^5.1.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^4.3.1", + "workbox-broadcast-update": "^4.3.1", + "workbox-cacheable-response": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-expiration": "^4.3.1", + "workbox-google-analytics": "^4.3.1", + "workbox-navigation-preload": "^4.3.1", + "workbox-precaching": "^4.3.1", + "workbox-range-requests": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1", + "workbox-streams": "^4.3.1", + "workbox-sw": "^4.3.1", + "workbox-window": "^4.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "workbox-cacheable-response": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", + "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + }, + "workbox-expiration": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", + "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-google-analytics": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", + "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", + "requires": { + "workbox-background-sync": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1" + } + }, + "workbox-navigation-preload": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", + "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-precaching": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", + "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-range-requests": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", + "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-routing": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", + "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-strategies": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", + "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-streams": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", + "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-sw": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", + "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" + }, + "workbox-webpack-plugin": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", + "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", + "requires": { + "@babel/runtime": "^7.0.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^4.3.1" + } + }, + "workbox-window": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", + "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xregexp": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/spring.reactEventApp/client/package.json b/spring.reactEventApp/client/package.json new file mode 100644 index 000000000..3440011df --- /dev/null +++ b/spring.reactEventApp/client/package.json @@ -0,0 +1,35 @@ +{ + "name": "client", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.3.2", + "@testing-library/user-event": "^7.1.2", + "react": "^16.13.0", + "react-dom": "^16.13.0", + "react-scripts": "^3.4.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "proxy": "http://localhost:8080", + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/spring.reactEventApp/client/public/favicon.ico b/spring.reactEventApp/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bcd5dfd67cd0361b78123e95c2dd96031f27f743 GIT binary patch literal 3150 zcmaKtc{Ei0AIGn;MZ^<@lHD*OV;K7~W1q3jSjJcqNywTkMOhP*k~Oj?GO|6{m(*C2 zC7JA+hN%%Bp7T4;J@?%2_x=5zbI<2~->=X60stMr0B~{wzpi9D0MG|# zyuANt7z6;uz%?PEfAnimLl^)6h5ARwGXemG2>?hqQv-I^Gpyh$JH}Ag92}3{$a#z& zd`il2Sb#$U&e&4#^4R|GTgk!Qs+x*PCL{2+`uB5mqtnqLaaw`*H2oqJ?XF(zUACc2 zSibBrdQzcidqv*TK}rpEv1ie&;Famq2IK5%4c}1Jt2b1x_{y1C!?EU)@`_F)yN*NK z)(u03@%g%uDawwXGAMm%EnP9FgoucUedioDwL~{6RVO@A-Q$+pwVRR%WYR>{K3E&Q zzqzT!EEZ$_NHGYM6&PK#CGUV$pTWsiI5#~m>htoJ!vbc0=gm3H8sz8KzIiVN5xdCT z%;}`UH2Pc8))1VS-unh?v4*H*NIy5On{MRKw7BTmOO9oE2UApwkCl9Z?^dod9M^#w z51tEZhf+#dpTo#GDDy#kuzoIjMjZ?%v*h$ z*vwUMOjGc?R0(FjLWkMD)kca4z6~H45FIzQ!Zzu&-yWyMdCBsDr2`l}Q{8fH$H@O< z$&snNzbqLk?(GIe?!PVh?F~2qk4z^rMcp$P^hw^rUPjyCyoNTRw%;hNOwrCoN?G0E z!wT^=4Loa9@O{t;Wk(Nj=?ms1Z?UN_;21m%sUm?uib=pg&x|u)8pP#l--$;B9l47n zUUnMV0sXLe*@Gvy>XWjRoqc2tOzgYn%?g@Lb8C&WsxV1Kjssh^ZBs*Ysr+E6%tsC_ zCo-)hkYY=Bn?wMB4sqm?WS>{kh<6*DO)vXnQpQ9`-_qF6!#b;3Nf@;#B>e2j$yokl6F|9p1<($2 z=WSr%)Z?^|r6njhgbuMrIN>8JE05u0x5t@_dEfbGn9r0hK4c2vp>(*$GXsjeLL_uz zWpyfUgdv!~-2N;llVzik#s2*XB*%7u8(^sJv&T3pzaR&<9({17Zs~UY>#ugZZkHBs zD+>0_an$?}utGp$dcXtyFHnTQZJ}SF=oZ}X07dz~K>^o(vjTzw8ZQc!Fw1W=&Z?9% zv63|~l}70sJbY?H8ON8j)w5=6OpXuaZ}YT03`2%u8{;B0Vafo_iY7&BiQTbRkdJBYL}?%ATfmc zLG$uXt$@3j#OIjALdT&Ut$=9F8cgV{w_f5eS)PjoVi z&oemp-SKJ~UuGuCP1|iY?J^S&P z)-IG?O-*=z6kfZrX5H*G=aQ{ZaqnOqP@&+_;nq@mA>EcjgxrYX8EK|Iq4&E&rxR?R z8N$QOdRwY zr{P`O)=87>YLHtFfGXW z6P)ucrhj~It_9w<^v5>T6N1U}+BkS))=WX*2JY=}^b2czGhH<`?`(}}qMcpPx_%>M zM|fs(+I1m&_h(zqp-HgP>re$2O^o$q)xu#fl0ivOJE({duU)a*OD(eYgSi^cdTn}pqcPM(;S)2%1By^Wh%-CaC%>d9hi`7J zaxL7@;nhA>PE%s99&;z{8>VFgf{u!(-B-x7Of6ueme+ScryL`h(^qKE)DtieWY>-7 zgB)VJESQS4*1LU(2&@pgLvSt{(((C?K_V(rQk``i&5}ZPG;G^FiPlZ$7|-vEmMWlU z5lQ%iK2nu=h2wd_7>gK@vX=*AG+u~rQP$NwPC`ZA?4nh{3tui1x@bT6-;Rk3yDQ>d z?3qRD#+PeV7#FAa>s`Xwxsx_oRFcN$StW2=CW`=qObsT?SD^#^jM1Yk}PSPxJ zG@-_mnNU_)vM|iLRSI>UMp|hatyS}17R{10IuL0TLlupt>9dRs_SPQbv7BLYyC#qv16E-y@XZ= z-!p7I%#r-BVi$nQq3&ssRc_IC%R6$tA&^s_l46880~Wst3@>(|EO<}T4~ci~#!=e; zD)B>o%1+$ksURD1p7I-<3ehlFyVkqrySf&gg>Bp0Z9?JaG|gyTZ{Cb8SdvAWVmFX7v2ohs!OCc!Udk zUITUpmZ33rKLI#(&lDj}cKA#dpL4Fil=$5pu_wi1XJR!llw` zSItPBDEdMHk2>c7#%lBxZHHvtVUOZ$}v?=?AT~9!Jcqa@IJGuMg(s^7r>pcTrd)pS`{5Cu8WPey` z9)!!OUUY@L%9Q+bZa*S5`3f_|lFCPN6kdp_M2>{le8;cn^XUsPa+TUk47qd6)IBR% zk*&Ip?!Ge_gmmdj)BX}P_5o@VI2*wbZ^>UhFju}0gQZh!pP%4XT9{@w;G#b3XK8sN zF(7i$Jv(IM$8Akys9dhP^^~H2(7BfJp}yDW1#@!CL-!mGcSCnJ599WK9MV@yo_u$v MDeX2GIKR{Qf5okjU;qFB literal 0 HcmV?d00001 diff --git a/spring.reactEventApp/client/public/index.html b/spring.reactEventApp/client/public/index.html new file mode 100644 index 000000000..aa069f27c --- /dev/null +++ b/spring.reactEventApp/client/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/spring.reactEventApp/client/public/logo192.png b/spring.reactEventApp/client/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/spring.reactEventApp/client/public/manifest.json b/spring.reactEventApp/client/public/manifest.json new file mode 100644 index 000000000..080d6c77a --- /dev/null +++ b/spring.reactEventApp/client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/spring.reactEventApp/client/public/robots.txt b/spring.reactEventApp/client/public/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/spring.reactEventApp/client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/spring.reactEventApp/client/src/App.css b/spring.reactEventApp/client/src/App.css new file mode 100644 index 000000000..b21831010 --- /dev/null +++ b/spring.reactEventApp/client/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: gainsboro; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/spring.reactEventApp/client/src/App.js b/spring.reactEventApp/client/src/App.js new file mode 100644 index 000000000..0aeae6d1c --- /dev/null +++ b/spring.reactEventApp/client/src/App.js @@ -0,0 +1,19 @@ +import React, {Component} from 'react'; +import './App.css'; +import Events from './components/events/events'; +import EventForm from './components/event-form/event-form'; + +class App extends Component { + render() { + return ( +
+
+ View Database + + +
+
+ ); + } +} +export default App; diff --git a/spring.reactEventApp/client/src/App.test.js b/spring.reactEventApp/client/src/App.test.js new file mode 100644 index 000000000..4db7ebc25 --- /dev/null +++ b/spring.reactEventApp/client/src/App.test.js @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + const { getByText } = render(); + const linkElement = getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/spring.reactEventApp/client/src/components/event-form/event-form.css b/spring.reactEventApp/client/src/components/event-form/event-form.css new file mode 100644 index 000000000..e69de29bb diff --git a/spring.reactEventApp/client/src/components/event-form/event-form.js b/spring.reactEventApp/client/src/components/event-form/event-form.js new file mode 100644 index 000000000..4aaf472bf --- /dev/null +++ b/spring.reactEventApp/client/src/components/event-form/event-form.js @@ -0,0 +1,74 @@ +import React, {Component} from 'react'; +import './event-form.css'; + +class EventForm extends Component { + componentDidMount() { // runs automatically when component is mounted + } + + constructor() { + super(); + this.state = { + name: '', + location: '' + + }; + } + + onChange = (e) => { + /* + Because we named the inputs to match their + corresponding values in state, it's + super easy to update the state + */ + this.setState({ [e.target.name]: e.target.value }); + } + + + onSubmit = (e) => { + e.preventDefault(); + // get our form data out of state + const { name, location } = this.state; + const request = { + method: 'POST', + body: JSON.stringify({ + "name": name, + "location": location + + }), + headers: {"Content-Type": "application/json"} + }; + fetch("event/", request) + .then((res) => res.json()) + .then((body)=> { + alert(JSON.stringify(body)); + window.location.reload(false); + }); + } + + render() { + const { name, location } = this.state; + return ( +
+ +
+ +
+ + + +
+ ); + } +} + +export default EventForm; \ No newline at end of file diff --git a/spring.reactEventApp/client/src/components/events/events.css b/spring.reactEventApp/client/src/components/events/events.css new file mode 100644 index 000000000..e69de29bb diff --git a/spring.reactEventApp/client/src/components/events/events.js b/spring.reactEventApp/client/src/components/events/events.js new file mode 100644 index 000000000..da936726b --- /dev/null +++ b/spring.reactEventApp/client/src/components/events/events.js @@ -0,0 +1,34 @@ +import React, {Component} from 'react'; +import './events.css'; + +class Events extends Component { + constructor() { + super(); + this.state = { + events:[] + } + } + + componentDidMount() { // runs automatically when component is mounted + fetch('/event/') // fetches events from express server and sets `state`-value to events that were fetched + .then(res => res.json()) + .then(events => this.setState + ({events}, () => console.log("Events fetched...", events))) + } + + + render() { + return ( +
+

Events

+
    { this.state.events.map(event => +
  • + { event.name } {event.location} +
  • + )}
+
+ ); + } +} + +export default Events; \ No newline at end of file diff --git a/spring.reactEventApp/client/src/index.css b/spring.reactEventApp/client/src/index.css new file mode 100644 index 000000000..ec2585e8c --- /dev/null +++ b/spring.reactEventApp/client/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/spring.reactEventApp/client/src/index.js b/spring.reactEventApp/client/src/index.js new file mode 100644 index 000000000..87d1be551 --- /dev/null +++ b/spring.reactEventApp/client/src/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import './index.css'; +import App from './App'; +import * as serviceWorker from './serviceWorker'; + +ReactDOM.render(, document.getElementById('root')); + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister(); diff --git a/spring.reactEventApp/client/src/logo.svg b/spring.reactEventApp/client/src/logo.svg new file mode 100644 index 000000000..6b60c1042 --- /dev/null +++ b/spring.reactEventApp/client/src/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring.reactEventApp/client/src/serviceWorker.js b/spring.reactEventApp/client/src/serviceWorker.js new file mode 100644 index 000000000..c4838eb55 --- /dev/null +++ b/spring.reactEventApp/client/src/serviceWorker.js @@ -0,0 +1,141 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.0/8 are considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +); + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config); + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ); + }); + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config); + } + }); + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + if (installingWorker == null) { + return; + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ); + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration); + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration); + } + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl, { + headers: { 'Service-Worker': 'script' } + }) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type'); + if ( + response.status === 404 || + (contentType != null && contentType.indexOf('javascript') === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload(); + }); + }); + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config); + } + }) + .catch(() => { + console.log( + 'No internet connection found. App is running in offline mode.' + ); + }); +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready + .then(registration => { + registration.unregister(); + }) + .catch(error => { + console.error(error.message); + }); + } +} diff --git a/spring.reactEventApp/client/src/setupTests.js b/spring.reactEventApp/client/src/setupTests.js new file mode 100644 index 000000000..74b1a275a --- /dev/null +++ b/spring.reactEventApp/client/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom/extend-expect'; diff --git a/spring.reactEventApp/client/yarn.lock b/spring.reactEventApp/client/yarn.lock new file mode 100644 index 000000000..2956ef1ae --- /dev/null +++ b/spring.reactEventApp/client/yarn.lock @@ -0,0 +1,11323 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.8.3", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/code-frame@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" + integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== + dependencies: + "@babel/highlight" "^7.10.1" + +"@babel/compat-data@^7.10.1", "@babel/compat-data@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz#b1085ffe72cd17bf2c0ee790fc09f9626011b2db" + integrity sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/compat-data@^7.8.4": + version "7.8.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.5.tgz#d28ce872778c23551cbb9432fc68d28495b613b9" + integrity sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg== + dependencies: + browserslist "^4.8.5" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.4.5": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" + integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.4" + "@babel/helpers" "^7.8.4" + "@babel/parser" "^7.8.4" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.4" + "@babel/types" "^7.8.3" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.10.1", "@babel/generator@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" + integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== + dependencies: + "@babel/types" "^7.10.2" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" + integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== + dependencies: + "@babel/types" "^7.8.3" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" + integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-builder-react-jsx-experimental@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8" + integrity sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-module-imports" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-builder-react-jsx@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz#a327f0cf983af5554701b1215de54a019f09b532" + integrity sha512-KXzzpyWhXgzjXIlJU1ZjIXzUPdej1suE6vzqgImZ/cpAsR/CC8gUcX4EWRmDfWz/cs6HOCPMBIJ3nKoXt3BFuw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-builder-react-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz#dee98d7d79cc1f003d80b76fe01c7f8945665ff6" + integrity sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ== + dependencies: + "@babel/types" "^7.8.3" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" + integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-compilation-targets@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz#03d7ecd454b7ebe19a254f76617e61770aed2c88" + integrity sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg== + dependencies: + "@babel/compat-data" "^7.8.4" + browserslist "^4.8.5" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-compilation-targets@^7.8.7": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz#a17d9723b6e2c750299d2a14d4637c76936d8285" + integrity sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA== + dependencies: + "@babel/compat-data" "^7.10.1" + browserslist "^4.12.0" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.10.1": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz#7474295770f217dbcf288bf7572eb213db46ee67" + integrity sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" + integrity sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + +"@babel/helper-create-regexp-features-plugin@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" + integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-regex" "^7.10.1" + regexpu-core "^4.7.0" + +"@babel/helper-create-regexp-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" + integrity sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q== + dependencies: + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.6.0" + +"@babel/helper-define-map@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz#5e69ee8308648470dd7900d159c044c10285221d" + integrity sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/types" "^7.10.1" + lodash "^4.17.13" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== + dependencies: + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-function-name@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" + integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-get-function-arity@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" + integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz#7e77c82e5dcae1ebf123174c385aaadbf787d077" + integrity sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15" + integrity sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" + integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.10.1", "@babel/helper-module-transforms@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" + integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== + dependencies: + "@babel/helper-module-imports" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + lodash "^4.17.13" + +"@babel/helper-module-transforms@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" + integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543" + integrity sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-plugin-utils@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127" + integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA== + +"@babel/helper-regex@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" + integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== + dependencies: + lodash "^4.17.13" + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" + integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-replace-supers@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" + integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-simple-access@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" + integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== + dependencies: + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" + integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== + dependencies: + "@babel/types" "^7.10.1" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" + integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" + integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.4" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" + integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== + dependencies: + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/highlight@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" + integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== + dependencies: + "@babel/helper-validator-identifier" "^7.10.1" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" + integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== + +"@babel/parser@^7.10.1", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" + integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-proposal-decorators@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e" + integrity sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-decorators" "^7.8.3" + +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz#a9a38bc34f78bdfd981e791c27c6fdcec478c123" + integrity sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-numeric-separator" "^7.10.1" + +"@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" + integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz#cba44908ac9f142650b4a65b8aa06bf3478d5fb6" + integrity sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.1" + +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" + integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz#15f5d6d22708629451a91be28f8facc55b0e818c" + integrity sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" + integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" + integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-decorators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda" + integrity sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-flow@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz#f2c883bd61a6316f2c89380ae5122f923ba4527f" + integrity sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz#0ae371134a42b91d5418feb3c8c8d43e1565d2da" + integrity sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.1", "@babel/plugin-syntax-numeric-separator@^7.8.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz#25761ee7410bc8cf97327ba741ee94e4a61b7d99" + integrity sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-typescript@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz#5e82bc27bb4202b93b949b029e699db536733810" + integrity sha512-X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" + integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz#6e11dd6c4dfae70f540480a4702477ed766d733f" + integrity sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-define-map" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" + integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" + integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-flow" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz#6fe8eae5d6875086ee185dd0b098a8513783b47d" + integrity sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" + integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" + integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" + integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== + dependencies: + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" + integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" + integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== + dependencies: + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" + integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz#9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6" + integrity sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA== + dependencies: + "@babel/helper-hoist-variables" "^7.10.1" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" + integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" + integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== + dependencies: + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.10.1", "@babel/plugin-transform-parameters@^7.8.7": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" + integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== + dependencies: + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + +"@babel/plugin-transform-parameters@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz#1d5155de0b65db0ccf9971165745d3bb990d77d3" + integrity sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA== + dependencies: + "@babel/helper-call-delegate" "^7.8.3" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-react-constant-elements@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.8.3.tgz#784c25294bddaad2323eb4ff0c9f4a3f6c87d6bc" + integrity sha512-glrzN2U+egwRfkNFtL34xIBYTxbbUF2qJTP8HD3qETBBqzAWSeNB821X0GjU06+dNpq/UyCIjI72FmGE5NNkQQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-react-display-name@7.8.3", "@babel/plugin-transform-react-display-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-react-jsx-development@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz#1ac6300d8b28ef381ee48e6fec430cc38047b7f3" + integrity sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" + +"@babel/plugin-transform-react-jsx-self@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz#c4f178b2aa588ecfa8d077ea80d4194ee77ed702" + integrity sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-self@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821" + integrity sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" + +"@babel/plugin-transform-react-jsx-source@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz#951e75a8af47f9f120db731be095d2b2c34920e0" + integrity sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-source@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273" + integrity sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" + +"@babel/plugin-transform-react-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a" + integrity sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g== + dependencies: + "@babel/helper-builder-react-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx@^7.9.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz#91f544248ba131486decb5d9806da6a6e19a2896" + integrity sha512-MBVworWiSRBap3Vs39eHt+6pJuLUAaK4oxGc8g+wY+vuSJvLiEQjW1LSTqKb8OUPtDvHCkdPhk7d6sjC19xyFw== + dependencies: + "@babel/helper-builder-react-jsx" "^7.10.1" + "@babel/helper-builder-react-jsx-experimental" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" + +"@babel/plugin-transform-regenerator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" + integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz#10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490" + integrity sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-runtime@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typescript@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.1.tgz#2c54daea231f602468686d9faa76f182a94507a6" + integrity sha512-v+QWKlmCnsaimLeqq9vyCsVRMViZG1k2SZTlcZvB+TqyH570Zsij8nvVUZzOASCRiQFUxkLrn9Wg/kH0zgy5OQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-typescript" "^7.10.1" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== + dependencies: + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.7" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-env@^7.4.5": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.4.tgz#9dac6df5f423015d3d49b6e9e5fa3413e4a72c4e" + integrity sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w== + dependencies: + "@babel/compat-data" "^7.8.4" + "@babel/helper-compilation-targets" "^7.8.4" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.8.4" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.8.3" + "@babel/plugin-transform-modules-systemjs" "^7.8.3" + "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.4" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/types" "^7.8.3" + browserslist "^4.8.5" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@7.9.1": + version "7.9.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.1.tgz#b346403c36d58c3bb544148272a0cefd9c28677a" + integrity sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.9.1" + "@babel/plugin-transform-react-jsx-development" "^7.9.0" + "@babel/plugin-transform-react-jsx-self" "^7.9.0" + "@babel/plugin-transform-react-jsx-source" "^7.9.0" + +"@babel/preset-react@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.8.3.tgz#23dc63f1b5b0751283e04252e78cf1d6589273d2" + integrity sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.8.3" + "@babel/plugin-transform-react-jsx-self" "^7.8.3" + "@babel/plugin-transform-react-jsx-source" "^7.8.3" + +"@babel/preset-typescript@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz#87705a72b1f0d59df21c179f7c3d2ef4b16ce192" + integrity sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-typescript" "^7.9.0" + +"@babel/runtime-corejs3@^7.7.4": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.8.7.tgz#8209d9dff2f33aa2616cb319c83fe159ffb07b8c" + integrity sha512-sc7A+H4I8kTd7S61dgB9RomXu/C+F4IrRr4Ytze4dnfx7AXEpCrejSNpjx7vq6y/Bak9S6Kbk65a/WgMLtg43Q== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime-corejs3@^7.8.3": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz#3511797ddf9a3d6f3ce46b99cc835184817eaa4e" + integrity sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b" + integrity sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" + integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.5.1", "@babel/runtime@^7.7.4", "@babel/runtime@^7.8.4": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" + integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.1", "@babel/template@^7.8.6": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" + integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/template@^7.4.0", "@babel/template@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" + integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" + integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.4" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.4" + "@babel/types" "^7.8.3" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/traverse@^7.10.1", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" + integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/generator" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0", "@babel/types@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" + integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== + dependencies: + "@babel/helper-validator-identifier" "^7.10.1" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@csstools/normalize.css@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" + integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.0.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + realpath-native "^1.1.0" + rimraf "^2.5.4" + slash "^2.0.0" + strip-ansi "^5.0.0" + +"@jest/environment@^24.3.0", "@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.3.0", "@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== + dependencies: + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.3.0", "@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@jest/types@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.1.0.tgz#b26831916f0d7c381e11dbb5e103a72aed1b4395" + integrity sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@sheerun/mutationobserver-shim@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" + integrity sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw== + +"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" + integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== + +"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" + integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" + integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" + integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== + +"@svgr/babel-plugin-svg-dynamic-title@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93" + integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w== + +"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" + integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== + +"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" + integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== + +"@svgr/babel-plugin-transform-svg-component@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" + integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== + +"@svgr/babel-preset@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c" + integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.3.3" + "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" + "@svgr/babel-plugin-transform-svg-component" "^4.2.0" + +"@svgr/core@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293" + integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w== + dependencies: + "@svgr/plugin-jsx" "^4.3.3" + camelcase "^5.3.1" + cosmiconfig "^5.2.1" + +"@svgr/hast-util-to-babel-ast@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz#1d5a082f7b929ef8f1f578950238f630e14532b8" + integrity sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg== + dependencies: + "@babel/types" "^7.4.4" + +"@svgr/plugin-jsx@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" + integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== + dependencies: + "@babel/core" "^7.4.5" + "@svgr/babel-preset" "^4.3.3" + "@svgr/hast-util-to-babel-ast" "^4.3.2" + svg-parser "^2.0.0" + +"@svgr/plugin-svgo@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz#daac0a3d872e3f55935c6588dd370336865e9e32" + integrity sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w== + dependencies: + cosmiconfig "^5.2.1" + merge-deep "^3.0.2" + svgo "^1.2.2" + +"@svgr/webpack@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-4.3.3.tgz#13cc2423bf3dff2d494f16b17eb7eacb86895017" + integrity sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg== + dependencies: + "@babel/core" "^7.4.5" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.4.5" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^4.3.3" + "@svgr/plugin-jsx" "^4.3.3" + "@svgr/plugin-svgo" "^4.3.1" + loader-utils "^1.2.3" + +"@testing-library/dom@^6.15.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-6.16.0.tgz#04ada27ed74ad4c0f0d984a1245bb29b1fd90ba9" + integrity sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA== + dependencies: + "@babel/runtime" "^7.8.4" + "@sheerun/mutationobserver-shim" "^0.3.2" + "@types/testing-library__dom" "^6.12.1" + aria-query "^4.0.2" + dom-accessibility-api "^0.3.0" + pretty-format "^25.1.0" + wait-for-expect "^3.0.2" + +"@testing-library/jest-dom@^4.2.4": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz#00dfa0cbdd837d9a3c2a7f3f0a248ea6e7b89742" + integrity sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg== + dependencies: + "@babel/runtime" "^7.5.1" + chalk "^2.4.1" + css "^2.2.3" + css.escape "^1.5.1" + jest-diff "^24.0.0" + jest-matcher-utils "^24.0.0" + lodash "^4.17.11" + pretty-format "^24.0.0" + redent "^3.0.0" + +"@testing-library/react@^9.3.2": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-9.5.0.tgz#71531655a7890b61e77a1b39452fbedf0472ca5e" + integrity sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg== + dependencies: + "@babel/runtime" "^7.8.4" + "@testing-library/dom" "^6.15.0" + "@types/testing-library__react" "^9.1.2" + +"@testing-library/user-event@^7.1.2": + version "7.2.1" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-7.2.1.tgz#2ad4e844175a3738cb9e7064be5ea070b8863a1c" + integrity sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA== + +"@types/babel__core@^7.1.0": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.4.tgz#5c5569cc40e5f2737dfc00692f5444e871e4a234" + integrity sha512-c/5MuRz5HM4aizqL5ViYfW4iEnmfPcfbH4Xa6GgLT21dMc1NGeNnuS6egHheOmP+kCJ9CAzC4pv4SDCWTnRkbg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.8.tgz#479a4ee3e291a403a1096106013ec22cf9b64012" + integrity sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "13.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d" + integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/react-dom@*": + version "16.9.5" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.5.tgz#5de610b04a35d07ffd8f44edad93a71032d9aaa7" + integrity sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "16.9.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" + integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/testing-library__dom@*", "@types/testing-library__dom@^6.12.1": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz#1aede831cb4ed4a398448df5a2c54b54a365644e" + integrity sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA== + dependencies: + pretty-format "^24.3.0" + +"@types/testing-library__react@^9.1.2": + version "9.1.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__react/-/testing-library__react-9.1.3.tgz#35eca61cc6ea923543796f16034882a1603d7302" + integrity sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w== + dependencies: + "@types/react-dom" "*" + "@types/testing-library__dom" "*" + pretty-format "^25.1.0" + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^13.0.0": + version "13.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" + integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^2.10.0": + version "2.19.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.19.2.tgz#e279aaae5d5c1f2547b4cff99204e1250bc7a058" + integrity sha512-HX2qOq2GOV04HNrmKnTpSIpHjfl7iwdXe3u/Nvt+/cpmdvzYvY0NHSiTkYN257jHnq4OM/yo+OsFgati+7LqJA== + dependencies: + "@typescript-eslint/experimental-utils" "2.19.2" + eslint-utils "^1.4.3" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.19.2": + version "2.19.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.19.2.tgz#4611d44cf0f0cb460c26aa7676fc0a787281e233" + integrity sha512-B88QuwT1wMJR750YvTJBNjMZwmiPpbmKYLm1yI7PCc3x0NariqPwqaPsoJRwU9DmUi0cd9dkhz1IqEnwfD+P1A== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.19.2" + eslint-scope "^5.0.0" + +"@typescript-eslint/parser@^2.10.0": + version "2.19.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.19.2.tgz#21f42c0694846367e7d6a907feb08ab2f89c0879" + integrity sha512-8uwnYGKqX9wWHGPGdLB9sk9+12sjcdqEEYKGgbS8A0IvYX59h01o8os5qXUHMq2na8vpDRaV0suTLM7S8wraTA== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.19.2" + "@typescript-eslint/typescript-estree" "2.19.2" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.19.2": + version "2.19.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.19.2.tgz#67485b00172f400474d243c6c0be27581a579350" + integrity sha512-Xu/qa0MDk6upQWqE4Qy2X16Xg8Vi32tQS2PR0AvnT/ZYS4YGDvtn2MStOh5y8Zy2mg4NuL06KUHlvCh95j9C6Q== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^6.3.0" + tsutils "^3.17.1" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.1, acorn@^6.0.4, acorn@^6.2.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" + integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== + +acorn@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +adjust-sourcemap-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz#6471143af75ec02334b219f54bc7970c52fb29a4" + integrity sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA== + dependencies: + assert "1.4.1" + camelcase "5.0.0" + loader-utils "1.2.3" + object-path "0.11.4" + regex-parser "2.2.10" + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: + version "6.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9" + integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.2: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" + integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== + dependencies: + type-fest "^0.8.1" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" + integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + +aria-query@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.0.2.tgz#250687b4ccde1ab86d127da0432ae3552fc7b145" + integrity sha512-S1G1V790fTaigUSM/Gd0NngzEfiMy9uTUfMyHhKhVyy4cH5O/eTuR01ydhGL0z4Za1PXFTRGH3qL8VhUQuEO5w== + dependencies: + "@babel/runtime" "^7.7.4" + "@babel/runtime-corejs3" "^7.7.4" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + dependencies: + util "0.10.3" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.6.1: + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== + dependencies: + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.26" + postcss-value-parser "^4.0.2" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== + +axobject-query@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" + integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== + +babel-code-frame@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-eslint@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-named-asset-import@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz#c9750a1b38d85112c9e166bf3ef7c5dbc605f4be" + integrity sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA== + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + +babel-preset-react-app@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz#54775d976588a8a6d1a99201a702befecaf48030" + integrity sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA== + dependencies: + "@babel/core" "7.9.0" + "@babel/plugin-proposal-class-properties" "7.8.3" + "@babel/plugin-proposal-decorators" "7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.8.3" + "@babel/plugin-proposal-numeric-separator" "7.8.3" + "@babel/plugin-proposal-optional-chaining" "7.9.0" + "@babel/plugin-transform-flow-strip-types" "7.9.0" + "@babel/plugin-transform-react-display-name" "7.8.3" + "@babel/plugin-transform-runtime" "7.9.0" + "@babel/preset-env" "7.9.0" + "@babel/preset-react" "7.9.1" + "@babel/preset-typescript" "7.9.0" + "@babel/runtime" "7.9.0" + babel-plugin-macros "2.8.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" + integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== + dependencies: + caniuse-lite "^1.0.30001035" + electron-to-chromium "^1.3.378" + node-releases "^1.1.52" + pkg-up "^3.1.0" + +browserslist@^4.0.0, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.8.3, browserslist@^4.8.5: + version "4.8.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz#ec8301ff415e6a42c949d0e66b405eb539c532d0" + integrity sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA== + dependencies: + caniuse-lite "^1.0.30001027" + electron-to-chromium "^1.3.349" + node-releases "^1.1.49" + +browserslist@^4.12.0, browserslist@^4.9.1: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== + dependencies: + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + dependencies: + chownr "^1.1.2" + figgy-pudding "^3.5.1" + fs-minipass "^2.0.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^7.0.0" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001027: + version "1.0.30001027" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz#283e2ef17d94889cc216a22c6f85303d78ca852d" + integrity sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg== + +caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001043: + version "1.0.30001078" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001078.tgz#e1b6e2ae327b6a1ec11f65ec7a0dde1e7093074c" + integrity sha512-sF12qXe9VMm32IEf/+NDvmTpwJaaU7N1igpiH2FdI4DyABJSsOqG3ZAcFvszLkoLoo1y6VJLMYivukUAxaMASw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^2.0.2, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" + integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.3.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1, chownr@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.11.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" + integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== + dependencies: + browserslist "^4.8.3" + semver "7.0.0" + +core-js-pure@^3.0.0: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a" + integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== + +core-js@^2.4.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-js@^3.5.0: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" + integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.23" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.1.1" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@^2.0.0, css@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" + integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg== + dependencies: + css-tree "1.0.0-alpha.37" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +csstype@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" + integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0, data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz#511e5993dd673b97c87ea47dba0e3892f7e0c983" + integrity sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA== + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.349: + version "1.3.349" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.349.tgz#663f26a69d348a462df47b4d7ab162a2f29bbcb7" + integrity sha512-uEb2zs6EJ6OZIqaMsCSliYVgzE/f7/s1fLWqtvRtHg/v5KBF2xds974fUnyatfxIDgkqzQVwFtam5KExqywx0Q== + +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.413: + version "1.3.464" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz#fe13feaa08f6f865d3c89d5d72e54c194f463aa5" + integrity sha512-Oo+0+CN9d2z6FToQW6Hwvi9ez09Y/usKwr0tsDsyg43a871zVJCi1nR0v03djLbRNcaCKjtrnVf2XJhTxEpPCg== + +elliptic@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1, emoji-regex@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: + version "1.17.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" + integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.11.0, escodegen@^1.9.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" + integrity sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ== + dependencies: + confusing-browser-globals "^1.0.9" + +eslint-import-resolver-node@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-loader@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-3.0.3.tgz#e018e3d2722381d982b1201adb56819c73b480ca" + integrity sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw== + dependencies: + fs-extra "^8.1.0" + loader-fs-cache "^1.0.2" + loader-utils "^1.2.3" + object-hash "^2.0.1" + schema-utils "^2.6.1" + +eslint-module-utils@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" + integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-flowtype@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz#82b2bd6f21770e0e5deede0228e456cb35308451" + integrity sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ== + dependencies: + lodash "^4.17.15" + +eslint-plugin-import@2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" + integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.1" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.12.0" + +eslint-plugin-jsx-a11y@6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" + integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== + dependencies: + "@babel/runtime" "^7.4.5" + aria-query "^3.0.0" + array-includes "^3.0.3" + ast-types-flow "^0.0.7" + axobject-query "^2.0.2" + damerau-levenshtein "^1.0.4" + emoji-regex "^7.0.2" + has "^1.0.3" + jsx-ast-utils "^2.2.1" + +eslint-plugin-react-hooks@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" + integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== + +eslint-plugin-react@7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== + dependencies: + array-includes "^3.1.1" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.2.3" + object.entries "^1.1.1" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.6.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" + integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== + dependencies: + acorn "^7.1.0" + acorn-jsx "^5.1.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" + integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== + dependencies: + "@jest/types" "^24.9.0" + ansi-styles "^3.2.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^2.0.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figures@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" + integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" + integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" + integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.0" + pkg-dir "^4.1.0" + +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" + integrity sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ== + dependencies: + debug "^3.0.0" + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" + integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^3.3.0" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@2.1.2, fsevents@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + +fsevents@^1.2.7: + version "1.2.11" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" + integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + dependencies: + type-fest "^0.8.1" + +globby@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== + dependencies: + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-escaper@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" + integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== + +html-minifier-terser@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.0.3.tgz#b33549b57be7f0357be0d0b892995aaed1ed90f8" + integrity sha512-It4No3H1V3Dhd/O0MePFdo0oX/M6u6YZTMw4My/010mT6vxdbqge7+0RoxGAmeSbKok6gjYZoP0p4rpZ2+J2yw== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^4.0.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + terser "^4.3.9" + +html-webpack-plugin@4.0.0-beta.11: + version "4.0.0-beta.11" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz#3059a69144b5aecef97708196ca32f9e68677715" + integrity sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg== + dependencies: + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +immer@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@7.0.4, inquirer@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" + integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.2.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + dependencies: + html-escaper "^2.0.0" + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== + dependencies: + "@jest/types" "^24.9.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^13.3.0" + +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + micromatch "^3.1.10" + pretty-format "^24.9.0" + realpath-native "^1.1.0" + +jest-diff@^24.0.0, jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-docblock@^24.3.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== + dependencies: + "@jest/types" "^24.9.0" + chalk "^2.0.1" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom-fourteen@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz#4cd0042f58b4ab666950d96532ecb2fc188f96fb" + integrity sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q== + dependencies: + "@jest/environment" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/types" "^24.3.0" + jest-mock "^24.0.0" + jest-util "^24.0.0" + jsdom "^14.1.0" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + jsdom "^11.5.1" + +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.9.0" + is-generator-fn "^2.0.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + throat "^4.0.0" + +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== + dependencies: + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matcher-utils@^24.0.0, jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.0.0, jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== + dependencies: + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== + dependencies: + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@24.9.0, jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== + dependencies: + "@jest/types" "^24.9.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^13.3.0" + +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.0.0, jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== + dependencies: + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watch-typeahead@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz#e5be959698a7fa2302229a5082c488c3c8780a4a" + integrity sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q== + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.1" + jest-regex-util "^24.9.0" + jest-watcher "^24.3.0" + slash "^3.0.0" + string-length "^3.1.0" + strip-ansi "^5.0.0" + +jest-watcher@^24.3.0, jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.9.0" + string-length "^2.0.0" + +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" + integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== + dependencies: + import-local "^2.0.0" + jest-cli "^24.9.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsdom@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.1.0.tgz#916463b6094956b0a6c1782c94e380cd30e1981b" + integrity sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng== + dependencies: + abab "^2.0.0" + acorn "^6.0.4" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.1.3" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^2.5.0" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^6.1.2" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== + dependencies: + array-includes "^3.0.3" + object.assign "^4.1.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" + integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.4.0, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +loglevel@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" + integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" + integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= + +mini-css-extract-plugin@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" + integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + dependencies: + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp@0.5.1, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-releases@^1.1.49: + version "1.1.49" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.49.tgz#67ba5a3fac2319262675ef864ed56798bb33b93e" + integrity sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg== + dependencies: + semver "^6.3.0" + +node-releases@^1.1.52, node-releases@^1.1.53: + version "1.1.58" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" + integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7, nwsapi@^2.1.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.2.tgz#f7b2212dbe07d07e340ccd6004c59504fc4015cf" + integrity sha512-b+2AKjAf6uQlxxv8ChHdM+VT4eeX+ZSwv+pk2xIXZWbo+yxn4/En1iC+GHe/OFYa9on0AhFF2PvuAcFHoiiHaA== + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-is@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.1.0, object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/open/-/open-7.0.3.tgz#db551a1af9c7ab4c7af664139930826138531c48" + integrity sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" + integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1, optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.7: + version "2.2.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0, pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-browser-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" + integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== + dependencies: + postcss "^7" + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" + integrity sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA== + dependencies: + postcss "^7.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.16" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.0" + +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" + integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== + dependencies: + "@csstools/normalize.css" "^10.1.0" + browserslist "^4.6.2" + postcss "^7.0.17" + postcss-browser-comments "^3.0.0" + sanitize.css "^10.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + dependencies: + postcss "^7.0.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.26" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" + integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +pretty-bytes@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" + integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== + +pretty-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^24.0.0, pretty-format@^24.3.0, pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty-format@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.1.0.tgz#ed869bdaec1356fc5ae45de045e2c8ec7b07b0c8" + integrity sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ== + dependencies: + "@jest/types" "^25.1.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.3.tgz#f592e099c6cddc000d538ee7283bb190452b0bf6" + integrity sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw== + dependencies: + asap "~2.0.6" + +prompts@^2.0.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" + integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.3" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + version "1.7.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" + integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-app-polyfill@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" + integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== + dependencies: + core-js "^3.5.0" + object-assign "^4.1.1" + promise "^8.0.3" + raf "^3.4.1" + regenerator-runtime "^0.13.3" + whatwg-fetch "^3.0.0" + +react-dev-utils@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19" + integrity sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ== + dependencies: + "@babel/code-frame" "7.8.3" + address "1.1.2" + browserslist "4.10.0" + chalk "2.4.2" + cross-spawn "7.0.1" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.0.1" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "3.1.1" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.1.1" + immer "1.10.0" + inquirer "7.0.4" + is-root "2.1.0" + loader-utils "1.2.3" + open "^7.0.2" + pkg-up "3.1.0" + react-error-overlay "^6.0.7" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@^16.13.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.0.tgz#cdde54b48eb9e8a0ca1b3dc9943d9bb409b81866" + integrity sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.19.0" + +react-error-overlay@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" + integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== + +react-is@^16.12.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" + integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== + +react-is@^16.8.1, react-is@^16.8.4: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" + integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== + +react-scripts@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.1.tgz#f551298b5c71985cc491b9acf3c8e8c0ae3ada0a" + integrity sha512-JpTdi/0Sfd31mZA6Ukx+lq5j1JoKItX7qqEK4OiACjVQletM1P38g49d9/D0yTxp9FrSF+xpJFStkGgKEIRjlQ== + dependencies: + "@babel/core" "7.9.0" + "@svgr/webpack" "4.3.3" + "@typescript-eslint/eslint-plugin" "^2.10.0" + "@typescript-eslint/parser" "^2.10.0" + babel-eslint "10.1.0" + babel-jest "^24.9.0" + babel-loader "8.1.0" + babel-plugin-named-asset-import "^0.3.6" + babel-preset-react-app "^9.1.2" + camelcase "^5.3.1" + case-sensitive-paths-webpack-plugin "2.3.0" + css-loader "3.4.2" + dotenv "8.2.0" + dotenv-expand "5.1.0" + eslint "^6.6.0" + eslint-config-react-app "^5.2.1" + eslint-loader "3.0.3" + eslint-plugin-flowtype "4.6.0" + eslint-plugin-import "2.20.1" + eslint-plugin-jsx-a11y "6.2.3" + eslint-plugin-react "7.19.0" + eslint-plugin-react-hooks "^1.6.1" + file-loader "4.3.0" + fs-extra "^8.1.0" + html-webpack-plugin "4.0.0-beta.11" + identity-obj-proxy "3.0.0" + jest "24.9.0" + jest-environment-jsdom-fourteen "1.0.1" + jest-resolve "24.9.0" + jest-watch-typeahead "0.4.2" + mini-css-extract-plugin "0.9.0" + optimize-css-assets-webpack-plugin "5.0.3" + pnp-webpack-plugin "1.6.4" + postcss-flexbugs-fixes "4.1.0" + postcss-loader "3.0.0" + postcss-normalize "8.0.1" + postcss-preset-env "6.7.0" + postcss-safe-parser "4.0.1" + react-app-polyfill "^1.0.6" + react-dev-utils "^10.2.1" + resolve "1.15.0" + resolve-url-loader "3.1.1" + sass-loader "8.0.2" + semver "6.3.0" + style-loader "0.23.1" + terser-webpack-plugin "2.3.5" + ts-pnp "1.1.6" + url-loader "2.3.0" + webpack "4.42.0" + webpack-dev-server "3.10.3" + webpack-manifest-plugin "2.2.0" + workbox-webpack-plugin "4.3.1" + optionalDependencies: + fsevents "2.1.2" + +react@^16.13.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.0.tgz#d046eabcdf64e457bbeed1e792e235e1b9934cf7" + integrity sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" + integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== + dependencies: + picomatch "^2.0.7" + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + dependencies: + "@babel/runtime" "^7.8.4" + private "^0.1.8" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@2.2.10: + version "2.2.10" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" + integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + +regexpu-core@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.0: + version "0.6.3" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz#74192c5805d35e9f5ebe3c1fb5b40d40a8a38460" + integrity sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA== + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.87.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url-loader@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz#28931895fa1eab9be0647d3b2958c100ae3c0bf0" + integrity sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ== + dependencies: + adjust-sourcemap-loader "2.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.0.tgz#1b7ca96073ebb52e741ffd799f6b39ea462c67f5" + integrity sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw== + dependencies: + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.8.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.15.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rxjs@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" + integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== + +sass-loader@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + dependencies: + clone-deep "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" + semver "^6.3.0" + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +scheduler@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.0.tgz#a715d56302de403df742f4a9be11975b32f5698d" + integrity sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" + integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== + dependencies: + ajv "^6.10.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" + integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== + dependencies: + es-abstract "^1.17.0-next.1" + object-inspect "^1.7.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" + integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== + dependencies: + figgy-pudding "^3.5.1" + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +style-loader@0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +svg-parser@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.3.tgz#a38f2e4e5442986f7ecb554c11f1411cfcf8c2b9" + integrity sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +terser-webpack-plugin@2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" + integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== + dependencies: + cacache "^13.0.1" + find-cache-dir "^3.2.0" + jest-worker "^25.1.0" + p-limit "^2.2.2" + schema-utils "^2.6.4" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.4.3" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2, terser@^4.3.9, terser@^4.4.3: + version "4.6.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" + integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +ts-pnp@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a" + integrity sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ== + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tslib@^1.8.1, tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" + integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== + dependencies: + loader-utils "^1.2.3" + mime "^2.4.4" + schema-utils "^2.5.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +wait-for-expect@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/wait-for-expect/-/wait-for-expect-3.0.2.tgz#d2f14b2f7b778c9b82144109c8fa89ceaadaa463" + integrity sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag== + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watchpack@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.6" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" + integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + object.entries "^1.1.0" + tapable "^1.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.42.0: + version "4.42.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" + integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.0, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" + integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== + dependencies: + workbox-core "^4.3.1" + +workbox-broadcast-update@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" + integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== + dependencies: + workbox-core "^4.3.1" + +workbox-build@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" + integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== + dependencies: + "@babel/runtime" "^7.3.4" + "@hapi/joi" "^15.0.0" + common-tags "^1.8.0" + fs-extra "^4.0.2" + glob "^7.1.3" + lodash.template "^4.4.0" + pretty-bytes "^5.1.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + workbox-background-sync "^4.3.1" + workbox-broadcast-update "^4.3.1" + workbox-cacheable-response "^4.3.1" + workbox-core "^4.3.1" + workbox-expiration "^4.3.1" + workbox-google-analytics "^4.3.1" + workbox-navigation-preload "^4.3.1" + workbox-precaching "^4.3.1" + workbox-range-requests "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + workbox-streams "^4.3.1" + workbox-sw "^4.3.1" + workbox-window "^4.3.1" + +workbox-cacheable-response@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" + integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== + dependencies: + workbox-core "^4.3.1" + +workbox-core@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" + integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== + +workbox-expiration@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" + integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== + dependencies: + workbox-core "^4.3.1" + +workbox-google-analytics@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" + integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== + dependencies: + workbox-background-sync "^4.3.1" + workbox-core "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + +workbox-navigation-preload@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" + integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== + dependencies: + workbox-core "^4.3.1" + +workbox-precaching@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" + integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== + dependencies: + workbox-core "^4.3.1" + +workbox-range-requests@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" + integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== + dependencies: + workbox-core "^4.3.1" + +workbox-routing@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" + integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== + dependencies: + workbox-core "^4.3.1" + +workbox-strategies@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" + integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== + dependencies: + workbox-core "^4.3.1" + +workbox-streams@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" + integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== + dependencies: + workbox-core "^4.3.1" + +workbox-sw@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" + integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== + +workbox-webpack-plugin@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz#47ff5ea1cc074b6c40fb5a86108863a24120d4bd" + integrity sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ== + dependencies: + "@babel/runtime" "^7.0.0" + json-stable-stringify "^1.0.1" + workbox-build "^4.3.1" + +workbox-window@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" + integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== + dependencies: + workbox-core "^4.3.1" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.2, ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" + integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== + dependencies: + "@babel/runtime" "^7.6.3" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" diff --git a/casestudy-registration/kill-8080.bat b/spring.reactEventApp/kill-8080.bat similarity index 100% rename from casestudy-registration/kill-8080.bat rename to spring.reactEventApp/kill-8080.bat diff --git a/spring.reactEventApp/kill-8080.sh b/spring.reactEventApp/kill-8080.sh new file mode 100644 index 000000000..1c5b67ddd --- /dev/null +++ b/spring.reactEventApp/kill-8080.sh @@ -0,0 +1 @@ +kill -kill `lsof -t -i tcp:8080 \ No newline at end of file diff --git a/casestudy-registration/pom.xml b/spring.reactEventApp/pom.xml similarity index 65% rename from casestudy-registration/pom.xml rename to spring.reactEventApp/pom.xml index e58c5d923..ce575d6e6 100644 --- a/casestudy-registration/pom.xml +++ b/spring.reactEventApp/pom.xml @@ -2,68 +2,50 @@ 4.0.0 - SpringBootSampleWebApp + + com.github.curriculeon + spring-projecttemplate 0.0.1-SNAPSHOT - war - Curriculeon SpringBoot JSP Login Page - Demo project for Spring Boot With Login JSP View + jar + org.springframework.boot spring-boot-starter-parent 2.1.2.RELEASE + UTF-8 UTF-8 1.8 + com.h2database h2 runtime - - - org.springframework.boot - spring-boot-starter-security - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-data-jpa - org.springframework.data spring-data-jpa - javax.servlet - jstl - - - - org.apache.tomcat.embed - tomcat-embed-jasper + org.springframework.boot + spring-boot-starter-data-jpa - - org.eclipse.jdt.core.compiler - ecj - 4.6.1 + org.springframework.boot + spring-boot-starter-web - junit - junit - 4.12 + org.springframework.boot + spring-boot-starter-test test + @@ -72,4 +54,6 @@ + + diff --git a/spring.reactEventApp/springreact-projecttemplate.gif b/spring.reactEventApp/springreact-projecttemplate.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a75a2fb0c9d3642a0ded5c701ecb44b7e0533ac GIT binary patch literal 2345980 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 S+MrEm3wdJZbuum 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%0DKbf{~B%f!~J9=ereNTX#$ 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%0A^hP8H>f+S@jKs(M7`2OKcWCn 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�KKr9%lN)BVcE)?&>axXob*>{~-jrGzZoEDr0Eo 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∨2>_4cO}qqjdDVpr%cnB&H=Q8o|BAFp>* zuUA!3?}8t+mr*x?kMF_kCkeml-yT=lpFCYK-cy578eB60&)hdpNMHUgQ2eDrzw4QO z&TZ&~rm%f)m|L&JdOa0OqurRNbApt{L+d{;(qe3i>b=$VzhF<@bz%YE;4x`+=XWI{ zQ1IC;*XMspfwAdS%5)d@Mj+mnbfBZFLii+Di6}gUMHQBWy|BLlt!SGBp$vj0!nasJ zMQ=_ueKdCnjWD3DPS8z2eQ=_fUX5OZsrV3t0!!Q&W=((g9#R@+n6BtGB_HN(UtB%m zzBV5!TS*Tml~NSZW(o}BwdJWdDD@jS`X}Gr%Sar5Y%-W zPqt3IH{yTFrA!swL^PJ?@jU4=}Gz8e~< zQH+tc;cZ%CY5Q4H=Evo@W-G=3wHMb1y6)sbGjHXGSvS{)(j9w346du~y9yWsOhZvm zyPI=Aj$w46;Qi;z*vYq9Q4i=M^8Pi|>jNrE>mxLv?)xl2n2ieFDb-aHm8JE!Bs%wU zBk!H=FL}}uuB8i#v*tThb{qqU3Z>*M^%?Ckt@td>iKOLtcbOzJXU)B+Bs;O~@H5rG zmvN7ICVhcDWac0Kw9^w%e^PAG6m-WVF~nyaVE=qY9FF)4BD_Y+z}{;t2)3#2_B)M& zgUffMiEl1qJp8S9Dk68w9-l=yF6Q%8QruLe7ri6SrSrA_R>~aeL)=EGBcaWlN18e;kS2De?EyYJv=C^6&@$92nkB z8ZnuFTs7(amaeTIALPo;`Re(gXIq-?t&b+`DJT4KXfjPstC|M9K==Uzf05)=iE~WR zBQA~Y;b@$V*jqXhwNWi);V3$%Q8|4_OABLFdyLQGPLW*bJy&~CoWuAIqYpFc`;nOwN4bB-Zf1i`+0u`WHv8iJBH+TWBd(P*;+708A2t^2;YB4EwE7b*lea{5tb zejyIT3*y4hF%Wp!cy0$ih&<>Am1phge|ShY-AKpRn2l}oZky(#i?ttr!Cb!@6KU{M z2;Q(D8H#%pN0wC$BQX!5S$r(M{CmwDhG9ZC%PB*6;rPjabizSGq>JE9%h%6*!gi$c8(0e;ez5%eC8xy1?{QKyCDe^JXC)vTD7u9Roe zSPa!tDhFBXe8^P=5JFjs5RyQzm#UDzbMQb&SdlhM~bTQaKE z7*6LHdBm*Bg_>@9J&{jWZr>)X-`2!Y?_gHJ7N9qMblNyKY@^$hrIUNrR^Lm-W<>{D zR<_n|tF>a2l~i0C-qVyQQg*Uy$rRg3U-gWGcXTp%HP}U5qio2x)u2!`K+;}yeRep- zyI#xsL9f%fRPO8mIXBo&No!4&DR&BBR*k#zY~8PS_M3^_m~m%pJhpNP*xBNKP3=e}1cmuEk03&cP z075_|;Qx&Q0|NsK3kweqkA#GTj*gCvjZH{MNJd6RK|w)DNl8UTMNLgjLqkJLOG`&b zM^8`Bz`(%B$jHRR#LUdh!otGJ%F4#Z#?H>p!NKwI<3~*(m{>gww0 z>FMk18yFZE8X6iI85tWJo0yoGnwpxKnVFlLTUc0FT3T9JSy@|K+t}FH+S=OL+1cCM zJ2*HvIyyQzIXOE!ySTWxy1Kf#xw*T$dw6(wdU|?!d3k$#`}p|y`uh6$`T6_%2LuEJ z1_lNN1qBBOfBEtyBqSs>G&C$MEId3sA|fI(GBPSEDmpqE3@`{Rz%F4>Bs;cVh>YAFG+S=N>y1M%M`mbNVHZ(Le zHa0djH8nRkx3sjhwzjslwY9gmcXV`gc6N4kb#-@l_w@99`}VE3x3{maufM&4Gc&WZvvYHE^Yily3k!>j zi%UyO%gf6vD=Vw3t7~g(>+9yuCA`HuYdpkeRFejdwY9#cXxk( z|L4!2hlhv9$H%9qr|0MAmzS5<*Vn&)|Ni^;4+@2H&2S;30SJ-*)0QiiU>vE_nC92^{6TwFXnJbZk70s?|}HxLmK5fc-WkdTm)lD<3R!-o&# z?uK{yzf1mI;O~llSMj@e-(~y1H2W^w|8K_I+uMKqK@a$c@|R)$XMZ>%7PC@SlBrY# z)(26`&X3eGU|cr)>G9;V*#9440a&pBR9OH@|0iITSx{A3 z2-R5VKeI5aurMpI&-K!16UmX1Dg{- zF$w^R1}Oaxa7t11N-oSw4$MmKEJ`6Cl>=opBh<|zwXLHR?Gjk*^H}Ulm>o*#9m_s= zRHCGo!Ib9!+Nxo?yU?n-g^jxvqjPKxfy??JMZM*C-A#brdO&R#Oi(9Z zM0)|GtqlCF4BT7w-;YQ4_5Bx}AsuB7-DM7arS|`!z^V_d^gl!^wMOezMBC*>+m}XJ zmqw_RMk$qkkuP;%Ep=cnc3>`bq^g#h<(K$syQS_KfT^gsA30bG>eoRtWjl$iaMm|c}vU6mA_lug~# zjeJbB0&Ugo-TAabu#}=;`I7)>#Q;D#0MG;g^!N5(c&tt#CXdpf3JjEXPC zd@J1Iz$r2%){&G?V9NwL42_P-d{D>NogRjKdZ*6iL-AhS1};1@FZv%t;A3h(&H2=* z_aNP7cwxtSaSnIYCQmZ{rsKIHsn}VRPIJ4G2!;ysneH}u;Wv@qSB7C$ZDUy z51#QvKBict*p~DC@l+PMV1ILuVs1j=icbHoKj)~~1Q~W-75S>8=up&TOv0Y$yOX7@ zK=R~I^CyWFwS0Ab!Tv8>R>4>l9)W*v9}pOKL-d?D6&PWE?Wx!t__!=Rn;*nj(L;!ng(8kYTk{~orp&nI83AR&#W{JcL&C>Ynv(pXSYtCxwB=KtEpwWgTT9(BJw^TXUF}874 z#;mZv@(|f-Xi2O7GNl_+vcJ?2)`#!|a|&1)_apx<$kx_N?kd{GP~bQig3~%%2%1uj zp9@Xr*#*ekG*k4gYJc|~q>03>+Lep<9+n*UR*#-v_y2BoxTM*wmpN1Pn)IZ~#ekel z*S&p+sLP*e7Q`J4U}MG4Nx(F0Oy?0q|5=Eb+_97K#O6phh6wt@{{3UP<+51r^aEDQ zuA9xe52PKW(a(v*<{82=aa!1<-sF%qib0W{*0tFt+*G3C5;v*QYF>4uapZo)Rs0~! zS1#^2&&X19yqM|L8_-3zKksUTXC-0lez_x7tbND@o%}v}`S{aw#z=Lcggl;UTs-P_ zYmx2Gj^>K$XFt{hO@_S76$Lh-Y)kJur}brXxUrKBnjx9OBgf-MuH8C*X>eNN78|_d zXlJ~@&-&x9Jw_2eL7h{C?6V)1(3LMtmQ%OT+TpY<^1ajhKuUfmutr(2D3;lA?Q4|p z-vPE97%ZN{WK7)#rx-0ePd2M%tn~m zu7R>>-{kPVtalNG-k0(m^XbQ0U-l;pHnPdZcIs9k;{4b!O7vd}#*q=a6LP^OJ%)_z zjPU0FYV7D>(_m?y#IUu%^v-~(w2VD;d?GtE=xyiB_auVme|AV9u7NO=SN>GALno0_ zxD{thSZONB_yFqV9mPG%?DDv;`VJP$>&@>8arV;TH0vM6P`l z7_St!QIh_ls&%qik8K6h=IUirvOm$1w})L$LMKVfQOSzp7IaT_K7a6 zY?u?5eHwZ>BeppuIulr8E_O=kq=@*l033kA6HG=dCC9R{z&LuMrT?S2gNCi-^C$I8 z^cDH0#u=bV&U183K}d=8Vg#me39&HpB8w^W(1*(ybWXX68E5~yTpB&4ohT4?#d<0?gtiCZXt+2!3srz=GtCqDnt^x$qds}x64oDU*Szl3TDPIV$=8DPUvkdG?1Ux>c!i%hmlLd{J&D#Fs6la#UI;ECJv4K=-{ z{pyws0v`T|>k65i!3!wuJmRzOnzg4*bhIX&T_k8V370pd;##9SY`4Ug8n=yZHqKV$ zWvEY=5A+&bE11@yY1k=q#9#aoz4`D>$*TI-i-YP<)J)dz_{c9%nED}N8BvT?iip_5 zUG2Pir`BA>h-$uHEB=qY&VzO~ZuZG1%{|U9p0;WbG6Mxc`d)8M6uVw}ltHW9i8o6& z;>TT(08CG>R=-Yk{Ol(A)t{dptx8oHt0~#{w3V!Bi8J%6q%6I`pRlypIfqVK{LSE^ zN8=R7EH{ulR=x zw_C*1KA>82eD(~k=4nPsIW@GU950JhE^CgE3;Ru^oH5y!q@Xk;sb}9AW3h1fLjiaw zXz6WdjY9Hf#wbEJ$=Ida#xNQo->k~4497W}dm(hDFy!~11<~R}0d0rO5xd(6eFT&? zo5CV~>>=+b{Q{NzDi1Y8fULwmjt$Z93C1Q^e!S?gWR4XI{4w$C^gPv)os3b$Z*vF! zH2eJJi9R zfk&0pJ$<}{RC_E@h#0kaAA-ELyv7T|+2X!= z2@L9;R!vwKJKq#^;1nn;50$uL(;>i$lE7trR#;1ir)TA%x$I-Qpi3>v^!Jl8Om9GP ztp#wW3XOf-Pq6nhLtb+q`fVJl?)F#9pIWvQ*Nag)iT(OxPvU2-6Q!`+#>eX0MlH8SPh} zQr|c`br;>gyr~KgS#rOHAUKLUqN(}6efJ%}N2RrtjHkCicQd&`Vrk~`;T{gbWRzO- z;_j2Qpp-CV({Ot%7X?@N}4dWNPTW+p4lh?`NhEciI?yD*=2Go{Vcr!#+s0Uu&2E@Zr>yArsQ3XaNbEF(gs4o(m z=@8!y@;U8k;@*cX;Idw{OAN?S6T>N@9Z|qBGV>#Zmcv;+(natznRfF! zoby+kW&En+;E*gQF)o-;{=rwNVTAb8vp%0~%E)>oPyyIm8CNnG2Mxv3e8Pi)q}b6a zd>x}Z9EtGQi`e#cYqkhTi4Jg(aBqQgXRb7&(J^A__|VuCn0RY*z#ZZiD*FmfPd?H9 zCJ>bN5QR#dj-IACf|o%pNOX6Y2~1APYDtn#%fwO$??o_hvP_DxOW&yyN)_NH@gwHh zL$N%x-IxAEed=4Mi_Orb9?_DrwwfZK7ejr5?NP=(&mAk6Eg-BwC*|j~q)T+D!EEc9 z+;NyRdXmMKZKX`?GTUjei%-aM_~{BqR4+ST{>hk?fTNWmW6?H0kUmopnkArzV_Q36 z(+ai?e@M}m5H4T0Lfwy2)KZ%WqlE$@5BCSuX%@2%@7%bRR=3<0zeM5=G?d@S`<8`fPe91HES69n+%HC!g}9G7cvO$TDPm5Yfe4t2^s{tz zA10m^!Eod#Hzh?R(v+ezGS%z#a`XI6>rbaW-0lGYzqr&Uws2Pa@pk*52 zQR*Y41W~#~AiE3=kMMv=EILa7a*wrqs|URQgin%>q6jgykB54CKt>)iKjfs5zf_*k z1y^LbSJ|4yGpJRe6r}TJagF%UyV4niD7!ER`;JMnM-;YCICFI;jStCACfQ_j#i3(= z*{2G9Rsd<1mX2Jm!4dL};beWoWSaYt##KUxPqlKSSGtas*+xDuRi!?+I zq?QPzQy~Itkm|qb0x*&AYGt+C3$+|RseH6-cQGQ<3e1f{UjT!^KSH?h4wa9CUk1T$ zOb~uiX_==<(_dUN84P*IkSY!LP|T^EH)a!8dk8QK`l&gFj*AP)DzoSj?4ws=AGM~r zNAI<1mx{dLI`mtXF~=nLo|FYOP2P{G$wm$f+sAgfqHQzn(R#cCn}^p`H&vZReDqqjK)CX~^C zftBxC`9g$do9xc#t0SNLt0En>ptQxM@!SJD*<2-{lcTw~5R%fg=OUSl(`Tt%EZc-Q zplE{t3U&m5Z5V6Cl5kobb?Aalq9%qLsfPQgz zcHxEbdH~;sY1Zzmwe`X;UvduU`h;-^4g-k$BPa(V6cNz*P=GAgPkaUY+~qu0XDJ5T zq)IuUY}lh3tiJLMddoW`1D+-I!>mk0Ga+atzx*xG+bZWdkjnMbVyM=xSVCAf!d%SWC6jZ>8jg7fj``+|`F|S=+#U;7Qh_c#kA;bhNBqSJH5|Wfb|?UGwT+c)TD0i|q=H2z z?mfrT9C12z>80`L6xO`rsU|YXCQC#nq+;l=4?g7HG%8t5mTpge6`70xmJ(N@+YJ@? zzc@DJO?Bsub;1V37F)IDF}-$74YNuLxwna`TfxDgk2vD?$3=Ia5;1D1zejkiUWjHZ z5gQ>eNHFNGDd`w%5ZT_6_TUFjyw04|mHjezJ;2e=_L)7+!|oiWjUAvk3~ah3ntPcR z8jj@`shWJ<#=hqlmI=!XX)lDypMO*5%e5-rubL+_n=}k_&V~1=W32?{FPy@}2iFFW z1YwKs1>(hb@+%-irur!Ip^HampVpV=?os5J>q$avjkTWn7GoAU^OvS2%-J!>8cUZ5 z^C~vSMYr|Z#eCTw2YP1LV z`XEIum;|kQN*MJ;>85*qFN;}q{jgTw9AVA2<{h*KgA>pmw-&gwW(wP$aj_QmX`Mwo zIYMzAoWCB^yB?Rn7#alh@}lr!BT2qoOUL+@`hg@dh%C2W-Fb2&8>2}uR*hW;*Pdvz z%8fG~L&s$tzv_}We}|;$Lt}eYAF6Y`BwSNa1UE(m^yRLH6;{`eQ2xH%2iD6gTdy z&FOYm@B(-DUlqX?aRh?JibQgR*AC3r=HHHL5`Am9GP@s^_xyzpWV?6&#gpkQ_Qc_k zYnQf)>Wzw1r_bP&5wRj&h z=L2ErPqSQQXb6gx47&uyv#nf3$Tvlrl>n+|`fLSH0`k1+z4GyMV*F2WKdiWE2W3wJ zW(Nj)KBOAg8blSCJb37jS{ZAzT9i7znL2ICI-YYUq|!9^A?9`>Dmsb-GuiDHz=N4- zXQF@Y-o8(FTCM91$aX7|TDyIPIY2>z?TvsXxUV>z{Sl^ITfZ%MIX@-4<7d16qlzD; z=+(~L(;JdQ6FotFg7OOi9)^bFuf3R!BbmGPCAIcW0P_Q_msKD)kNUpn2O5b*srL|+ z6z7w{vbaLyGgDc{Qp~f80!Mf^MKnvxey9V6?fDSmF$cHsZy zvr2QIO{&DFcHk~%S?*vJ6~?E{qGSfZ;0o^(SKQ-mO5@?}vu@kfrqX z%Z`tZx5L^>&^f*I4pt(Z`73^TO3klWkcI_b?(VqJ*T=y37rSx^I=NEj=t(;Tuc*08 zoMGE({lpi>tE&?)?rztvDja0Oi5%fS3jKestv`x?0VYvjl2&_E#~tfGu~>laPZSu{ zC`dILQdC|31Pva^yge97S0>ecup`I!#p+KhEZv%Bgp|lT|GYcZrrr3KpuuTh@On1` zrGB1_xtDqCb?r~^KBL#D&Y~krxHG0PV7wKyqT(wOgTFYca{kR! z8<(Xb{uCTI-bgbj*F$DWb~0fkM;iepCRN}vX9r3mR!o5p7W#cini`9rIQOMeDV$1P zvVK#HMq@K*e_NlYkxO{1K^@7_I@kVc)PYKcH<`6iL$(w#NX)k*8(kl_fx(TFoZO%Zqhp29chm06so6ogk;gSi@c}=Eml~jsl z$bE@Rq3+H!a|NJlN`yAF!@|nl*I2F>XcJa# zE#_SnlT9Zoh^Kp4@eCV@+wz8`oo|{|7R4s-vhjOaD5lg@+ySV$?z_5s>5-(+SI&H; zuv-eIA&@$IO+m!TNSPLNY!rJBc@S-y{BtvCT+wZ>j#C-oT(e;~;SknYhoeWtb57r9qa|#F+nl4i+@GNYVNH2bBwaD0SWy z(<|gaWu>IcX&NLkW4|{-5+D!aJ}hm9odL6y*6ttn8ZVNymfWp8z8z>>o2A3+pKE%Uz-LM`o+4`(WmT7}{<6r^9+ zo3}{sENc^=TB)vRE{(*jl$ynR$Q2s2rZTUM&zzi~a!9*tTS$!PTIhV%(yytpC(Y}W zZZPL{wBg6sYskXNA>LZ5Z{@K;BCkC=o1tg{kcng-sBuPKD^Z(d}a3JKoYzqSttE%|1MuR_)Dw_?IF z8EeuLLZCF$VzbNrxozwrWw~3#!dd*Yn)7yqJbPE)%_T`NkbH&JQvb=zwG9Nin8;6> zOOLOKkbP>1Tjn-GT*^#-Fk%lzo+j5J+hB$)s0De#70M2#pyB?F3B=&uUZ$Vu?k#qw zG0>Hkc6}PSLP@q7ouVMoAS_sc`6vQAe28-mJ^pz79msBWN7zi8#m+gPo}s5lO~p?% zG3K`jrXH?XyY*sU7Pz9dh0`mGfmM<*eY{k8yGb@oydWtujmfx0viiDa8z(~=j(=m_ac6M} zaMOomOg{KF57Azv41=!C^ly4C;?HZZjwtU>#xk#@q)w@arAJJ zdh4h0^&*&yltdS)E?CE_*Cf!p*drq^fQs73ub}8viyuSl@B+-=OC%o%vU0yp@G(k_ z6J&U#oioY^8y*(Qdc@Wr;AMS!!^_m;SmK|Jprhu!HwNd0{?wTar=G$~CAylz`8Rp( zBb(e1x|O;#7TDOpv6>v|=GF_<8FevY{Gny`{$k=0yu_yUtI482g(1ebSY0hr&CuTb zKy=oY2qfx0RW?NoRVON(6Gm;3ekJz#M?=W+98F4HQjy~1%W3fYqf^4lT$xc*9;1DO z$Dlco|6lp^(+qOXHO&H~-F}p0V~|ecuj#+%W^1(3MKR=(g2#HI&K2UDz^yW2!B3K) zCA;N2{cpt_zXW)R1&7sN_-uYrO7xPNT}#&R(a7cswXM=!N0ZGQegSaxJ@PWf*rnG7BM%Qu%m`<;NZ0B^CKIg=)*DFLbqLl3w8SbW!(bn3!ns3W4#FN7 zac`7FQtGtFz0i##MTVt}=pvESdb#|QfDra$&KTg#|(={LJ3$$`JSg^1SvV#hb|dXvsYr=JrT``jvRUh%(( zy6zF8WHgHro4oY6Sg?w4#Y9f)MUX8-P>$ew@-0&#y9ePmATb4{m{6P0-J)2i`vQdp z^)#Wd2F}SBO z$XGVW+zK6JnZ_0!8e}^dWDjhzUKpf7m*Suu;^G6inVn}6nsW09=4(#bLScJ_%{6AH|i=t_V-?=&a;42wFqkJ(8?r4uqYS!GTIVb%ey=l z1eG2O!5a^ym1n1oDDQ4+fFx7LHh;aroY;&p!sBCT9pmki5xAFg#gh!A9u2!6PlTUH z%A+#=i!)?_?cj(8zF^l>jbiHQd?O;Wr5%h>!pvT-h&vb)zL#aYkWap!D1=uGjX=v* zl8<)eqM%Nbfx$}O?me~WOn9yPf)frwLoj`k(9DG+<{`dd#xyX%@fqxpcpeg8z!GMi za-F6rNMmeSo+$F1>WG-q%_ElJni%?6@7^*DnQEU_Xe9%+=Ov84SAN8hw8u?NFHg@%%g|elZ2IOx;qK@x+HD?XDxo5)sw>W{Pjj?~begdouPz8Ye+>XhH<^3q~dHV0vGA_P}%4;ttm! ztX+a?Ch!0?KP$d3Z~{q@vDJWu5W;3ANLw8C;g=fNd3rESZ75J(^1VlUp5^C5&$-8l z&k}+1Q5!KS<|8r9^x9{l^^I_QjVhO+6E`#&e*$=BRSQh-zPF?0))j>hv?x?>@=i=M zoT-2AXjW?DnSENG$2e4FxmW5DQEcc0wM~JHo=cXe`QvHl#Y)I#B~+Q4g$!sa27$`n z?pfQMQz&dHu6aUx!>VH!^OX3DRBU}+7cq<5F@BPhLyZYYk_)&NbNE3}%t_*M^*!pQ z;t7khoVNFhbJkgQjMvsjPs$PN<5FDjp6-}|H^Rnz;?`w9rwXT z-rv8-Y$M};(u8%m#5AjwD0=77WtOD1mSyPpwC}@q#nA%~Mwn~a=w6ZNbLkZGRWg?~ zyVVyiMaXW{8(zjSrHSKzM-XfYri$UK{A^YIP(QEzC-;F&v(|LkU}Qz+lf1v9x{jTS zyB>2~xE%Og^RGy`dE}x*x;nx?agRHA5GC12+QLsmO3Lzi%?UNm^m)f}cGrsuLxeR~ zucPu97YEhP{bw?BmPK$6+Ps z6}9G8Z8w?q2z&*v?awpPuz{8uk?HG@@^v=6I$%7=nRX)Pa6RGAI)f&8TqKBisV9+l zBUNT2O=~0FY9qsIBQtU%D}5uod?TlABX?vY&r8oSLZ)CvPmE`@5MwbGq15otMl{NN zyv$JlHfo{OruJ}Ho#p^2C(f&UG!DFpw+&yTj9Tlo-hHEwmj_9iNv_M+$K~EqUEgd# z7>jO$7pxy?nd!Ui*<5wiXmB&|zZcu0+#)jz_p#I|eln2h)`xhmDNh^JgALja_3@JR zNB`-kwI((0NR{OGNq^GsSK53P8LFH?tt?;C#Ov?H)`sdp#um~G7xPhKmkNA%b_y1C zZ>O=Bjj~G@X6k;!3MPH>#iw9%AB(ft@%qom_xKK_go|LM}CsYHkO zr~IdTDaupt)`I8HJ3250v&ox`@ps<{Wz{I(kVuU%w9iF}RrPAv`6dsS8mIX?u%f&0 zSEQZeKR<4n%xFR4fIy#T(<;>ogfo^Q{J08TUSi2#X0@XD@UqIBrtsRkk+!>nPXmC} zpD^qlLv1D~8ADg)8`nWYzgMb41kN5hSvJbZ=)rOjA5BX=sx@qkE zL3cKn#t|x;w&JOx)hEq^&NyNKxLjT#JXSTMH7I8pV}7AIwK@*DR%wyr3YAP`O{}_% z^A+p?c*H_N6-v~Q)q5%F(ie=0IID9n;uc1_$_C+Y}v`eMs|G-wkw6+MpdJw1AW8y%8{ z?e~?XBm{2DNmteyyF|n4v#vc%P*3TN-CU0Sxzi7)gtJ9thqCHgd-6i=_T>5si@~xp zhM05X3$hUP^TQ1*I*7^;OM0*M7Iq2I1ad64b$H*_>0J8k_l!fIl{%lV2BuaH#;oZ- zuuq3p>h7o=huTk+3m{0^J+ntKP#(s8$!xpf3ABYyyV!P1?^W9bPRudut>j`y@U4Ro z&shgq;#E@l-BSfJj2Wugj;%WuPKHKpM!QTdnqKYB-<895AleF;&JB?OKy_8YdJa}i zTnRBh1jm=wVI0Xu3VF`}y^()L#dy5TrRgSQ5Lr3md|R5CTMWD|h;f+!ioJfluJGOg ztFpXZ7&XntJpVw288bMg{@(z8K!LvsdGMwRmTdg4PM54;^2y%*-fXP!f&@;%x~*`; z!tRE}3snqJN`Wmr#!d~I;0GmX11}8(SE=nK@GoibQ>pDwF}S_BZ_%jnzea2mcgrf_ zmf&@8;qHf zEf|BLp4J-^3v*VdWh-+*UhEU+n5K9?N`eS3uI>K36GKwUttw2(AigrPMY)wbkVJmcOAK)I^W4xBf z)ZF$;RTfXDr*_}-Tt)?={{EWMc9+?Jq147tlFW4I+~`UXci zuEG-W3)U!SDWx^;OasYKHVTX8PckTzOrib77+C_IE?`4oTbWk4UW+pZy zV|kS3TwmMPxhw`GwArXz~=Im(E=kLVHgk_0o5(SZ(Q+ zGLNnw(h}K%m)@5T;$p__g^%@a0Il*} zaqg<|F2;W`rSI_m3~Q`A3E!N4dw~b{5^qx(F??g@7{Nz)tyg%AqM2+7d3tnvU7z4w zFRFoVG9{jK?FROU=XkN-`6UJVxlb;ZS|kUbdA^eJt@z<4YksGX;P#gOCtKep^Md!~ zVCvt!kRc`&7Ff>e%cfYzOXWCdjMwK!vdZ4_Da(EV4yyEDh~=no+8S*7KYyN2dP&D2 z3j^lR1&DwDp0o;;3xq&6s6s^(=N1Hl#^6csJCs2|Ehi$~!aN;fp6LVrY6v~sxhy;^9oa(^g z(x?&bgwp=1Q_MnV8<99YDbS?Fkzg}!R2Zu3!=+|HwxW90rB}Lk1!BzQPN18&T5*PQ zro!PCc?j>$ty=f$UAQG(HvHH0Y2JS+#h!IY*f3(naa}gHN%$@5msLHc&IS43>C~!0 zvPSKi=abrRZwp+TnkdiH|5C#gD4aM%AZq~b0+&cS?P}S)n^VL-`lQN@YJ@B*Ef*3);0R(>!X%#8;DZ<4HE1N&_PJmVVZi zmYa63(KjJbMp1Ynh8b#T(@;fygw$1BrRIqx)D5`bUhD0Z6-iuWR+EUbRmNC&52f@Q zBmR;__TXb!;Wd(fbQ$OjL@|zt9a=#47@1Z^K2>6Z4>_shl;EXTBTWm=hSebpdBT}z z25xy)mrsGo6IouKS<)PsytTmgaU~f?NJg;(HxY`Pf=oQpa-QlgZ`DN&i4$_W;F8?GlNeyubJTPXc48B?ZkqUjQ;fC~Cl zp$}IeDO{eV!ScO9ZRX>#mag-GRY;IJfWU?p1d;4ExY`3 zOw*+ZGtDr+7ahfHxDy{1?&4ZA&_N4LVagB>eKgWZD?O9U5-$C8#5eyr@r|j?3^mqS zYrQqsU3>jC*kSu>u%cp{eKy)@tGzbcZM*$8+;Pi2H{EsHeK+2D&k1tdgjuUM;DLwj zcguu>t#Z(3%)t$85Yf4PnTB=c|@Yml=X_>qR1(tfdu1Thvy%Jsi-l<3Y zdzdsw6V$aVeYWG@gkUEV$0;y+-Fw&r4cIaO+DU-D^PP@bS3C_?Z#fhB2l1*`6Ah9N zfd@RE`A{f6_UX%kCZwGTUHH8f){cZcv7!2Kn8Ozy?tCRYpAd2bk?jnmHp3y}PA-+5 z)=Wz`25}mO9{4m0Vklib6d{EgxDzd=5R2NAV(u*HE5s@1cPe8X86&8itjutP5JMvi zD0Urk#kWG^ZTpm|m&Mp8-Xa%<0h5sCXeO zZYW6`17iYLj8kLLCaxR)A}mkAWC2mB!2o@lr#+#Mm~2LQKpFbC1RhX%ZVcMx$-? zS6-NvH+3hqq;wApZ93Q;!AZ^Py%aUhav<60g-TG0>HccQvI`dY^$%59%>gsC>7?kT zzv1Pnr*HWwMC3Ibp*n;RerjqZt2s|}sTsn&&df<)QTfVxNHInil8ZfI5m!qvv z2&7vM(m-szGFo>4Fnd<<>{~z!y7vf#rjktxbY)w@o(e=6$w5nUV*-qbKvf`~_{WK= z_MD|&WjWmahj;gw&X)=#rjns9dqv3Frzm5p{%T=X^7hkIqh&5iDXdoa(g5H=VMhp6 zibf>8Iv(7tN(gI-%1k3GB>2PxWWigo!UPf{KM~eIDMFxIO$yI0+T@(YJg_v`+D0Hw zl8>cHr*i6=$-642pThiPW6hUX%`hZoL)M8MD)Lbx6L!c!cF2(rMPcjiDWlgikXAD6 zm|ehu!~ewcP5^{6&Aw%31&$VzN(W-Z8mKb3707dFy2B63@tST`4p$(O6UN8`6@Jo+ zm@8+)sdPEF{~(I%Fyas@tEkYMh0KQ`GM6~^nLILaPeCAp9`zEpy6qK$f+gKx99r1V zdd6_3J^j5i`}aGdY}cRYdQps0VrL2dL4{pZw$nY)&s#`HNpVVTki{TDXV{G6Z^uck zGOn_d#d|`ne7XTx#H0F?b1L;|_6x=9qxxC=KnXzzu+K150^}v##=F83QkYV1W&@ zMbWg_^HYUP^d%dCwHW#IYIkW)fzY<~Kc)@EYC)veXW6zxhkcfB&$&C!%O-fl8bPr9 zgEM3av2(f&7F2tjBP5T?AP4y#X9U$xL)~9QuXP-ibU4>Zk{i7jTeMr6+ul6sXM!!hp2C7(Kag~xY%LfNZqnq~3pZl@dHt-}+>kdZ7ly@uG`_!>hG zcL$~1Z+0vu^cdP9QA!u&iGq874;)jED9%TB4eEanUQY?HXS!n&_4QO|DbgS*XA6_7 zFr}!pw$i(eN?ua#G^&LH0U(eg@4`Tyd)%l;e07+upQQ+>jX0^kWN6`dQ~g?9uWK8krxpOjeK6NY!Kxkp8tK4x>28o5gF25S7iNB0>(sQ=?Urh-2@g- zWf2#HvDmIH#Yj-w>HaaEAu-QB<(`~qQ3s+%MS;u*O&C?YRtW{(8?hcxxZdcY+v%xT z5B^|0iO>xm+vl|&7`@)?$)16P%7pRTj~E~E#UJmrnuys&@D-m53g7WL9`sEh^C`%| zn1D>c4z*a(+I?Th6$xW$pHa2o2l9zmKnhsVAh^lVxRu@y_S^6^pUt(=8A71>HIgl{ z+<`40KFuJk$Od~IAm}kkBq>K_J%k+sPXfweZk<^61QzIIpq?zBL%89*&BS04o)khH zqlt$HzTsQ#6q(5eRS*OSt<}9K+r#b2@fnW-S>g+N1uPnfkfaW8bsiD!VCbz=AeP&T z0pVN4*oLTH{ujktJLzB${a9Y5;Q#5>LsZ8oLd*qv6@=+Ylqr;$n8lNc*ld*JmC=$# zF`AWe#I_L1qL3lFv=BO4UsvrJ8fHc=CZY=>iuV;*nO#LlAd=a69*RAX9^NAPiBLVl zg*i>5brIrQ86q|Ag)inyovjnVu~0-zqWVJn_fI1lR1zAr9>{wBu^$3462migk{o4kck z0D*=;B*tR!Tv2}H7TC*jY=!_Lfn$Y-Kb^oFEQEe^qA>X=#RX}HMpwcV> z1?9<7p#mqNHd|aF*;8a&(=7y`)!Jc{gj4LNFqL5ot%XL|o$T1?Lg1*5s*8khDUf1@ z@A1uNWa>YZ>2b>BS)^$rLFq>pjiWqf2dxE|9D@5G$#AyZLWHVYNa3z}DE@PBC`B3s zr3Oa)y=o50>QRD`oaLmC{KGe122|h?u9gJwNGq9&2F{Ua%za~yPK}l_nvW_6w*sc| z0Bbhp$c}bs@z{Z+S;BCnA8&!s3{}Zo@P$#UQ;oXJk4uE$6OCrSdPlaPpsG?IxT zj=>IWz~0H2;Mu?m(1WTT3GHC{k(v%cWe&KCfRF`<(2vf(L)ds zgfNk!*67XJMiWH{pU@|tq~e$a8dTs*#`UFFaN01?>rOZYjz%%WDBFc2r5Q z6|B%wPt6I0U0$YHO^LRCi(Rs0doV2}l9IXVruQ{0Y+@_{=8)LV{zYg$1eIBlz?zr7 z8W^5MO5ZA?Fw)uAx{lL2#L|L~Cyv;YL~K+Ffw;JjSTt9MMvqd#*Ryy8!vb7Z)z-n- z3vIy}S9MXqpvEQ;On>r-BzB8~x^4CF%T--&l<3LCc8^x^m**OtpYhjhDaYu(iRo6S zT*(*n;9)(r>79)p54qdNir(j?Y=i!!pH^cnzHHP9>Kb(k&n)@B+QEh6~YvZ`i8E`^zOi{ zTe32*3k}y>s4m$8Q~f%F{EkMjuG-vn6pu=lF|^BYxXO0^1@QkCU^LyW_vNp@U~YUY z2LYGv4*9R=a%4t+&jTBPSYt9`7+9_pu-UF(3!BAP+Jj7qTI1%@Jz|?;J8C2Tme4 za^5_0+z^n(Nb-d&GB;ToByV!qfF~!nm?bYwC@-j-j&j9Na>X3+er-an`~)T|$@P44 z67vr&udy=5sS^*2C(APFoop_L)exJpDK}s<*7E)^Ta041j3xHo!Xz^<>&?i<5HY4$ zA(1S_95Wx6@-NHPbyCvMq)+)3P>()gFsBsIqH6Ru-y+mQrn+urWR4vPi!%oWPCheM z0@rFX(k>U1C-<|PmeoVvG8N-9D3|ju`S3tva~6~GNojFIe~~ro@^>2a$Sh^wQ8Y50 zb8(8N%#Os60i-wm$~@<+M%y#WV5dL(vO}{So#G%6+Okw)Gz6)1K^tQe%QQr9v&8(f zO>^f%(~wT9u{#BgMV}Mg+15}IS?vYnGd@uDa#HJj^pYgiLNL{%k=IS}SFg}uY+)4u zBlSI+7~Yw5@aD8WqcnCdBRyT^RW|h>#r`xFg)=gi;QD}Ux|wY0NwYV*H6Du_H-l|( z*>dPHbP)bD4WS!AQ?m)ZDNb{YO=2M{^@%|ID3OieNczxI=hf$^Dn8wpYB>$7wQA(7 znRh%`SdZ~olXdZ$^*g0BL8~>4u{EClwehZ#G-C8F>vc5O_3?0_%C4@+>a+yywms$X zOcVA=H?}~}wYq_4aT70N_jJj~E@a!pT67!x7@PT&6R*xFHbM0u-6CP)ipkZT%853y zV%y7Y$#oMO%}t+b7o&7nFv3$n6LU8^ z(ww&R5YjbHcWfdHc0u=bFgtfX{zJGIMfZPu3~y4j=ILBLn_n-E2XG(`zqm%CmDDXl zZ+jkQUVxv>Dk!VeXnYqlUN3Ks3p0<~w?Gd!Ld&-?zcz$xXMitvg3IDD);8%eW607p zP}lYm2lY+@^^-&SlHW3r2f1SpsX#~{7vbg{VjvEa6Z;%!ETSW9G$ zm-LNWxQ^d>Z+mQhBQSv@H!*vTZzrQ`tB{0eXI^*ZUe7dF>i3dE(tOKxS$j`obNO#? zcv=S{bl0guFU*HKoPECd*ZR4R8ChWn;EK;oi(_2E$OeofPn-{AiQ0Ib2O&Ybw&}_C zWzySz2l|gwdgEfbpriHvUKe@~Ci*ctdQCGoOY^F6Gx@JykWBmfG3_%n9VF;&dNc8n z^5_JZ&v~f-`B=WJ*1`nh5GG-bC6N{7Y@#=OvpcBI`byomu)j90uaz?*JMikdP-iEA z&%2@{ceQ6YzgzM|BXFbp`hpf?LwC5e`y{nHxWJ#Ek`uMI|96PL`;ki?%jVGjy%;{J zM}Z!tyQAT`1E+tDIJ_%wt@}HIJ9x48`N2mcqIdXV5B#O8b$|18%L6yqCj7!Px6Awd z{@66aFSoPXxx%kli^lw-(|kpnXir?X7?y;s?$DaDPxb7ocSjOb!+N&nx(HxK4J?-M@0^E>4C@JKh0|ArO{3ycb%?wCuSSPtKW z6^GP#f^o4gM36A-QmyximIvQ%`Hw^j|1LoM6F87yL4yYoCRDhPVMB)xAx4xagd)X= z6@?JQ`2KI>z>OURg5-$NVnLE6HJ(f;@}$a^6%CTS2-73Ylqg5GJoxfv#+Wu)zQma` zsLF{tYs&1Ykmu2%A&r_8nN(>{pHiP%{h4*^Riad_Mup1tt3R`i%5hqr>m~msrk0D2vj9Bbs%V{fL*1VZ>XV0HO zhZa5hFksT5O`lf1nssZ}uVKfQJ)3rI+qZG&*1el|Z{NRx2Nyn^cyZ&$ktbKaoOyHS z&yyGKohDSMbkMP9*S?**@h7czIlydlVNtIVzlZNk-FkQTSmt1=zNwx8gGdgc`sc}+ z{(Z9)#X!Xq4bE$b4*5dK#U1w;Y_P%f#6wHEoyeQeAqdy2?m7ptL*kL@1gdTr|2TRA zmV$DL@S%!4+>bzrkRSxaf2xay!y9pA4nqmabE-gycFa-8#TKbY1&Z82B@`P&l5rRi z{_)~NV`dV6DlJJ#W*n(V7z?PBpIsMa}|i; zk-RMk&+l?MaX)#K3?ri2KPTYevs(Gzzl zVne=}X>QtSxLmR*=6{y`hYc_rPHIr;SW5GqjKXEZSc|*l2njY8M0nj$mKEaaEbSB! z>6~S(Gv-}DxKdM5)q8>xcg}Si6@fdFZqcW26C%kJ2l97kjBfsUB@h0M`4sL_on<$k zND=Sca~^wC`yXd~+8SRWwhq0lko=VftbuU;DrV9xCw1O`HjI1aR@98#L&8}cHL0Zv zI{b6lu8ckB4<85EXFlx+FC)`o%r8NA0%ZF5?YSquc+LfKJnOMi&nhVP$~8fx=4FD= zBFDr3kX;b_ZiV4AwnhCBfq`WgPgkE}yza5)O8q&HjF=RXdo?6LG@4&10=1%^DQ|!k z{G8#yw>;~NFDK>uQBkIqD^JwNE9~2d`=-Y{f;>=H^}ApGekUG(&F_BzG>8B#I2tJI;7r!Vq5F8%SGXZlzkM3kUJ&}q}B}v_x;>bol(kzK@jNb;CI4Z7Hh&%yO z9tG8i#S~s_UY%OqKT-uo{e=gG`r{&-u9d+(h9+k0yOqkkBqdD|1|!sSh!>2+ktB_B zldW8p{vb$4bxALUxZ@y3WMn|p6~tec3yB#1rh@Pt0+Rk|U>U>rkGY{xgWzJ1GlWTz zEyx2(Ui^n7W9Tn#h3gOy%w4?HM94L|QZm#zNaet0q7^cZl(plaKpIF8hGCMN^>hy` zBUs5L){$ZzyVxIn88?G?!ior?A~WGP61}m@MQVFt{utG>P;yzqWB$>fi-IyvdpgFP z20`aY@S`ODNG^~=WJr7jvWa&Dj-DHJDRl5DOSRDwmODFLMh*m`O|XL?y?jwk*nli@ zRgEFcQe-p7;ss=3Nf~MLVz-tw$q22IZ6Gkw^8iYqp-@DlFZJqI!HSzShLx;kHS1a1 zLX)wgm91@c>sx)bR=CcUu61o?Q|y{oz3!E-ef8^K0UKDf%2lw1^^s-RQ&7Jo);5GS z3uA8tS;62nF)?G8Vqf=`uI|yYxx%bn*J>WdNLDbUm5pO1V%omk&0S$>XTXEn4E)v1NHY{cz9Le!LGy%E1SCMwj{}oi*`9k-pANbBIbRF zQd3s0v_VRHlLhd6h{_kD-FIyd{Onr%D<+KSEubHX=U#;H+v*h9iSJa)f)6Vk5HB}0 zBhD;BdWaPd!v((tZtZ9I8<7YzBtQ@3@Imw|7yPhrQ+qKnY#Thk2Y*@tECUJ91kG9EZZ~c6@QbKXc`gA&;pru zxeU$beQyZ29A?8ntaa*+?dsnLD+qN8T9H)`#MNuow`X(GW^@0`w%{i7tZJn$nMvx+ zRV@{G6edrL((51s!=K20y8cC!U3R8$m>H zp9MYI2D!NjJ?;sq=T;!zq9GkM9J_w!N?;3R*ALUQb>McLm5D4FmZUzS^eAF}1)i~( z^rZn)(nQ#SOEyhy(js(b3RB%m)<6Q4u@!Di+1KXC!&b;)TFx@&usfHr4Z`(9PtDtJ z^a;r_r}bpX9XyICNW~RzF|-2;WxLu?zXwwBl3Qton%8pG9jWufU##ITHa$TECZn21 zD8}WXy+OFuY0+14BsFFz$xEKFgnh@JJFY_RG`AT2gNlDl5R{Hx zeV2PbBz^N`;YU;5oQ_xWW{UXcjogp=)=fnKkSk`W zY|`%^!Y_R0D^LE$Kdy#pOsvNGBWJp4PZ|*YP+`{EPUY}MZ;YV;Eo%e4U|nkMkI?N# zgl3C=sw2`MOS0@Of^Nw~B4)THdx+2f=;k2K&uq{J+=2&?g2x6?0wb77{o028RL&Ue zL#b%w1z)BK?`8n^MvOR5AXbq4z~;g@u%XOGe!3)RLeL{jhmf+uYbxT;3T_DZZ@^&b z{LoObj7J4ouqKeM%N#-j&!_`!=L7GsL|AYNwFUa}j3%b0`>^JUW+nxva1X(3bV^5f zipG|V4OK|~#9yTFib8>QEXj843%xezDW>A8{((M(iJv^>+;YN@&Sj3S$!B87LhwvW zJdvdK47g+wAwbN;m`&m~WfvEM*1o5AY>^As#fseMK7egZCmE3 zBOWmE@eJY@Ee|a8NsE$DtFi(M*F_YG27d?#7N2aUJde?`#CMoc6WLBZZYOpc2~&&_ zBu0_Gex!AzgCEt(7!~4hzUdi33KQ87$^?ShN@4((L`as75ZRQ=B-{W&LP4bt?FKcdxY{M?9!jcW za^L=9N#*7b8ck}3QjH*F(zx<%i2N&ZsF5L%F_R+6P-4hTd=MJf4)64lXf`769%)jx zv9%Uz^;oFtY)K~&${gLPN1Sf*oR4Gd1%5g1M+1ia3nSoC_0iQ0qJ`pQIopTAxP5- z)rIM_PX=)ei(HU(*bXX)lYNR!9vLT*t+k9duZ;>fy(gkj1ww< zO)8_2Dq-^&N6;^8(MGlsH3z4)P!a}HMptZeECQtPAW}khq%c%b2wBJ=9+S}~5B??( z^D3C|sOnPw&TN}10v>x(YLv|{p$a<#Q&I-gyr62HkWM}m^HDx+ge0dul@A@$aWXZc zGHVAjqbnEL&OpDBB#HZ>&U-${|23@LDpFz6~bH$czwArf_pF zb(1FCz{za1r5a@soh~Z@RC;2RMD}C>b+JXOG9iX^Iv><43raerY#^>Ok$`l0C`miD zr#m^s`CRiTbAk|Rs65Xi2Z=9qP_4%n3?%f@2#Jn-1W7dK((~AqFdr}XdXY8xavuE? zjI7iFxN6o!Lu*k(FDXAA{wXh?O;W+F z(@GOX<&hv#(9JuB`@(} zv}x2ja3^#oB|jvfzJoC@4-2}9f{+PywqS1fmy06t~x?iAVyY$n51YW?Pxm|2{thl?PJG0a9>HXI+=A|{d8RvL?CihFSXQCU}8m! zC>t;0JPQd>spEg}ClsSe2%;7O^#hqaR{TC>XyyRqh$5E)2Ww@AKFjf+8t579qg#Q? zG)N*||1wC&_IffRM>P=*wRQ~uM=U{=_t zuWN14G+#2kY${XyhoZ2GHqrKFb58xfjv-o5w;j;(v8Gf;~coX=E5!cvE94L~Al6HL1y* z;pNnIV}&56=7XmOZK+C4XJv3Go_Bi{CuNr9s+1>Cf34{X0zUM2K9;s12#wk#NC*fm zjeqouU`ULY-|+1@zmI%{%sQKu zUK603cJdt(B5fU{fr$;CIMHq2HpoDvQ`$CO=E*1YLy{MQWKG!<-T^)>f{a&DlS^3H z$h0Am_aEp$q?|!is?~+(^EBm^a?_)fQ|fDyV&iC}lOJ?qC<2prsw-?Fr~=H_5F+8; zlq(LWl;`7XYq9}nW6Q9qBXiV(8fQoK#IB zO0J_7Bc)+FH^y$E{Sb^B6vJ(qOEm9Kld{=oY<}lB(QJlMx#s5D2uO2nxs$KgvsK)28pi4_@$St z`0zrp2V+8sYY}o3cq2@KmRWjSq5*o3S&)o0;3kq7lQY z8?TU?D&ASNH{+y1>#o_t$`E?~#*!ptkzfw?#0%sgz>cdqmr{H)^MS0Zx2NopK7v#A z+g79UllL1$>#Ijh>|6z$XH>_(g4)1wI$ECFu@D=hCHP>w8I#2O$#mk*G;_dzTds!= zurc~|MB>1d<<-7|tovnOkGiRxNHPRCypVJxPtB&qY$boXw%X8ZalA9XXDzXK!jrpc zSFcVyWD}Gj9$;aJuEdu!0zO{*_Pn%Tilh}+iOUSaud5`pEQG%wslYk4DE|9&hR$Ud z7@Eo32ocu9ADUk;d@KGt%i27;d4iQs5y6Rjx&=~n#oU#f(n8}L!hjWs$*#5je4}Mq za1|`Z*JWmu?8YOa$!Pw3OmiH!$AiZ+$;X-6Ed1*`h}@JdnMwKFCK2MuDE*16^U4?a zAVSSc)bQhUWq`vYR^UuNNv+N%axE)v)gAnaZr#QSV%6+fjqAD9ggsjGJSCoz;P_am zO0C+$Epy0?AXc49Z|&WxmS}mC`|K>WLHRUe9oh|T?6ytX_s!Q74&+*nR_>TLE6uwp zb;|*{+*7U>mB+8Ay(U)t$%iLc`%KONO+_do->>4_xvuwIlGhM9+;KfZ_za}~y&yJ@ z*ah0yA5_+)9gPu=kL4X9rqtxXU7!)(0EZZoqOl<}XTc+9#PttbHWSj^?yTt|xK?;T75M-}K z#+P03QY3`UnUCwR>ck7^+W7s8j!jAgH-N_8^>+p})7nbJ* z;(iT6?-lsLg5rOzD1Cdg=Y9?W&;B^o=ItOT?(F03*}NlPlknS~MB?7&zSB8jP3>Sk z`*OwY8_a=#&J^cw%MahUvZ(D+tn|IKpXSHPU*|yWg@sa8_js<`2YMIi?lmi4hIAat zU6b)v^EoviV`QHsFF(q^c3EMr@MkIa2YuvCb@$a~6TswH%dYriFXlSm?>a9k1n*MX zPw2Ye{wvJRfpSOsyYBGFg;dyn`#A;oWUpI{9z{$>^!9h|PES%$xaj8PerPFr0K&mP zAq0gWdE`k0!GHe_{!3Rdq7a4y?Ib*ya3aMts6u)4n2@4GgO5T*V@Oa8DvAs}reg^c zrb^CrxN0mRvwl8WP>W?z$cX48DNNXmxF~i5o(AjWM<8VIE^ig zxU(Qjj8|i-4CU-8l0%`Co=w}3tXcwqfq3!er8v|xYNCok2x(kauT`-WAsg&Ux989P zpr2VUhK;(Z0nw;bOFS3~B2}<=fhOH5*{jCNCsnF;PLnY1fr4EdG~9e3?SD9Zil@rG zqxpu0sUi<$o;S?Yq$#t8>xHOJx^r2U2YlCC!>!fURrFDWoLyDv=A2#K*#ur-&)Kvc zOleHUQe~|%mQ-09;-{Z|*ChxOSuqV|j2)p2^Avfi2^d#_EVcGphg7v<+<3j2lvQ!0 zNkkuddx_^4fK~MeQ+5my@{de<%bnvb%}M5bc9HE zkY^E1sS#OXz~T{HBB^xJl(kLB6^7?&bRmnf{WA%EXd12a;b?56ms%wfNu&Cg+r=O%F?xYT^LF{;x1WjLDvqHsNps#^$le9f$WJ+|YgiE9b^f7~NnSNA6Fzo9 zY)lfgW6zF?uiJy`{i#IZLOv0R5q0hA<|}dw^Q$^C43aV?&^Gp6FO$oY_P#MpwhK<_SFDGcdsTwFE!AmSnv@&y0yz}* zo(AhEo*S5aw8=Y$mL_v^hflRo(uzJj8?54!Z~n%#4ZFIl-_G3X?@kXdx$A61PrK`% zU0&uKmmx27{NZ13bTX5x5W+L5W5}==g19kFL_;hQAVaQq{f zf4>u3{B&nQE5#&sJn|aC08!*RK%kG32yI>!fa6n=eWTzf-hfNgbC7a z2$MYq&J%vLBe)QwLSkC&g;$E9)>v{#lBi~hiZW-Tiunky9Ap>(n8PjsqL+5l zj#zZ1KQ*!iLdlSt$8%=XAa>3}X3I0>F=^opHBM>vlzn2HC+1|9)M_?!ns+SffW!s9 zg`qDd#?%o`JYur+!O9^wJxx;0q*iAWXd}kbnMyv3jkf7FcaM!n@@3vMOZ>lGZm^DbW*a zGK5J!Z79H9&Xb3l@)HP^7+DuO4qjS4&{FP9e#mOwUT2{mgcZ#*bP`#=f*5s)Vd{Kp0-KM(GIl}8^RD#`8WH(d?9LQ%ZB`#d~ zNli>qtD(e|s$jLd-lH}xTMsE$cbW9ut@a5i8Xa$CmlUvQ{j0le)R@jHWjtK+PJq1a zY!;Dsv7Pm1F6;s*3dvK)kQErP1XL=1<67Zh#iqm3wdMdlfeF><48$h;=E5|_$^myI zgy%%=_vZCivYBSy5d;fzK_*V*goFX2Sv+e7OrvIdD73UF&l0+* zTI5m|h{A>8pajf|$Fg&ZUe#dNA#HOZ)L0&8!D*M@>Ce70iOn%;TP_Te@|yxk%J83fV4Zpa)y z;$cQwy4nr7b_{V%5oQlC{=0jvOfJw}sCpye-U+7`p6wIXufC`wi>5aQWBa`P>IiK@ zxKQ(mj2IiTQG%ZE4iz+g|A2=rXe7Fbg{3oY%2y}_H;ScLKL}Ebw5(4^k|8OQBT14aX_6<2k}0W@D`}Dl#F8uZk};W)E-8~W zX_E?elR5c$L!*;D>61SRltC$!LrIiHX_QCllQhYa=7N+ZsgzBLluQYgP8nBIX_Z%r zm078kTgjDOxs^|;l2YlFW(JmHd6QykmSkC#X~~vt>6UK^mvJeVC|Q6d>An1LyngGrc$X_$wJn2D*Fi^-Uc>6niRnUN`(?KPQ`$x4-pnQeKQnaP=m zxtV%dkmMsLr^H4m`I((*n5T)Ft2vdhqMED;n{4@-S-BPzIhrI?N&RDTDLI?5{@Itk z>6g-*__>}p6gj%!|)Scpe-%-Jx`&pmJ zsh=i_R0;~7;rS`9w2v=}la<9BR8phkaiavfRmC}>B+8=v*`q~SqCk3~hgo$$Iiy1h zomC_eU#3Oyr%{{JUpSha;+dmI3Zo8+rRI5_?G>Q*GMr!$rV2`>MM|0eHf5g2iKSv$ zq{*2(T`H4XYGx5?8ZgrSDyYzfryEJ9Yvf`rfSNd ziCU!+>R09&_fI3kbcM+wH zYNeWbrJJfOZ%V0hdOnaUmALAwlX|PNDye=tt65s9pUSDFDy%)Jt1IfMgi4%cTBel) zsEgXCdHSb&YORBcqWamaXNo?gDz0nFsKRQl=NhTI%3#X+tGLRgLszA!I;W?~uH$;F zy;`2`nyQYv9Lp-NAIUuldO=6_tjc*{2Wzl*YB`vyql2ohldAr(m)fq4y08-4pl}*p z;R>u-x?jhNM^{p@7n`6d8mA9>s3f~m(h9N0d9nQJvc?Lsk@}_HYO+6yrpZF18>^^I z!>~@Mvm9!$_PMSWyPy-xlp#B^ExV&Ai${Ojvp9RNMN6q4OQ^3ovq>wpMGLgqDw5n2 zEd#4xHtVc0i?Uanr}w(G7TR6?={>%hs%(q4hU$Pby0rPpvrDkiI`g*emmZLW-r*TWQi%Yi%yImxkw}9KT7JIgO3#~qyv~@dlTg$d- z3$C3jxtHs+4Xcu=Lpt7wERY+mdnmSNzP z?|Qr+yS@L*rqyed*{i&B+p!EAs)5S25R0uEtih6tpZ|Nl&#Jw4o4P0LqTZXX3S7Dd ze6+nwxCHFE)w;f%+rAIny%k)r<}1S`nMAk8jqH`PpoFyW%fh4^!89ABrzyiC+q^kU zuNWJ z#m?HoFFd{l48@}wRp>j#ZQNTnEW4yzr|o;h)EmVLJjeX$p-a&U&GWiDEV_a0#@PG3 zT5QQiY{bk9!imfd?$)}5;p1ij|%ET0_rA}LQ>>49irE$sr8M09wip zJIki5%Yw|cCz`vZyt{Vnyq)~Jxs1q9tG=>4!XV7OI&8R`yT9QJl2_!Oy2ub##6*%D zx_Sz<#HG703c0mfsD-Ms;QYj6s z!#uSVOu{CN$eug3nS7;p`pyEK%ypXnu_!#bxI4G=9L(tK&r-X~@eI*1{IhVJ&&!d_ z^;Dy3Jjj0R$`UL()A2N z(JJfJ4x7Z=T-A^JxBi;0DqPmID!@cqn{9znh_%O2EVIdK!pCc%-h0gbtG76f$7Zd} z?kv*No67Wy!{Kbws%p;#UAuk#%#s|c#yZ8B?WkWp)dbDVTJIZ^A4k?PHs{T-M4ZIYNcKJVy9W>uSVch?kQ;F}0K zCRx`N8R2vofgSna2o5?A-ii@k#S3Q%4nz>*lNkKs;pa2qx5+6VW+)tP;#_qIwt3ED+mk0A-*X(`}vN#G=@ zNomI|ZO9TT-7#*noBkt-(uu+4lHoQZYG!1F<^AL3Gu|9tAP3^uXv4Ef9Es9Bk>9Gv zk!T)bl%X#vo!=OV=eS8x#^UC1zT<^i=*yQqAE@Rg=;48m8hvi(Zi!w?{*o%v)!{X&DGZtAxF z52?P92eApt5D%~bE-GS+b2bOPXlAUgi=_?|TEgNve(JYAV#@C7*`<-r&Od3O>qitq zz7Fide&`@6jMV~2wW1p1&WJHyhsT(a-X843-WK(PiES3`yN>J4uIS!H>LoUom2T-P ziRnMdmp8fTc=+qcKK_!qNTIEICy=IM;X$7y89@c{@Nbl5TYa7pkMGvLkw~K6k6q&r zpDw5neb1heP8RZw9PUJ3^5K5*ToqwdiAv>XN;pG+Wqv1;Q!pKQOHqFE{H_u$Kk{=S z@@eVs|DKWopOkAElsrWsI-imXKfw%7cG6K@s$TUd$)pkCq;UmgiyaXaW-j#ky}7sX zz1%-Y67gTwDg+htkGAqow)P_i=#Sv`Ca?7Jxsrj^Ed}dnLy9Mo;(54LblpC?~-Y`uA=(t_)e8eKk)XZ{iWafbe9O>HFt4CLes~BaO27 zg69b5pZE_P{@#Ko&Qo6nYMK8GugFKCK#kG_`k^5DmK8wtA^V%3O!&Q2zaRW+n`+~Q z9*AFWC+S=g!CMs+W&?a23}v3pKda{nqMehXkZxedXMGp(_TtZXA@ulJzmXQ90n@i| z{0@pL$@liL2}Qmn=g#zGms-)3=f(pNNFIes_s`%#gbDu%3>7V*9ZwnrMnp)c;lohI z6mI0$(c?#u8`E42S<>W5lqprNJo%(mE?A*Ld6I`p<}d^QT*~Ab3g^L{Ja;)j=yDgF zo<4JKv_nv3)1DMtwi@aYYEp*>ulCHUvsF^18yOZvIMQjytvs_DMcVVHL5pBRRrLz? zZC#=MM1fLm%k!>DA%RD}9UIv2;H3!>vlKfposfTr!&>y@&LA61bM+dA3{r5|$ebZB zHpscO;f_)bPShX<*1u5B5+h`&dZA;*pv9na$hz@N4IfF5&HeY|?%t1V8w~16T1VfE zL5|c|w3V@@Zwb*gs&}Kst_LlWJsEwq^42k9&sIpKAmg5kp7B72oBM+JTDwG{B3=S~E+(0E4?+X6o z%)Nu0gc2o&?8<3A$$ol5J)YvBN-u#nGA=SJy)*5fG&|d9&5dj`N*V8Bi&4cnZh)R$6JP*U5W_qqM4E>`H!s{5yYCF9W?TIWw4QfiikT{$(sXGw@G|)%- zM2}Pr2d(d;ER!N^AT7_6>&)p$`tMd;b7jdTiVzbh)I*nq^v<1}A+^zenj&u{KR+r` zA&dU9sJdv`EA&)_1kE&|YG>4_*kgqawo`0}g%R9wnG_~bk2 z4l&W4-RLS)p)=z>$TW5XOGq@-IFj?LP2P#ji&p-rj@(rLS=8qu1XxINI|L~A`aLkkRW0}{3z;mQ-T zO;XGIh4CZsFk;yzxlrZ^b7*aLyd)4)=bAoX@8(bCy{cpPWv_tk*k_x`{d}PCM91jx z66GTCpVAR}UFut%hJJeL`*W%4i>|&6ti8YPI!eEt9~;ZEK{^}k{^AUXTkfP9)i!*z zJw~kWikqERrtZCdaNCa@H`sK9B+g{dyVbfRCYt7b$5xVKN=7tix!1u-G@DBe*T!SH z^G)t?%)3bJxHr506%K$i;?##w_rZ?vYIe3unFzgNs)q0`gK!Dn1>6kt0UbK zBeg*Gy>PuPH^CF5v}i;>kNHWNa)c!~mH3s%EV7#*5P}yTA+fy>B$Db zhXT5PU|~d_2-_T+IlgBy#!n)ZrU^roujPR#imU$F!itcp)R}~BTXDgK2@bM_dgR1L zTUu&x%qh6QAwgDI0V`9xSjDGm5pr^Q+?Nt^B~{4;HaxkgX9B7dFv$e4|A^gS|8m&C zf~7h_FiTS4c^b~4W?qAp30W%Z7i&?qD2W~8=rC%^<@u4XqfN?UWu>|wrKPl}Ql4H> zVyR25G@h^YV)Bw=3~RA3W|0N0Y9-5&AAPB{rX6ZXg4$f@O0B5bb7IY+Vu_ou$Eo0h zs$kH!HupRWm;t{TaRi?q%K`bh9nRu7r*6{FBZKkRq&!%Av=cg7HEu%6(Ph6 zi$I+xc2p(QQAo_}3F8*%j6Y?V^{j7>^IH=_hs?-i6YRkAgu)z?G3$@JwtbU?vwZ3M zSQ^ut=5(h$J-z3CTGXQ!AEliIOH!wLmm&eQtE8Tixqsce~yFZg|IA-t(q+z3qK(e5=GP*3Ngom%VSGcJ^ri_cyKx?&@Nv zJK+V#^1&JY@M}Aq+5*4rk$Bt@iR&tdm_>HCGfwJ-2at2AUby5!4w5DFWD_Npb!J}; z>qEjk<|jX78esF7m(!f%40QQQAUkrD0KL-nr038PeBgizeRE3Z_Rnqpk93M$=Jb(g z&LuZ(j(i+f8(;d-BTjLIdz~XaA9cwesPn9Y<<=n2u+(9m;mWoBBy#V%*scC{x|f9M zbtk$<@;>v+_f>gQ$g`JQu?2 zE5CUPa$Na%QF&T%?{mi!fA)?C{36+W7Q-*U^~FceVLML2!-nyQl<)if?t)u8qeyVU zPNBtnvi6Mra+Dx6-&ZzR`)3pL_!5$fFgH{_&0D_jl0TLRzyiu6Nctbsql*NroMvf2 z%kho<+X>YG5ii=mgFz$%gh1xQ3Y9Q9*E|1Mq=R5YFe}79oC!_@MAv`~Lfkp2 z!>sUHIsx>f4I)GJ*u@i+iBM6)o;W==d_M<>yG*pj%n7_qv6N&~o;#66NsPt3$psD2 z!H~eE9{#kVEr6(p@C2<^!yrY2FvWpEMS&9_ z#^DTO+PU9zKfy8xhv-PH`N(pENE#!H#0xSuc#V$G#&>kC6T%;1;Xax;AxjLhgC$z_g991Ut+MM@t&VJ4q!Ub19CPA;)yf zjTFTWyvBO`7^!p$sb5a&iG5vv-3?n z8khw6wFzZP)Y2l=L@Zkg(uEjOhPbDl@z9E?JaNRP3<-~sCE!aDp6EW%Qy5- zM@`fc!O;pSJ{565036O6!73XiQ6bP#?t{8F)Sl!sxz{tnR|T+DZL3Lyl^pF|TZlnS8Ry`D=tb!yD7FqVd0k}B2K&XLhxv{C^yzA$}KzjVW$E7p>vp@GU( z+JO;pM7e|oM1$Z%J-v;ec++!&O>|+`JzYoUx*LI!o(3h?b9DgSJW%7y*^ju`(y%!O z6dn-4?Ri#6i5bM>jC}ov$66!;Rh+k=y}|+5fIOt1p-vMl!E`+sudP=!1*vIN zr-1s;+>pamvDuMY#(7j)4S7_DPZUx-PP$BNy(*6eh6($hWp*@JUDa(Z| zvxI0Hy}?+;k-gKnp!><&v<=)Gb6gr*9^yzkz#W>fxK;@=++Ptwo{+@NT}p(YT%Uy5 z5oOO$wbmAV*hoSoinTrNTUNs`P!q$_Ck?Wzebms62zAO7lN4NzE7o_=tby1Fx(K3{ zJr1d5v*O_mlrkHY?AyE=UY=zX`s*WFP22-nT!$!H2UO5)$4k8gF?1I<-W7-j|bWyrWs7Q*J} zK+!8+Qr+df-RV%@YRXox5knfumau*+BLk5OL!{7M%NQQ#vk@^Alv&on<=} zGD92asuEvJB4<8g+?_aPJZfgt72e<@4~=$LNseZ4#!UXjWYkb+Y#HF<#b?Q5B+%g4 zm=osibKs1 zVT@vDcR5~&#l6MMjd}LnJh4|XPUZf)aubj3XB_-z(=twh79;=T80J0bkAdpmQZbo; zLc7-GmWJremgt{`YwMU4lHeV{p6QM_3%te_!ueXRw#Oyq<)ZG`s?J)Gh3$c%Cb0ci zw066uerhF7LBfvY$f;la1ZK#yU|1rcx;}}Km{t`yD|t}AB<`F$RiuS52%52oxRN@K zwjAxAM!7Op)Pb9*?i@;y6v(J6wbU=rG03G-GW8Uan+q&w=%>Kgg6Phs(xc}AC7!@g z?>ZhM6L7t*in;H0y#SYu;^Wn?PQFU&EL^tkax5IPsBh@5kgs}gE6!`TOUxz(ykJz7 zzjma0PU@=0tnXfp!bX*n1pe?B6H`t=QarZMiCIniklS8v-OCZ3Xd5Q2;;EZ zK922fo{{Y~^43XmJrYe8hL)oup2$#d`0Z8f+@6+n@mvjshT@U=p0N7v$o%GPE1e+p zcJHuKh^;EVu8KRwN%AcZoI?mOq1o-3i=F=k#@7z+IA4l6r-+OFzFIXB9CZiCc*Uv% zbNl{>8`nEKh?6>RWy6jbg}8_d-WK|bx$ZWMN9WD@8Hm3qW`uc}PG?k0fQ>r5>Y9BwQwSbzGL6xBMaU z(wknt^moF!EQQ!#{yaPWQWR&q+7~_eouigyBn~3)e;b0p@ z7Hf{q_UUy^Ax;Mhphr)#(2%Xg+0$x|Rp=yRWaD$fv8-c9>&490P{4$QaE3f8cDE@! zaWi*iC^v4kj*YN%Zm%OmQ#nREB#-5|pjWh^FEvOhNd&SzC)vbDL-n5Rd?M|1Uq zpaTFCFaxoTo3}-sXL-A3pfA%iNb~h}!bpTf!_7JR8cTXcpM=2zNrVu4seAN1M?YNH z$u+IBoEMe;Jd65NPxxuS-P&eS7^^w0nVM1%}`iWgjU`u+OwL|bGhk(+%+bIDRPbdeuDPM6ikJ39isZ$j(j!DBU} zNPrP}u;}d^=eM(%WVbPeE?RxJ_P4xun?iYu|Dk$+C)Gdt*D;0eH2b$VfIvbhRJ4Bv z4H2DRU;x zgCYJ4)?68J;=hU)55k0*GviBxLWefIiFE0cR=XT5jVhI6now4sPAxgmDp#yozox8u z6)M=WX3wHM8MJ8HwkO4g^6IwXR<3c${#zT*A=ZKzYVA7pwsu?Aq4h>r9jd~tr$4^?4 z3DP5kMm6R_jXor4mfJm86qBNc>X%TX#)PVx+{wA-s-?aPX-lx~wrELwYJ}@+y6Re> ztupV28CkDGMN3dpFvOM zYmmWK{i86$bsf|qLiQP?SfZ_o0gFMvfH0wGktsH=z+8Ep=!dPnq%Fv>5KJ;c4*vr& zLUj@RkH&~bOx~6YtsF`&8dQ5w(V?Vl(0(jhH7yo%V1hDbt=U9krP?0Evt0mIRq0pl z(mCO&w1S)Gj(Z`?Q9_Zfj z5-hNRVK6~n3tt$+12yV8o^XenLXxHZc#I9Gz}-Kvr$U2#$sI<)-VTw7rJy|rW=K?D z?yM5TA!2KW<};NLIAym1YGg*kSd3$=G9M-?@gF`+2)F*6M+u2Y3>99%+7w@xK0AUA zTbzL(0sS{WKi1Dx@G_tSEqA{_LQryr1SA+8RKP(RNmYNWARiy~M<{+Vk?(q!-rT0Y zMplkkq&nc)jCaYhjdFmJL?pacsWu#S(v*l(oF@BNKTLkImg)TQap%$2EdfmDEz#N0k@6;YFNQgHvfXjwA~NI`a0 zmuyvJTnRZOhZdHQdqQcxmgb3iP)3W2pgPDhiDYM65?}kYs>gW}kE+_N_`Q>{@kx_aISqdEH>q8If+VFlhj=xV?DG5i%cq9 zFBQ*wt&*i@ZuKDfbslTGNJX9gmO>TH*GoT(TK}pRoVy*DYx!g***3?u0hVnpOfV5+ zRTaP*ey4DRTfnp-7p@LH?q0cz5>#2zuM2&yThZI%fWEf6e!8x|_*&lYm{_9e67OHn z1yLS5_p6DGu_)6UV>unxSUz%zHO)0&3N_iA99Bp)z-ZcNveQEYnHG_=L&Wj~6~X;c zaA7igTahMJnpPd!mNPQW48OA}UpC{Wd|S^m`^Lk61u;eeO4c3M$)JBms-a4y;{mU@ z&$`6xk~KQGz2Y^}z%ulr2YYD#?`pKInwGSm^EX~J0}x+?7WC)*i>X$L;f*Rt-XWSN zl$WO39joqQtJ(RIf#j!)iK@y!oS_1v{6ij#xpFljQ{m)oA&o*1i?3g@1z{taAxM}5 z!FmQysHAqxFDYuCaDB}#MjMn0F(OXbK(nDS`_~3}Hp8r%-x=Wq3$6CVeBiA{YSVdJ zc0Ok)@}tJhs5R0;_HkM#N$?NrHJ5rGu(+G+(T)}z(5FmjC<}YYK#Ntt6@QY;7%s|* z6FF}c7kQ#FF2PQhmC%qJ^vF3$(M?0#(@^3wvS@k~BN9*BE(xcaa85DOsK_OyGhJvc zTd1G@BbkxG7y% zCygb>H<7hdot|qJ+uG$mmw;#2Tni8K1y`ByMS8GvcvoED6-a7E4nBf27pn<5jzPgU z-d~TK@#Hg!X~c)s(kLgd1TjiDKCUL!@psd|_;-0$zG3{m-K$6X-q5=N12-uCA82pu3(nsf$V8Nm&f zzIBB76x~@=)m+raefZn%bL@w~qN8lmB5Mn}1VklIiVoBQ^SOT8?gBw&0Ci0<-C}L?e1QU6pLtJ7eHcKfo zVn)yw{%K&#w1whIsopA%;(|p*f*pNp#^uuwiDr zVOu1lG762|=|)pkTb4DW^aM>~nhNQHiSwv%6bO{oH33VXBBGkjId0%Yt+Zg?W7m&!OtYk|X z#7lD7K#Y+P&}4ia2~UzyO(u$@h-`u~!~-nkm!x?9 z!aD?_>V1b$&SXt41ncNyQaoi&Mx|`YC20ue)G&-)eqvfG1XWRse*@lGil~NTO5y@F9vL-Q>o|?R7f}kRQVahlK&w3$5Y>p*RsvP$r zgb@`Tcid+AY!&uUU0HHOY#wLsFekO_<Y7Ta>_(R0>jZDgiq8U|;|M0VoYc4~xZwxUg;=V?agYp7=Y#HObNMVtP`Nr3)? zF$^ePE|6~uL7Tl{lUg>R~yndOUsKAwLW9a~r^flkpd003&%QGW&~aDpg( zphD5fXSZCZNwny2q5_v?r+u^~9bv&h%n?Gi<#<}lR#|99Sm=m|=#+h^f_5a5N?}uo zs6`Y+?a}AnFVzt1T9R-Y3^~aZ*2K!too!A?{RT)ggW>DzfIx^~u zP7_`}-A{1MvZc;zMJR$z%UUGrkm1*C@)nOgQ-|(Fibe}i(&tglNd9zwDyjzQMiA*R zPMf6GQFSt7Y_Vnc%uIiM*s;zp)dtzZzeeoR>(}5#Ga5wQ<>~UcWBK4| zy~69bWeRj^a?X^6s3gq%3+sP09?x>;5&Tk{M=6a51l zRL%0`n1oO)yo4;8!30g+S(f(OHSI{Nrk!t5ESZvCodKjnP^>(SELCVHLVAKUJjBhO z#9OWzR@i}DgbnPxPE}Ftc1j96`DjOQOQWFdD{PYBUoz9A4Th7jrFxWeMt#*tS5?TiR5R-lm+P0D`chZnrar#u)#7*T$ZAEuz~ z#ulq>9b{p=M=#AJd^N|P1}r!pr8;qw+Y)YJ{3n`tpFcjTctosFWbQYn2wOy~MK+J_ zB@;|UtVUWzJfIfo_RfxcZbN*oiUp9(!IL~Jr2AyY)sEjIWXa{qE-GlQ%VI6L?kB!R z2G4e%@ET@GFsT8&2c{6h!af4|L>bl~K~t8GF(hi!as;;!2JY_bLd0&?{4R&_?lJCE zxYm(CdPzfW>qkiI71pN1j>ujf)!Dv?GfbFub}6I[qtNc0xU^iD)NH5q74Eqo}e z(e~v}bdzxQuR=s)RRo5gE*SdolKM(;2am+khRNx^gu@C22;Y$i!&L9uRPS0H>PnL# z8jU*$E4I0=%33FAN=WJS4(;ZR?KXuT3Z~uy=k5|O`3x;t0Pk;VWBPsseS(DcCWHyg z#Qiz|ugU>IjL4_JY|IucSMV=?VZ?2EudGhldu&1w@2wJ_$Pr606T8z2zb_oOFZ+7L z{8Hibo~u>K#l)~{XfD{l@)nnp1Rqb;6g`C%W3lh98NxoO9Cg-=ZnH1;jO zHEsrHm4p%U%uaBcO@{pt!apqPg#JXNzT*Ctc__4sM~YS|db%+AoYlOhY$26SD4QH3 z*{<$!*$ji4(SD>-`CM)_amp&hvmWn50Ifz?u=_}g)aE6j=p_^QYEw)LAWDYqn#gnt0vnW+geIOVhc7S%`Q;$ zueL%##Nti;u`esDB-?Y0sHP<=CYJxDRE1zm? zEsk{}DE=tbqx}`PG$;lCF?V3JI;C?ey68rusFFSeKW{{P(sDAZM0S>d@7}KotSIv4 z?!UT$C+E)j5(GF`>{g}I8^-D|&;E0&q9>|m?HInZNW}9%RM>?@wEjLc-B}}wbTt=8 zizoav_ddcd2z7)-bom5^FB>gSBXn3(vP=VVG<~E)gYM(%BUf9PS$pt`L{G%9XDcLS zGy5$T#e`0y$zchH(}ybmCbO)8TYNHeT~94ljgU z3(c{HMJUw6jGna|sB69o^loV-w%8|3c>*T5c2c0Gw{&)vDRxt@XJ|XNY_#)|3h+e0 z^IAIqoaJmi+x2h$FI<1)oW*uQWG8JqidFMhV8o_aXsut$7Dh}mMK?q=O7UFI7Gh&d zhUBj%Zxv||rU*~YD6b_^{+7?~ZJJQ}q*x})+E^xk&tyxg$xD7pgx)ukC@|=Kk?rQr zKRm-kcmd5wCClc8S`MY8vMPyWBqTdTfdi+8F9di?3>*<|d@1lyV2>qWN>x|_R?KQb zSW{I=$}V8WZXfJ#A7+S$LWR#HhTk_CJ9UY4I8U#}az|lS7X%e2s=NUmJ-bGFPv%(5 zY`o1|f4q2%CyZC5+d;5f6+vQ7*5Ov*f(eK@AO7uy&D+r>^j#mW`xuds3lW{!TdmgN zhsTzbN9j`e8xpLDUAWGTiVQ+{wJg=Q6v>n!hbzcjzM_hZhXDdOg z8NCW_xmv{++l1KBF};RQoU1oOl%&^?-O#|@CcpK!n=37A4>Pk!p|jB;7({7^iy4X* zdcv^4Gt%4~JT4;<)fmJXe_H@1#5CGhu8Wp^HDEhl{OiP_WkFWZu&jYBJgr7Ft;3YA zx8fnT`hG>(a!A!LQame@r-1X)IqjFHL}RNx1&_m&u}k#67tz36)&irvz7?a&W2Uq} zp_A(|S-k!v(}2J@KIFCoY`1&F(}SP*dG(~!Jny-l@NI7yVWMCv#CzEzOTB5F&Z)b9 zayIQ{^)2Fv;tu&SrUt)tWTvUqpNRSmBKyJT-vhpKD}CTk1wJQXJQIH6EB*&2qt7qC z^Ooy%&)`l_gheR%<70m2BS+&yyXHea&?6!HIKJnTe(9V3>HkLXK{M*Je(Ssb>%)HR z%l_=se(m!+mfLld1V3NspkQSGP<($*9Df*gzezy95IkdE_CEC67?E!k$yTHY6xgDnXDRvw9`;6z5q7R*~v_+m@%zwP<

0Vzzg3RTl^0Ro5g^s7KTdG@nq9w zS+~wvIW=n1N9(S3eS70(+`D=A_We8KZMnHEB6$Q?>s_70tNO*Myl3anp+5tE{)v?1 z&+B3ZHr-|7Q8Xc2>Qy(sHgR>q>r=P?M~E*& z0l_khoI`CP<2=!THkPnc$hp@hl#n}w9Mqt~=4Pu6L)&2cYsC5zOld(76$B8t+gNN7 z#u#Os(J|o)nk%g0j>Bs#v7n3VM!H^n4!N8*q>;E2mCP|IkD@V7Jnqh0OR*)_yHFrI z9(;%({UQ{Ixf%y*C6q0@b1FXetb7QGL(u!kOYK-3Ouk3VB+)22b;EN=p&UE1PY(-Y zP%P5&v<4LNg2$$sVbSl+sEqmDI*GH3MzOs9yT9r7%x}bRtmxjkFU&B-IM( zphLHq1SDMCu}Cg4VEG6b5c2fM7$}2#sHrN)G>DB`Lpg9oEat%EBTtkuz#=<}JTsaA zVf_eMFmJRKTV1uaB$R5i+$9!+yqhZ`K!p&HKxYx;>?3DXKuFnV2zxcwStY8~*jyJ{ z^&^u&5*Of543Y^UFRsnS9f7h6^E@6mR2U?@lx4QeXHk6XO@nbPSkr&-{Ych-w}r(d ze`E7Aqx0@uS-~TcC>ta<;m(=Z?*|e^82>X2dB{SfE@qF!dsS1S zx1vmlAo>t($aCcq;=Eg0$qZQFkHr0F>Wm}5F`8pr7iR!tSN7@T;dwksRsT-9^-oo_R=$w!zd7K!1I_x_-8wz zoljuGqEn$XbexyP>?IwXU_q#dKEgOCf@}Gi28H**5s+X&bRkzHSf*5&?}j{qn+>U?9wOcDOkSEI6VYQP=t!$dT{6_3YB&-*Fr;FG zW03ejVv_RxFN)f7hydZZ#EMi7B~)Q!(^3VIrZ{9;6ER;y_~H@O+3zNXVu%<3naH7_ z0&vaZ(DlgF$RrX`db}%PAc0iI96H4ri)oV+DY-K?pu$Y3Ggh^n6FoVGB9#B|0-20K zD@wSdI;iLy{W!HjJBXwyo@f|oI%7asE@qbA(^fR3m6fKX1Af~}Pefdoz+C7`2%#C~ zd%Q=e1jcfd4=QEXgmB6eZfH+hlTdz;xrk6${*ID-@m&Kya?MZv?3SN7C0|M?PQQri zAKw(Eo3^wnWSKKnk0D_;P1r{<`N=`=SO^x_fV0_!a$U51;c<|rt7keyGAS{rt`IsB zcFNM7@Pta;hImX_Y7|WQ6v#e>m=l3!lb{euPmN=#+a?Ks2Gm4Mi?oQuNsuAEY-KpxSbyh$mq2ojJRGe%Okbh-2Xm=vl=^!(=#k62Hx;vAD=2=Whc5~51bL5M5W z(iVigb}j^o1~1_k&4?w$l|p#SA;mJ!qZ|gb{}3&iNV_~#x$U|bxz9*S5}(7M1Y!=f zuJ`aZDV}AQB9na)K$rVeWsWwz*;QzW=BpcpoJSghBvWI5yTKAlx4h;}oKfIw-BfnB zrr#BCg!(zjA!c3We9LfhaBEgx2t`eQXDfFp8|90P9v@&Ug6?O zvjmADpmHTI2_lCrfp3y4qLVs}g5L`rN+!DfWEeq=*E_wW!W!m^fA2e2qsSN)!U8Ua zISJDJ8im6U0pn-5r>37EI4S zGu6uRQLc3N1JCfng`xh`&CK2@$@8jOH=^>iG-(?o&DJP8^c{>}#9|X?nc&5ST{N84 zwI`&u;=E58wNFboSU#oN!67B{gv&VzhRF6*MPZ3kMb$PHyYSR_`F8fKh-a!;DD-=n8=PD>T$2p}yx{q5pVAwA-UwH=wDN4vA8sS zs;7+&x*|VX{tKcH5?@%;vx`s6d)HmkZ?E6o=3LFWjtD*ZGtn_VZR2JxOdv}1YN-T; z2Du5aYIbAC{-=ztmRfSl7io#7%LJ=YsEpaL>+7~B{5DSU>cspAgS`grAs)uf=BdF3 z<1N_F{p4;-hD7Fy1n&wj;dG6@l4JlKVhd19i}Eh{3@o7l1olWT@n-IF-U9+1qVZ1U zhtf~z*024{ZYL@)B|fmGybZnH4c(#w@q~!`TH^nt35$-80nd&zJR$z7<(D9hl~hY2 zUa#NwWIRyNJ=nwWsDkrG4Fm1Z`+`o`Bm($+@FF4$At%L0V4uC9;3;?sUY z{E83_?=MZ-OBQR95S2~j>SOVKY$85P*hrBD!w_{m55{hB6lYPEdU2)DOH@cPyc)1n zrm5%_F+QmA6uD#q3sH)&QTJ{TBUF(U_3Ic5=pv-09zFp=z$b$EYv0I16bCT52JXr5 z5kNR^yOON#NRjKD3|?Z9A+{{yP6gP=VR-FiTvK#TrX~v@l&(PAvY$ zQTsM z6Y!!bsIDJtX42kCUKU~tEl;$<@h;wrPU9gR=pU{DF&(JqcfETIq+VJSF82L3C5(-IgB zD*bQ^m0}<>(;enTH>(6Br3pF{VmK|)f&5Yk46`ZSiYSG^Hy={sesetAayoyCFw4nU zwyrLCGd7P>BR`2PMlcNj$auJ>v1~$KEMhoM^7?uyO4Ji6kE2?U05DzB5WA2nqy;gO zC^tMVILzqKPCPC&yA^ zM$w4bMyct@t$Q{U=;#s+2M|MLks*eG5uSp0OhOq7QN1#>Az0KTz|(#fA~2nEB0Gjd z^=$zsbD?fiGX_J4nr4Pd^hBErB@I#(ZPC*{bRnE{H5;lm!I4Zb{sttft9zQJMU}@) zzjR3PQ7!m1UK&D$LN6YX5FV4$I6K1S7_+ASH2Vz5ORNgwvXfIgRoWyXP02^jnlVGC z&(%IpMIXl!vh?PFr*`}lKJ$oB3FuDT2N^c32vo*jw4g))iT)Sag<@0x@57^^{YfG(i}oZ|EuKwZa~~fbA)q1s0P@q z@>{)r40k*Zqf2$Gd7e!g>d+F5d@-Vf#Qs^ zN?13eXvx(8#%x^Xqw0@Q)0(WHP^)buj9hUG?I7K2uMf6%%c4zko>ydVE_czk6 zbx+Sx`9gPhW4&S*cZZjFwSrWNmqvaUd6$+*d0j&wg%^9%_jdh5ePKkX@Uea4chk^Ue(QHBMAYf**M7?vM(|hO z^5RW+gnwD%d_zWm54c6x7lB(tFAR8rA9#Qt_<`BhXv4| zh>JL8kYrJs%0i157=ibA5x9wQBZ)f?J;pXtoL7NcLkwtU6ENzDi5GNwV}vOsi(@2; zV|a|8cZ)%yi!InXo;Zwo0(7PrBhDCi?f$qm=(snckBEB$kBMXPWOhxK0(-1jRp?hR z^f)T?BIUk#c;k3C(in+HWJdn@jR_}_?Q6#bSz8H*l4X~X|CdJS7?PJW;}m&_4cSsG z*(*?4im9oO0XUZR7#h8Tbt@%;T{$|)i*7_imuI(>GbMzP_m?GDL^5M_5*dUqBbjAa zI(pfSX*ZaOM3s#gdlh1uWu%zHP%CbEH{y*-AkBd}88R@Lr3SfD%9xv~`O^S-Wd%i@ zg(RIU1sdy_Oi2@kOmb6FgtF@Ho*$|#6p1I!`IYAxDzX_P5E^&4Iei(rMie@M9ht$( z!kcjeoC8Rlhq-2#Vm5G*oXNPE{`asa2zpc0R-WS-o`=_-1A_}o8YExZAeB@mL?x#8 zxT9;A90OXSsW~}fd3GK8dVw07ecCq|dYk2{>=H#ql%gWeC`v%sR#IkdWa(Po6}uip zZsbgENN0d*Ckw~pTK^$iKP{^>0(QuWG?)56lj3MvM{1VkasI)*XeWQu6R!CdZxSb} zt(qZn2XX>~)l9->#42H|Ep|F}lV!$OT8B{~b+fj5ZF(j!x9D{;2b(gY;b*Tu45O#=)k__)-A9QIaaMI$A< z7dv}$0T7k6+S;VFXe#^uomvMuY@@9|=O$j386}%`#_63pORrJp9~cKB+S(l;QH?l4 z{X(pz_{QHDBCNBeN_*!Km}^3)n;AK0bS_(RxSOh%8@hSK3m77WVV8EsF1ytxK`4eS zznd9%?53Yh@dBB_9EB{J8v1N+7vP{J_Ndif28JYvzbxG4comScFjWBui!wZtHr!nq z4zXneQqq(iZ?#UVgHF*1vyiPJv}ceQ!gn)&WtcCIyA~+l} zM_0=UB)De>G2s5U`!c-9B@oLWCxTdY&D~XCQt6ZC95GiTRMSYh<;>1+HIF=8!i4sJ zYFs^7yk;L`9kWP|7NU&6&d+&t4-ttzx+IfXI@R`EV0;V6ug%ZKd_;Y&WANhCS5yl1 z%f$g))rpiM{s@f@+`&f-naRn?N<7=wsrvon8p}X z08c=$zwclwtK9w{j=kaH^wwG!|0<*I%CYnX+9y4O-s+_S>)8!nu&_PhEAU0Coh6su zqw4QPFCI=belGAm<*n#kqOO zKugyx_Oa~hdk9lgv%RD@s-AM**|$C4?+UG!ik|cerIz^XX|R@*TH1&TL5zx$04(mO z<;R5mCFe|56Q%4inIrx$C5x;a0n){K$un|P+sI6Wq+KPT>oYded*SqJC-sZ?fI_RpFm&x|Y6%6V+ZRVtbsTIlN zqEazJ9{#alZ5N$z-_%6INW#DFA|e{!zj-9fpdae07QiNRG!t5xHpw$GO`M#HcV8bo z!Hgn=Ow@yLgWzT9i7f;*e>U#EwtTh1q^XP`cSuh2=LAD{XYi-01R%tqGA86nD>YeCyYvZgA#S&!v z{*S3dHj^k8rbtw(L(FbNtuzbMCaRwhLA$NHu&pO$ChQ_^tJtLj$5Fd}jK)z&U(zYl z&J7(}?qSwhfd|i;G~&^JuT41RYSc`4yUVv+U!6_puU zXd`io8P}IiCc%l+UIO~1VPK&QCggWzhE^MDWParzlVj~?8GAWxwjo`B?pLH}Maf9t zM3W-t#UyWuRu4{jCH5qFT|Jg0Uy#};r-pUXxGHi}$r!4ucnY!UYM+)@Dv$+Yci4Kf zt@fQ#4zh?4SgTYptOvSObB{^@0bLLB(31FbT+ z*KQBGxod=#jfLn;7$*6sejPf+rm7-_Sz@A;HF;=!tu!QSL{#QvEwC>UG7JEZwCFIX zUFOMawF^_bs+;lhRw2EuIBT1>@Fhzszrnf7u9h52sjX)NgN2p9(02Yg)xb`rSyqVq zx!KpDbIQirbQW{Ar*q&IZFEB&5#4mD?;?7lM;2n4iwPSAEud5%T^-<@(xTQi*2fjK z(-w=g)neHZk{RU8!l7z#h$*WTbXIpKM|XZ^0|^z{YU?VdzBg`U?s%2`<8|4LMI?|X zB|v&CvQzSm6|;B8Oy}P7P0KiZ+`gSRd;sQ2VBzJ;JKoQ`V!1X)5WcHhmMB_S@0EW} zUY+HYZyeIUYSs>;=4tvGtL2*YtrH=TKhonaOzQQ{mHz$D)X7`s5HI+gieDqTLfEdE%_k-IYly#7o+6 zK=!Jl$SqQgVH4PRrX+%h4^#S+&`l~*K*5y>Uh!&CdQdU9y0nC2{F}0cP)*=O;4!BB)M?MMBMO} znplOL+_VWL+<{CaZ1Xy{bR|}li5sc3#1rrEjT@pV9*ksX4sHR=F(0B!T846sPg!V1 z8tTh=;&Lt9blKY~M@6!%&Y%&|W;}EAOZTyFKj>8FKiJ8!mi)t&xs>IZw3SkauvDRK zfvH0pnnN>L>|Nl*D5au^8*&{EkH>_iOnn(mk5LmYW^~$De(BU|TIii?L8vvA!l6PX z?1B#QR!x=_&1YklR6x~el%k$_JXu7Vy^o9D%GNV~I6pN-kaz6) zU1S919fwlI4)>``?lvnHIK7Z@j)_QZJLMh08RSlDMV3Rh8Jb}*!cAh)j3wZLPu+&f zAvM{pLp-tEe~`o^I&lVNcIz5TwBAC0$`r4zr1QhW@x43T5m`h}No0=<+Bc zj8|u3P?$%Q4{&mpCj|3wzz`uG!}6v20u;s{R3^j}-T~ zg>)M$Tf5P(!e=zqvY=Id#NQ6*M8L^gY5PdDio0g|G!qwFMU{b?Bh` zY+2FZ*-$+hnfl6H5jqeQoGBV;Ta*EUCscEb5}^Zy+p-CEFhVoFQ(k=VVXUyu)4(VYF-TENCS{R7%Qrv`QnwhB_~M z*B)%MQAv!rm8P}UtIiEqac4k`uaq7R z_oRfwF9jNus~x!^uct(1-@AAHdhb6vZh$7)8{wbj$i5<5V<9%DR4#^C@oE!b< zNKd-bm(KLhUc`}2kGj;SJ|@npFoRUjy4I;KtF0rw>s}AL*d1$isu%s}1s}WGHM;h; zw>jx)ce~u@PItNsm@#RMDHh+>6H>)=zKx6XM78hG#wC9q#ta!{^JR zl0DLGuY20R5BJy7z3_)m{NgK}_iQtMmu{OC`=`q$6?_PhW6@Q=Uz=THCo+yDNuFQd}+kN>0dU+>6QcmJn% zzf?&5r#S;CfLqmnIgxzy{a{gD6Od zjQEJ=cY|T~gXA-Jl(>GTlx;*;Kfc$6IR|XzmWCO#b%JO!c~^>`<%P%RKkcWAa_5S@ zCxxOHGkqw80Vj3>6E*%peb2`esda?VGCFa^c%;>dQ+FtnwuziLXnOdGikEq*M-dDb zd{l>uuo!iyI7z_RbPptd*SL1yXnLSXhs7w1#dk*Am~*+fXEGFx(V~WD@{5l6KEfD8 zVVC}i=6H;45q=U8gur8*4KReMiKwEMq&U94gn0iHY15q8y-_94gn>-u_P z>C#M@G=gh6TU+sT1{QL-Hz>8zZw`TI&U8RM*%rB=0TA+A5qUC~F@i<8k`D2eVg7k% zixhg1>4#l-d2CWDRxueu09zLH5Q>l!#^H-%Wo{H9 zk;ye9FBF*drHvWFV}F%267eFR^kmk8cT@3_J^=?g0d>#Pn)31{nF(p(RU6Q?WuyX# zDltf*VMb|SS)no{z}B5pQ4?knp6A(~C4*hGnM%9BpYTyqyj7L^RRw?`0l7pd)Pr;$Ub)q2p5IG7yi8MkY#GYdEpe?x>{xacQgVAcr z7%;3=Bf5nbt?4o6#StP(8*YM`9XdHDHdb5;q@$UkE_0el8XB^dk2k3kd9|M`dRkQ4 zOjD{bfN@?B0$bP7YLPZ82Pq_j6e~%PcTn7fmY)gT$J%kK~-#X0~g~ua-N|6Qi7Kyb+VSWI&?9Z zFJE=9yOyu}+JFj#kX2(c`*ExmVImVja2W9u#o9mb(iuAuUhP^=QY2LnVHLwLORv^& z2>KMwiWSi6ndJ(36M?R^=@9W+rZR`HYoV+k$yKScGpPx%aD_ae1yJQNvN3Cd2y!Q6 z1+3;uZPT);pSo)g>#y8FLJs7iq_ULw%Cr!{s{!JzEoMM(=cuJ5RqmLr>herS5eo6J zdOT)_uZLN9*s1V{U;!&-*6J^fgGt!2jM!t4V;V0|2SvZ7T|KoeESIYqXB3h~u)wN@ zEwi1YX&H`#3eB~(l7bP^ph#hAf~ERN{aP&+_8)_bC2jr~KDhNJzk@V#p`DUrinWus zOJWkCn>z0?R%Df@nA?rRK_iU|b0BgOvU?b_QeceKIkgK`-2+YF4k1DvM%eg@!BW)77e3`wBA+Zlpr!6tP2Zo1BIzmuqGpraCxofb;VinS0 zzEL9(EmFJ`{{S0s z__PITX6lQR$Oc7**twC(A=$|+n`xq)Bpc`h!u|xwEC8ya34?4b{JT5XWgNp60NPwE zq9hY+yW1Nq%UK{fvLny)wB5(OmB=T3+GgEJJA_-k8HY5E78_5)9V3`oO2ky)`<~=> z7XZp+$jBc0s&N*F!9m2v(czEv!^JuxJw8Gzx7k~=n?`u@#}&c9bR%bGl#t(<#=Ydi z<2c0rc)$ed!nRhq5P`(x37^dSu{v?ZlDoEAhCw8<6~&Sfg#3^}c)_W&McU)HqD8`i z+(GeDxZ5GDSvHL=?6@RDoSyJ08Ojqi?1os3!+U~7lBkC^_QRg@o{cgrnj?rt+#HMh z9;3L#GM7G8Qb|yZfo0Z_bMu$w+)Tub{vYGvFc2d#eHzB4i?+E@I??Mw?J`H!JDGo$ zE1;!cfO0dWj4CaYE{wUV&32**iaUU;EE0jt%1pp>(J&7aF_keGc+AK@H9nLKKM0Cr zkD@Y7p}4|DIj78yEA7dmOt5MbKL<_88{Bmy`fS$f!CUb-k;7&L+`)g`%`w+=`{u|` z;matDvzNs;S4T>Nqsc1`IQE)xNL+R8jIF@C)E(0y(_EiHW6jMmHd(`)9>&e!A}!e* zscK}6(fh=~JkDl3rMyu?yVFb@a?;K7Jki4&XD7zJOUB{y)W-s|n5?!fWGGT?LCw23 zciq5sEX)wJcmuOZ#%p6GY3gChO*PE@ z9+IIgk;FpS%GQEC-j%I=1bP~Gq(+XcC;*ccu=PjBD@cR{KT+b>q77;$Y`_-=Km+a1 zYrM4^6s-5$6uR9Qf;gmmxITV`#i$)2m;Fo|)VA=2;N_y=fU(+tYuXN7(sg>(BpuQe z;YgZ<&dJ!ysHftjTATi*!Yu#PH=i14>}0{b-4y6y8j2GeYw-_>X4o1k-f-&`B^A01 zO;)3A5nFI_{}4?jxX$?v(figRB|KRHa@$v77YGFxeWyr(MQBR})$&A77I9DCtvD)m zQ(b#8?yO4o@r7o!wBOpw)m$y10#w#27B6Q*|{< z;yi=xc&$#0&{3s$+1pmKjI~B4QUAbGErD0mvR6&3$%s;V;#3jr8cbN(Pv${Y)P|C3 z)#SQvQ9~h2*YQq|&P|kY!@Xr_yt^-`e}<2n-h%@CZlS3drk>DTw$I&;C5$Cn8e>Z2UZ%XfN_1lD9)l&N85UYC zq4^Nn_2&cb&^tzMiy337_(0_x@D=tI={a4?Md9x`>F_n8xa|-tud?n)=5QnGk2=zK z8S`iqa?UYb1%0!E8T7<~WSV_o=_+LNsbKf@Ur+in!ql2HzoUVysLZ}v%EeqbVJ&>? z;pJ&4Uk`E{OrZeEKo1R{BzN{{g{IVuJ(Iy64I(H6CZA^x?{hTLFwgLek&rnaW*XYr;)D}@(?eT*5+u>NoYP93XloS zL_NZ4ET<9ibER8s&~a=_{<-Yd`Z#Cr+EQ%?SD328`Tr1Wj`;GlkB7RSWm?9^C(8Ni z=B!^qYpO=!BLeiVo*8GEmGbrwvSxB|=G-y6Oc{4OdLNW~#vW5c^;n%r!q04NG^Lv@ zi##D}4^e8pVU_?93YR+}|NaRbfhSfPd)FlfxnqEMkWy)$W0A(BV`(k(nFWTr?@$_N(3s1T!0hnQ;GWcN@0 zBgddTeIjK#wIkAxA!`;bxs<6wq*i|-wDZqcL4+u4u59@dAx}>lfEv_V^^wJ;2({+? zJGbXqh7bQq1n{V?*q}L+l64GO>0`-^EnmjGG;e0kojrdBeR*?e(xpv*=1KMR>eZuJ zzZRR?f$7n%VVAajJM?7Ty?y`2%p3S{;>C?07k(VHY~{^C=XM@_DUyoOq+e&q#vROm zSZEr<{u(-V?cBYG0{_{|c7t|Ya+kVscKD3)={LN4U;ppq`~Ck1uraLkE6 z=X24w5^DtQLy~ZOZK$s%;t``8o%1mwAVDiK7k4zv@V+6D%P&Y2VU)7U8mWw~NQvOH zvP&<&1T#!A$0V~%GtWdbO*PkKvrRYOgfmV#=cKbvJMY9ZPd)AY@S;8cj8L)x$pW-c zLk~Uk!x<6vvQN@90@2SZpLCJZ&?=IYF-$+hVh*SN*`yxEkT?XD!zKc%(@#U?(jZbH z+Oo7)jcoNFI-Ckc$m5S6@S$HCD^SKxMJefL%7WVvjuy ziEEhz@hfa0?N-`5wKW!5Wrf9vT6CX{7F&#(J+e^{M`RR7M?(Ymss2oZw3NkuKil-O zfH~tSl%-x0vZa5X%4Ms63a)A4_YwxNVSHPn&|+6*tjW6N_5u-MS3#ywWcB1A%3X#a zeo9==SgM%DclUC+GnSt+`5!M(_O`U0Q|30@Z(Hd$B9-O*x##IfR{CM4Ysz_LnvaG# zW0|XT(BpdbbZ=iC|3wk(&IZ;rM1mKoM}>k=`bX=3DjKFFFZMzZ3AEJ~!Y#Mq20>@K zFLkN!xzS_Dya%r=M+)q1DU{_R<9`uyYBIgcp$PDO8A zg~>yyyuGG_Cw=hUrObNkJ-hBw>syR2mEEgeXy|vD0g}dlOMw>fNV7k@w4!FvQifvkCqUCJEq17pAZLVkwWVy(Mno&x zMIdD%5B{!bT1y~^j4>?BJrE*Z!%P9|hl&WgjDhjFV2!%xy*z=>O5{rr5Cx{d4ieEa z`B@)Z(y|tX5aNhvsh|wsM!nBSu{!aw5VWF3!R=v0iWscf7e_UkOFwK`*|sGg9P98VPB=-CeOuJLI8q zG?GS|SSJn9k`%Ct!lm9>NGoE%7%)V4IwN*w3zK-tKuW^~RMx~2%NS*5K8dj%eP)p} z8wQeE8H!rQhmushq$fluA5gv}mO9&IFB#&6R^~zjWMgJcoQb|CVx?fwV2cy6sgNaF z=9&y~q#L_vnQ$`FX~1(3y*%?xZ|)_4HoIlP>bSJjVWgb@kf9ywa=_S-5i{(x;2h!E z#zeBvXc7bzvO(JC$QK8O%#&a+89OD@ax6fPNQ;hb~Xe5oJkz8QR6Y>xV z!iYDq269MdQ-MRsSm;9vcI%x44B=;BIxqeX4$)8UQE4m2$(T!mNLnN{DN3PcfStM& zBSoc<4MpO+_Dz*S7{!lc93&SZ$P*}A9Tr$era-Y;j;s@_h$oix4>mZ3q8?%?QRB)i zi`J!>p@`Sa>N(bZl@(gn;U_)gSk{29Ca^?pV;bW48ifi;s6gcoA0b-A>QR$%b=AOK z^C}j?{^PGs6PG-f(%B$EQl!NhAqY@sjKomo36x+DTPNC6*MMtBfxIA1Ka)Tpk!r6k zOkQ``a7+x<1V~;W+E6)5#ez`?bvY6Ume*2xND1(XYlBvU;7bgP#Uq z{4%7hvr-bYRCD86-PtmRHjRmib`ygj*N`&KGfeC-=vz_{$DrNvWpk)cfpU7ohSc!> zK-?`qk-3Z^J+R9l#b}*v{+EYlB`!$2yHKb+5GC#b+1Sr)3iWJ?m*(p};qh<5=qy21a&g|Qu24~G-0qWUxd&Z-LOQFz6 zgYa8dxZ)GEvi@|Z91b@yJ&={GI+=}6R1Z{T3%~ZMHyd%IV(Z~eX3?*K-5X*1n7Qa? zcU1E?WC)Gidd`+wgL^HOXnti~opDXd;mHv~C=xtPA9_pMJ)4@Jd(7%4x46xW>VVx- z-hB~50rQQXdx!M?qh=)WsT)~xH>aI3|0X%iO$JL&6=a1qz;CnnR~GeT(dWb6k&2fC}x zRc>el^?t)1=T7i8r|9$h9>$QO*)!B{{ur;1eQdWl(-zL3_j4ER27y|r1NQ_b9!gR7 zz`p$AKN3P zJ5s8LPdNS-#X>2dQ@r{xw*-W|3JO6tG8z0rvRaXiRxja+POjPp|JdELT*8?;5#RR61@||9?OFb z!qYG}8@KuBBck~u*qaCw7K5n2zJ7PLx>0% z;yD_5K;8O2i0CapbeSncAlQNg$751B~&LSOg?m^o$Q#iZ|LXX`&HDQ6Y-4nv02< z8UB)~&;UjXL6Bs8iX6;2QmeIN6s+3m#auBkE4)OTE1J5&wN)Ie#i=oGtiB-(KjK)a zRs6!1nm=rlJoJdVpc6MX>lTw?#+n$X2&={c!1lPdGY_ltP^3H#qDk zWUI&T>PEB4#%H7|3q&APU_aJ4N4`kMT3biPfl1_{E25MXqcl1$iOPHQyP5^|zB#FcbEisA) z8bLiwH<=hOR$B_m3`~P~2wEYV&)kx)i_6k9&C}#KenibM>C4r0&DVs@*o>28j6K;L z9}vA=#Q2&IC^vTfR zxX;ns(9=kc31!gr%+L>|&<^bn6txl(1svj}6W{X2&QO%5gfr6k2v{(PoLm{Etd&{( zky>%fY)MJ}ygv;M(HwaS8}*F=g;0Y$QVv~E$p{!hxlk+JjRVC}(6Cah=+Z2GPz0^e z6phd@wa@Q?`f_|GA42S{km(iOC2I7;H4J7>UkAPzU}U3onIJ*yvJOHPu!9 zQU(QzaI~*iRaRon)iNDXTE)|B5xw59!qd>xG}%@++6ChB3?)=ef0QmEz%7+|LLQ8t zwMthmlS3W^&-xpsA^BEorO)Ib*E+P&`lPGHkyOf<)Ps;WRXv~v<&9CjQd6BfJOzqY zohvqF*fo{Y3$<3P@U#|uzwtzhznIi^91%C=SdR5qWBpPyjaDtSQfF0EUL977?bn4p z*lU%QY}Ji#&C@qr6P&#vxg5XFKr^%u7x0r7^~+d>6PN1q&Ym4TG{irKT~^2XS(hCo zfSoL#Nv5!1ilTESgP5mUbxEgk#a&V*$^?K)@-a+m4F1W~+V0rNkyx^#`3H)MQ2k?! zzpRO}^`)}~CbeCrkXV=i)d@{f1_Q_mj#(7&A(YQ*w5;t|VxpyzK#Gcx2J>KpWw@H6 zv&(>rriHnPl$$eg(OkpyAIFe-Gr|%f(5AbXC4&$ptk@8P z@Li6P7;@u??InqY4Lh|+-w?gnIeQ6kF$j(r{*a2m2;aR8sA?H^5rTH~3Hsc{Zh??Q z?U)8CsjpC~f8Z(-ZkxxQNBAJ#xizp8dEG*4$oM$nh)^n)5=fWSnw63Z@fG3O=$-{; zA1zBWtE#7_nvsIQ*|cprI7(q}yds6jI4GVxBirE_&8j->;>O5EO^uQo7D*8C7^Fhs zl;RE+PD5#Ai1DqW5St=624XIui!Bb302W&;-r)a}<3l>3*Ndr=@yV%B1mGmO8*VW? zR$e%kzS@Bz0gf2LAPbKji}qESV=W}l(H3E+P=UaUEK&cI2af< zm|fgD3MpW!+lWKnV*#;bO5$~a69JdN)H#Tw^k#&g77?XMcO6lDheE{e|YETsx@5I-w^5Nhf!#D z`y+=IRx#xY)eU2)HC1z#=B}dV-??UX&Sr?%W+aGby!hsWsOM*vmi(lP;KG98Dy$Z4 zY1y(6h`DG~$P_D_Xz$|2>^ZO9GQ??49oy=gcYPTU(yj`UW=GsBp6(lrHb0HqB2e|5 zgs5rBO)pw~O7|s{y zvcT63os6tmUFY&?T$T@0#aG{`(hk;2drJcuwx?#kQJBUSrBJdaA{;P#59YY+5QPk| zZafvuP;>5VPDPOSdF+?qY)j>hzt-xz#tLDBl*NF$#bXLIb3quRV5z{EQ1Mgj@sqc1 z?4Vnr{Ae%67MU{}?y*`SB(2kphVJ`Z(T^^<(vIlUwu{s@fYnAAG3E+>VlQZ>*`<&M z>3;3j_3Kb2ZiBKysBS>GVp+ukbL4al(J%$Z#Nt2=8i&N6S&na?_$N2lJ)NN zjm*vYlz3rlmQup_GyX34Xz=b9Z4O%q7j%ZQsI+m0qq}yj z4HirY;N4)8uS3{)aY+M~nQOy}WO)kB495k8?F+>tdh?Sp7et%=;x1O$ zVfAeC9Ai{N@`O-w!)5Xwe=#%zgcNY3~@s+e%@z}aslJf`@NqM){ftzQ}+SYG9gspuQG(3nieqEts|S*vuLqi`3u z^9oW3N>?Bb{ts<`wLe}R@i0|oZR57w1GlU=?D|Y>-N+Z_#Wp9}m+8K7CywFjY}_+W z#6qjpy7}-r>CJRp2fBF|vHaS#j-R7WUt3fPTw#%NvT$|-|5R0Vj4E|B1bI2&)`^@i zU28z-%n<>ZZRE5(2qYB>mby3d=*=V}Nc)D2^0v6wO-$?cuw~S0V(bpb} zlOMSLaIZ{LbO2hb)m#BROuOlk%?vWG^Mrp7-eY(cd>e*dd$30L2h}Iq^Dr?pfx_PU zWMg_NQ$m-f#0RbT7)2JuDZ`4)YQmuG7r|yI2izJ_Wac^=uGjJ#RJi`TTyAJ!+ zYrVGTve0MyM#sM(6R3)|?Qn}UlGiD$n+;Z9eMeuvTG>?Av&WdlSa|w_1VX#fnnlW~{FFqEel@C+^6)QS}w-yVc*? zGBN(vikTtB$HH?mRqmMQ*4UrP&VJs|VeQ&3>wTJ-#*;i$k*&slTU|D1z5W~jIa6_P zi#!m#|DF8D2G&2h+4V>$s;wrFGp`|WkWir{=-43z0@q4dY0YJnU=8MCf?ZpxAweT%HmZeTP^kQ~;X^%M7veubmUy6p3dXk=CGOYhkxk~kz{R}n&Aif)D?CX{A2c+-EY4yjk5oRSonX0zsn8jQ@7uO1p>F^-bw9h zLYTy7dyh_+6N+{vD10HeOE3+bRc%W`r%;kTv9}Vu`SyD$opvatT7(D< z!-#+v{&Ue*7+HLfte>rVGNfj?l?Hz}3MRzJB)91j%AQ!V>RCC(Y*5D#eLNAo(t1_b z&IkRdvJfmEdKArAo?I@?2ic5sWn7_LvXl$A(kV_w8+7Z|SR&*MMYydR;Hm~TT{E%R zU7PgRK%=zw$*L6_FIB9CjOTz7E|+(mRuAoy*DVWyw9+pAcdZxQQ*$jcLRfRw;MJ4* zd3A1$-^}&hE~0(1iFBt;ScE8V3@m4&r|g-%m*R%W)y`aw`Ouxuj`FO=5#|%+P78T3 zbFKU%H&86@{&q}epUrhb-lCj~U@BoQ+7sS>4*k1;$AppYQnlx?i8}Kvw!jEQ4Z4(= zq(nAKIsMi?!dc;Fu+MV24{@EM>q>D{+%BT%$CU9QgwO#M1xk=W?&UL(y#*t5fZeJ# z!48CMVG<|9#Q+PnvX-soW&Sf@fs|n;Ux84B)$7zx9(WK5uILdz3!LEoR>6Z{@O~BI zAfgQ7h5rS}6Cy;28%hX*6N=^^4?GzQA4NZRO=bRv0QBJi6=IAXVrdia016i7aI*ky zq8?Q{h!f8yK!m(!ZyqyPR>By<3|^;2*#n$y`Uk%Y`R#Afa?!V@GDCyZFnBjyng^Zu zwI3cNh^sQ8w;JO>2!vDPJGFZx2VvP&!J@muNbm! z8P1t~vX}T^@~-c(laasVA3y^t(18-Pp#BCuC_)pe(1kLzp$>g0L?bFuiotNA7VXSY zF3Oo~!Rb;XGGGxMT2YFQG@%^b)J0!;m5(w{qb_|ZOk*n3nbNeTHoYlMb1KI>>a?IL z#p$5X7oRW*OQdk*pH$Mc(4b0gqCb@hQNP*KsZzD7R=p}#v#Qmt3RHVsbsg(;>cm(o zK3#?{xfZFZ7W=_3fH2+ooinM`k0V{h`Ggm>~VJrP~s{j zx&!5GXRZ6(>{55T-c?F+145{VwSagxnhwRd$1#`(pgkr=Cli=A|4H6c7p$>Dj{Z5Jl^Pd3y zV}uyVBJ2YAMS+~{b2JJ5j2HkE3Sb-)Z-L9nMg*2rK%=h6vXStFi@e)t{rRXyo-(4l zOVS$4anZ_=^oJ!qZD{}U)YHT* zt)?U0U0XYvTDVOxZPIG!9;X`APad}UP-e8MsBUltP6GhZW;Yk2(PH`>&F4@?lW^uO zE{aHrTyT>Yfym^{&w)cq!h-B!SEZz>mUW3`t?Ks%8$9tdqp(|D?D!ZN!|REamj3aT3kYMd&~WxUcmiBK{+AT;UCD%}p-gS@ac?i?;t zZaIk1FT}vIZS5aFWJ7Nz(kGJ}eU1XQIFRjRPg5(o>+L3W(a&CQwcC^4z&o~|2kdJ; zDYfp{?X=e^{Pnvt{GN2jZ>isP@fvgb?{lxP-Gf$YZX2HM8Sgv9!w&1bgENki*Sp`} zD_vS|y7DjI9^ot6c+i`j-;Hm(gX@Hswgip!WG>f1RoNQid@)S%;3ZD(;`O%&4_HYv zcWcW?b^1gHJ7T|lzbn4pz=K@zsz>`sHLv_ikA3sZhiSm8ul;+jT)~OoJA}E;VeyZe z^lCT%<^GRca>#Fg^X|9)?(O~k%rBq)mVZ9I7=f6XY{AUQIGfZFkHN_wKLwo!2>}~q+34)j)XhZn;FI#%pTptZ z21=q*LAZq;}56)oG z%^LCr+}l(du-#y>30#J~VD_b-3{sjF9-iYJU^7*rWK>~rG$4VLkE%o<|0vJZRNx8K z)|tqS;2B;A4#mqnM&%I3&}pD|kTlBfx`eh*u!5|k>p$@KErWGRk$u@IVK6cpy#)#D-LjYV;v& zunq%CqA1>=Gg6+*g&Hk#R;-zkF2)_$apQyK;3JaaIf~-x@n8^kV=d<3b*bPA_7*6% z<2$zBC6?Vceq$J>SQOeLCB9<)rCmR6A0pOclHnpdE@U_&Ad*2C>lsT+`CROUh*Ciy z*5y$f0nNqTpW^jbUL*%LdJn|F(%JPOeC^}d9VC2^pE?>K_etLdRQ$O&&i$40o3#Hfh>9ggtyiV(N~n}tfGkVy9A zi;;LoM)-^x0^~a`B@MQu^#LFax+DVfpDDT>|CuG+*-=mKC016&R$`_+ZlyXhrf70v zV@9G&2H{Zp1ZlP%=Y{188emoKo@Ab;QF0@0;v{TJUQos+YNF$B4j?!(rutEr>XgfW z$wYrBl@7=*xl&o=%Fp%ucSBlerf z;a~r`r^l_QD{iJu?xI%>=RUS(J|bdh&gaPOU-xkxR*oiRGM*|zAyTs1|8XX;QDq~x zXKwzZd_trV^5RpLUw{f|`B9w0jpe1Ok(J%a9{ocfF%*c7QB8bAp0tz^`O^gLWn9n_ z7s=C47}A<((&H==60MVY0%JZVC^>eVC2|~xrdK5nrGU<-W*#6M;iq~+B&`)`LatrP zJsN=OoobHcCO)Ns@}r`;i%ars*QzVqxNY|N$PDS zpJXVilWD4E*(s!kDxiX@pk8Twd8$@nDrKSSuCy3Knd+%ps;JH?aH*<}v1+V79Fxf^ zt@f&~{wlBrtFR6$u@q?Z!evv%hZ`1JVp%K2aOzdSYgWNo1bLB642l7H(=^fRKXlPH;j1;R zST{-4K~z$&02IA8lD#5C!usn#A%PaXWg%&&!}1Tn>T87QP8sS%!!B%8K&&PBA;o~K z#Fkqf8HB-Z82~mG$vTA_Kv2bs$Q;0|$HGX~-Rr;>{^M7XtGS)4Lb>a^hK*1$7SO7z zs~WAj(v=>X&KI4~^PJ$)o(%Ok&&goVyHf3{Sgm6u;{{sm1Tw8=Tn!s4g%`*H2)R+z zo~*iJ?UYQXX5<|8rEN=B7_@CTT>tb*RG1Qjj3Vbt=fVJ+k`FH-m9Lx zrPEfe+s;*5_$*er1hrw%0CV}oihzk?lVCar6 z)J%z)1QFaiMd^C30eMC3p6!ZFEi$@b~GqEB%Cc*;?PFW^2?G!gIaM(_3F(eM^;MR2a| zf~2$*F7hfP#BLxcko9n~F`ZQYM0Jd@m3j;VSqbAbZO@uuo~;U>iE!m!#fi!lE`@?FsYD!u@<)jBE2o5)Wvx4?l9ZfG zZT+n<3kIG!Pb(`jEUB{dgjsyVvNE^MVDxgjKBdnz=e+!cN#@OCcttkr%pE7%H+Lsl zI3PxBMAXISibC?E+(d1rBunDm0@0xxUk>brga+KrfV@!t(UCiwvD=)V4f64FSaQ`U z<^x7lAq&MRoTPqQT(?WlxEr~XZPP|c;-uu!G6+Y)oR8uLQ1bmFSiMW5RnF0lyD^dBy> zU)=Q2ZY-gx+j-&yG4@YYqo7Y*bt0bUIYY~-XbVNaj{OW_pJ+8yKuqYk==0(gs1a3oiQ5$X} z3&m{LC@N^}RHFrp{{H25L#>alVL`}kr}zwDLrdeXN<4UmdH01>1QGNEjeMWrJBQ?L zEQCB9wL4a~K~yzFaEDzlXncqF-k31zCFWYogcQBSdWS-LH!(pac4rtvH$U_Yqq0!> zcMMhZ?!?7@YuggnHyJ&GfOisy>vev8ZQ{N+Cz;vUmX-cKYjY4|2PuW^{1k4;&Kx?$ zOJ7P`ke6tXMvYU(jdKP%$1riXm~r!XXH)lbOUaNVIgo>PH2e2s7y}OXU}KlKFhYf1 zcR3(}`FXRr)P9kmMYV!d6O~9K9ZgR`5X?V}nQVx8W|>j+mTZl#L~wi*i=L~mbGNb86pF)zc`#5Zc77{XkV+!cz0drkbj6^;YKr*v#Zt2HdEvHpZ_;y%zES=xnyXh zn&?V#gRpYvMzd%7L`Qlg2fJWp6qbYV!ns6dyRjX&v9>?mWXPBW!rlv>in#Yzc(6=( zPN~Hd3AKECXXYJ2U-;}*U`0uGf9Z7HGzFn+Gpd*zUn}}wABn+WUaB9|q+qb7_{x&C2Rnk7;UsS}MsV~N+w%#3%L`^QMzsLmC}F2#n(~4le5bO{M-5Uf`0|bV4h_EtTIZGk2E|0pS{dq%H6#EPl@r? z|3%h&^o%R3$JaVrOi7nKd9_dH%~LS1n?~VFGkNd*bx62n07XE$zYNaX>-wC`ym&i1 z$y0u`GybnLc;%A{whvV*14?Xjuy;e_TLkd}2aV}FOja~7Z&A5ZxPH8|-Cw`R?1_d3 zhrSR4`{_U8?=>+A$K=$HJ#UPe-Zd~oCA``TyC+}*L<6uyPiM||I_^cVAj7_C05R@Q z?^XVBJhUo)2PwD6ht=TAHb4bAMh^L9c>l{&GV?gMvNJieZ@vN(hP%$a#-G2=ihj}l ze5(qhg&{9M{4*xx-@hlVLZuV3kYK@rLI{N#2I8NWM*}{aJpT<1RkY;J zh#)PFgj#SYRhvSj7WIjfrpt^yyK30UFs#v=K#98L88O;ehbL7mT-kDKU%!6SXx(|x znAK3Bb~z|`FtOi*p>k3D$A;z8zkSp4e5|x$Q_DzoUgjEiu0)Di3yW60nsw{IpZ;6N zmOYzxZQH634m0rYb<{_RrCP>vXliK9ts2Wju6T69zIL3)7Q-@^39eh*Ih-EK*={7n zspj6@duVdsQ`Pd^&YALI3M`R4{O7?5TimU{i^Mt#Lk~B^EJB-x`lrZ-0-LcRsca;0p(dYY&eP#kjctlN;PQYXR&Lnt}MMm%uL3WZdSN;L}tvOnD%((}WuG8?QZ{tA;s)6m*_ zJ5pkV8K_?63D+BM_0U&Z1C`Cs{!9hy5L619ug@w4d+0lA z|FIUT9C!MzAWypEs6k8)+vJ_4&df0*JqtoMPi%2?*IXVc^wKynCOOQLdg=^Uq%iNB zb}Da)T~edA#)8*N3-7csv>lyvYpjdB?DE0s%slhlbl0`Z&|oFT$VDHlmX%XNKI?q)YV^~qqQ|J z78%o%rg_>z=1_165GSOa^3A+rd7^_Qasg1dzWCBcH(hpcI-6>)h@0vi{OU6X>y{Hn zuP>~%<{EE*_r80yoQrPU@y8*LT=K~&uiWy>8x0!s%{lM9pin(WbJEaBFWvOhQBPg< z)md*HXb<6bU3S$;esK1J*lz0(NACf_1SOV{rBOIU;g>&ufOvNMYaDj{E6q^ za{u)gz}G$Rb^xTD0VjvRwTMiBLyHmm6gV=3P$+-Zi{Sp|oL9kl5fE}0Y+&jlqQRnF z&|Q$rAYg2Fz!WBMg$q0iYf4DE2VyRUBvMTXhekLN&ZdSoNrR7S;=&Sr3r1~%*;c^C zlOoEdhe4U4Yg!1CA;u<&NEF!#mAH@}Cge;`e4%RWbrgndF^D93V)@SK#TQkPh+kBr zXmH3v4mPoQ6YP%&J?OYRHqL`-{7Z?Z!#Ld7(NgJgh#Ta#37R1B7@R7du7p$ zTZyBizH>)Kg;9u8RHMiy8Myp~@{?V>3@4??Mlde1lYZ?FjFZ-OH#9qDnjQkJtZo53Nex{ zBMm6uVwZt})0E;wC>v*J7w}C*8Dc|AT-;br8x|Bo1hb(vw`nxr{iB}ByNx>?a+RJn z3Yn8@*7~4RF*HplH4A}`C*DzzMuLDXi$IA=Dw9vq&=F16j7>-n1)W_;MqnO-8V|*& zP?SnFs%~tlP$TJ3Q?_O-kIC6~?D&| z{)8w1Q9QJ zmAf#>rs*(=iE3?s%ScE1OBn%+Uh-tyANQU~xQ8L`+Z>?XP;eK9m3-)3uQV{ZIMIa# ziHJ0I$A)Ea=)Qe@$aLx3GuOg4Iu+J0a~9Iu!<2U?BF=>dPJ0~Z-U_mwVFb~M9i8)nzakm(pl2%r^gEzMlYcCq1WmRJT)OS}`q{e*DiGF)&c;Sl1QH@g`c z@Q-=IOop(zKWx*%B0sBjT$x+0G;#g@H@ae!TpCAEO+cD+JK!BGVP>nJy|(aNL_1< zKlPMlj&?AYxR8Tn$(I~k3Z!`y8P4kDC2)EPf+zx(+yQvg9+NC*J+YvO41^%tnUA=_ zGeNFV2HXWbNHjn<=2shp61u}3DyE0qH2s$BkPVDNE;$qK?8XZS;d-#j)%TH>WVcd# z3)H!iyW+N8NR)xwU+pUQe|X(H;89Dk#*T`z3wDU!);7bgJ;kv^Br=zQ{92yC_=Pxr zL{w7xnAPi1tp01gB|;GiR(i)lsGL3Rs7S}!Q}6c4z+HKA$2?E#{yLrHeS-55d};vC zcfSK_y_(($;-fP4#W4Quk9XVd0bUTwN5%4Ur%3WS4qS#f9oah;0{V;i!0AZp`#q0I z8j7?y4P<%m>ulJ@uWyn#@u6`l*KIF!Y4U|A6t38y`~qh|e(_ts$%LA&gHUJ!}3-@Wme? zt1Mm9_PEF=;L!jildBM|s`QWqLDHB$rsi1EoJR8}SrM@IaESCSCYggSN@IuGFRdaq1p_Ht6Fp&5_hyqLo0B3hL+*C#H-j^)&@m`3vQz%@tQvx^ zd~q6Gs0j5^Bo=KUm~talu3SWNjb>29W(E@#@-E{gFK=Qm=S4Gjk~~*~AsqBy0w#^L z2qU=BKrgYisPZv|k~h`SDK~R6tKC`mZD(URHlAqR&^i04z>Tfn%wEd{_ zAX#%0_lrc=vx0=~DKDZn8?HKhbSekwNOS95`m#lZGn5X|J`qe0{r+M=;^Xw70!p8g zCGQCkwZv^kZ=_NzJCTAea(oA6oPey^VG)!dbFw@Z{yx6E}XI93PV3N zR7vVl1ncCC)(=cDHJDTrhH!CbF^)AIur84RJDQ^|8l+1qXgvgYu+B zaO#s)1&LYb0yqd%r@*6vfV2e%vddJERuvU8+<_nlgeGJQKuTgjICHmjHT)#7XbBH# z&tuVsqd1f(BCG`oT<9Y2_Up#d&cPgBS7R9SP%kk1tf}~ zQt}YQX!RE5UKdvOjy}ROPR6eSFE3g1X+fLLE0=ITKNb%Ir&OEOlQx6zJOkOvB1T2e zF2tbi^5SX-appvqbQzF3tOG3cRs#Evd8fB#9U@;dL?g!69m-c+phjoW@Yswg#JU$~ z<@KQmx6Cf1QXFDgnzs64isoYO<}^-KoEIjR2`vkB2O9%dE~Vn?_DH+(PVc55PwrP9 z0~2_{2W6`y4`UUD%|^TRg&vqoEQC~iq=Sw1SSa*>C3q(&7+p8i6^F4SO*KpojL)hh zXBeV~3!)}w*hw&jpQ7`LbU0afVkQ3}Z}$FVR#MjEsA+=Y)v&Z3i40W;e7MUqQHcsv7{Rcn%1t@lqct1Gi)owg`Q z_)<#L?D|-OCpI^m#zie;u18G8*!Y-`cj6E(qX9L}6N1UwQfrE0rA*jmL(!B3traHf z%t_`fll0~jKM`xeeZlvgyd%|nUNggXq(q8T}`8F1caq)n0lw>6IKwjhXXCp6k=%(-V6dTx?;E1E294%K6U zv7E$lkg1oglmxTTMmyfp4f(}i0LDuDBVGhUmnI`?=!>V$B9?VoiduRnZu*xymYxfu zq8XJ9pqirKtRCA)sigWQ=pc%DCa{v}b^!8F+d8hdhpp=rUKvZSC5Nu@x}Gf=O}Ytc z_nLd&x?%&nu#JbP>Y59~%CLV1u^Br?7nf0JnIj)tcm|tDD?77i$FcJ`u{GO)c0oKvzO>o(?xtFNtLMEFm20mzI&JS8npY` zea72R(z~e2yO`oiwyQgFC#SuA>AZbry{!$P9_P9V%21wVv3+Kyd6$S8s6i|Nvhq}# zUM#$?rG>qbv;+vhPl~?JN5X5v!f6A;AIFv8JBUk*tT)`g30%ZCyTd&Pzqd|Ekbn&y zT(UiEb%kmyyg&}L2Emi9QvZ8IhJz&{R=R!s$FE7R@mt6#{7@)dql(5l<>cSkR0}=) zkBjrevor`HGQY9@n@$@mw5z7{j2U}PX(%>98R7vJ0FYZ%9A`vH|I*r4>{ph*P0Z)n5zcH zaRNZCJkBva(=WZs*;~pZyK(5-&h6wJ>lQ1WYl&M-knw55GzoFV&mn+8YWQ!7AP*c?K*3gW+5(m|Cqt%5=sw=^h}Ffo1aJ|BXKg95bV@Q8yh zwDW4T13kl&h|5r^hq$bl(v?5)Y0&Yxz5|$*#@*2IO4<3^INQ>H!&lHnoT$*1NB@+7Z+_RE^bk#NJdrtvo@}D2PaR3l4ZfQ*`c? zNG2dNG=w#NCtg;RHIC^zuSBMEj|sTqL5)I}XfIDT z3h49wahWKF5I&LA>)DDEDy*V6^B4E$e5BmHxFFlUWC-tc- zzhdy=Zze1RoXIie&nZwC$Z%J3+aQDQeeZEQPXQ6IAkZZ~AYD!0(TJDSU!;N2#B`xR zy#Aknj=|W~(^ntQiPMYX((zT_m$(voy`8P{9`(E3@fUQX;3@B6pFw{=T^sDmV|)%- zpTr41ESVovyKVRFS@!8&-kl%!1HCO3p80(rBtP}vr(aUFsrIsvf)lYY7!icYx)0%U zo~>pT$1ob9o@Nan{(;cbKwcw!z5D$MuHuRZ0YZonB#%NFGw?5=!hZqysktV@|PMGBVeRI_Kp{z|R- zcI4EsK7WF}>elF7yfMd?-MiB(;H_yn3dSqAY0$ew4_nn+bt_iGf8i1pgDRsyLLn2H zj7D%5lUC7$5Yk+EAxI5vO=eU`kfzYs>0r8c(2(}qk{EG2yq){ezuF9Eq69j#Cflz# z2R`b|xMP}7!wd*qZIdulB!^Ii%H4n&e5JuM^Tp&is)qRUicvWnrVRqa?=%S=l*WSn@$eVqTNYrCo&#_Q&XMlp)IFq4+IHX?>06MPP~ta=4d^ahYf) zr6D2+si^%)XkUwT;z;9w(RnJOiI`UQV5Szz`l48*PC99>q*@AUo|>v?Dt|>*SEQ6e zlExc#)}7{Cu?aPK)|1mlIa`!fqNWg*RB5@bM%Q8qrkFj+SLTbhOL8w<_nn5FgCb zq7U<$@WZ|;=rP0p@mKQ6{%u;Z$&Z43ufg+Ky6defi`-YqGVkVA%XqPLQJ_PXTbz;+ zs|F`?%L3f3vU&>Vv`yZU1n#nd>c-Hq2qol2D`cJtc2nyXWn54B+ME|=Oz+&$*#cpP zC#s5xC+@es73g5W2OsA1!hXv=G21cEDy_~n9t|VmdJo=j;v?g|>B=y3{4tG*x|%Md zh8ym9#sOCB*x-*tzIelfaUS!Ii;tLK-&f5YM*|iH< z>s;@URjuVm+A@S$D9<3ohI?O!coeldIfD>)p)lPfjQ$t<Pr? zF&pk!Cq(rB1W8qq^s9dQnVim;pywv|GM@c!XE*zp3PZTD0OF5AjB4K6hQ<`z z@d$TKDbhlefh~n_DTv_eQf(rLJS)A)ODU<>LWaSJ>2V55X~K)_{*km=xkw1jtBAAC zx3+P4(Th_07i-!=q=ir<7j=V*88vn?Sg~-6k%|$35RN4* zl!q$l!V79HgN*Ue2qRa(n-r>Y0wf)%COJn>{yCD84Em$w6osRZ1#6RhiH$L;f%MK)6wO z26d=JEviwEiqxbERjEvE>PvarQ}=ED4GW7fh*Pgx&l2)yIuyYkR=+A!l@>LHDb=dr zkP20>s&%bwZL3k!>ejgS6s|ahofiWoSFrZ;DrxY9GC+{mz)n=Hd*vhnn@U%~Dt57q zy=qAt3)z(>7N%ZUgm<>*)yOhcj+*VPPxTs7PRdiMll81=Pm5YSrgpWgZLMox3)|Sr zcDA&wt!;0M+uZ7Qx4iAGZ+{Ei;0kxR#O-Wpi;LXb9+#-gMQ(FR8(PAO^{AZn>~v51 zT;66^v)cvjW7&G$Ddx1hI3=%O!&}x4y0yCARWEbd%UykjRldm;mTt}K)WXUYy)-K? zf1yj?*Zwz=sKxKX44hSBv3CBz7z}WIoy*|;K5DTMj_`xy>t5eB)WPYs=vonsSPrKZ z#20ogiK%Ph&2o5VCB|)vZM)$N|L>9?e(`!m%-<8YIJG(+tBujR;{NWKwm+V&2ETjY zPU$zKq;#ktKSW4r26@J`T9K1MsmIV}d82p)oXnUU%Ia!4x?PT7L3?H2Ct|I~ejt|#skk?ju+9;^^WNZ`sytFptWC!9nB#27Fe93?`hBZLk*u&sgLKhX z7PKYRM}>#r}y)^{2HuT~K>E*cYO;rTMI?9*eTbhniQO_xZigqMq1IiOgV%m!Mn^_40X@`?xi(?DKWXN1gRqkNem5U=G{|#9(AQ>l zS+ZMwZ-KL@&Wh_cy zxuNr*N;NK0ME;w=UM5`0^>#Un4Y<_?jUmNhHuJ&id~%))x#MoebEOR(%@*`iMRjH? zpZz>xIseqe1KdIxwahX9-e}aHE@SNWJnUIbT>~r4ZAxR*-Lw8U&N{bcc6s{bs){n! zH->Iy>oeLg{)B49o2~V!pO?ux87Eu|NJ5(d3DF4a|EU>Sx>wgjQ+sCeFKr6lJ znJ=}?b9QTwe!Wr#ZuUL9y6v_?5zJXVfRoZ+yChK5~h_{pmH&Y0G0S^1l{6RGA2ZOS3oK|G6hK-sSEeBa;qoUi%o*SmFSA*XrMS9-EHe$}^k*C#RPw=$#CdiVEn+jm0Z=X8*?N9HGj#Wz$SI9KF`I4Br% z7pQ*zy7Gc#mtKR{f|-OkTnAJ`_cwT#ZX{@Z#D{2^hYG@~h+^2d|2ZhIYgt*seX?J7@<%X&jfQ_Sfx~KkT z!@`NRc!S9IN$v-1c9@CMc#04sh#z@XKi)(mKA#-M<zR1(Zh_V%i9mfz^>yX_Zj9lsuM|B6*e8C6!%yV@(N`V@Z}} zX_jY+mT9S$Ysr>v>6UK^mx`r;PYGLF30YfdmyDH_dD&h;$(JcemrAK=bN<6jkLn4uYpF7`nF6@_m1 zla)!Dj@6n-`I>b|gEpyPacP^kxteAOKrD%wxCv{j8IzQWbFmq2zG<9R*<+!JI_A}U z$9b4lxoNXGi^Cb2LP?y?iJitpn#xINKG~evDPb(rA>1gL2osU!343c7fAltuyrzt2 zw|EA~cjy>oxi^jQNsN#wmgvcl`+0!xIcx4Ykn}lI@g`=r2Y}|tXAS0yDCcZdR*mtQ zg#`DDW4D}@m}nIGpaiO)z=>7wXowCeX?U29EO=O%NtRi_OI-vv! ze9PE*nb(UD>W|@-ktGR?A6TPoCWOY8N5{vWGWv}6NuvBnqnOlZ1zK;N_M{YNq|VrV zOv<6cD4hU?cneu`X{JFk2#0rMfBct*2h@ELN1cVJi6oP4_}6r2=Z%}^rv8U;4C-xp zr(W!)a5*Taa8-9unsP2Daox6V7D|e$^`b23goP?XIr4vtd2vlha&}~JaH?>V8iSh3 zhKWj*(5Q|$xKx~@f&i#GLzsN$h@$1mH!&(+?`Myrw}h3MHo=7WYRq?;;uVk)e6XO!QWD?HVlDo9uTW310gsqNPOa-K<~1jMYn$9WRTF<;7+ z$r`G#x`h-Zc?z1V>lv()xphJ)n{}F>Uv~Kf1p=|PaA14hfoiDg8y}^qgaeoYlHs;sQ6lTv8an4 z=&U*mtJ&wars!n`>9h$Jg4L>zm6LH_x_w7$uSx#5Vn4tE^ zh4M+c2>Yv^yQN8$GG1zwO{-B6JA=)kwF-Nx^=GG!JE{oBbM_U9i4=!*3%R!Iik=F+ z76(s#riqaFP+e=WWyqe#`-gFes+~G&m`JE%tB3^2v40r8wwu1A*uDIQi+8)PEeO7i zWsIo-jv&fkVb{cHyvE=u$7gxQmwBC08OMS9wsB>bL-{M3 z%f@po$j9l&GnvNNddKPKpVD>6(|N-2>%w_F$dfFSE1Q{({G6B^xGnsli9D}B47-X< z$)gOHTTIHQjLNC3%B#%Et?bIL49l_HVmROr{(u9rjLX=G1KY3-Q6tB7+#fsO4ZVz$ zyG+cxB?GqHD7381x$Mj@g%8`{{!$AO&Ayyd(LBv2Wy&34%+`ET;K0k_?9EPv&29zG z;k*r1?8(A>%>Ig0=blZO-VN&i}j4!#vJ}J5(|q&j8fY8(1SiEQ|vBA^P0GY$zGDECU7o4>jNq zO#Q)aYsIA-T~y6%>ip0Rv=0(Z(Q1VR7Y)`P4bpn?)ncup$VU?J{2?bjRBAn6kTnkN z3|4L(S8<)w^sL5BMc2{(snT7#n*tHgwd@c3u+;ys)q;)Kg1rw^k<9xLct%}=s;dyR zTmv0J*ga9p*eei?4Hk)A%Y|*&o}Ji>oe}~)*#5i_q7B-Qn-I19782bNJ8;;84ca8Z z*-J9p1FaCrT-hEG(J}xPfj!WL&D(PE+a2N5T+J6xaM88U5q~fXwID8GP2CZY5EpIT z3-JfeEfq{a3t&wP()|zH9W5mB)!c2-89gmcP&XuD(Pr&@OE=QqP|`EP);-13AlKD8 zW!Gz!-*VO8YUq{n71!zGH~&4IeJz1_VcLid+_^2O6#bKwuboe-ui z;jWE-6#mp2F53S7kPr~=*^4a%BJSX+UE+%5+6_VBOsx6++|C{4 z**z2;T?_EN$LL2Aaoyfaao_wc&9ErRK^5R&#pa4t=RY;)rdK)z{!(`?xfI=i9VF0& zz2Y^{+YsT@m3Ny(~x4z=Ay%2}(&w!2S$i3mKK4?Z>Q^@Wu4Jmg9P0E4;CE( zl+n@FZPDXCCD9E4Xnw9@dMw^FU`x@yaNs&&IPX!6Tc7@ukmuN5Eu{f9-#spe+}%g z5EIYx*AVeG!SEf?0x(|=H@^e;a1A5B(Lw+Y*I)qUuni@R1H)YM(!BF6PbhgV;~ZZN z3!V@Y|Mc5H@*T198J`d@AI>q~5idZ~+rS#JP4y8k<023B{}9b(|M5_f_1ka_J#Qa5 z{=X1&U-t%2^iDtU1p;Qch+XOX zFx$*b?Ly$$oNmjb9ThS_+O(_?PJQYozB82X53J78H%{y|5E;phoZ;z$*toD!uo-R>w7IYJgZW>}kY&W46>WY5$&TZvPru-+ws#TW|t;RG- zljYTl4W)*pTD7ChgD;07#96Sb5SVBYdbPUtU|W195k9P|H=R|M4$_LI;4M?o8Md?!X;#5&mQ;!=DU-iVcIU;jczjumf@U!|~5Ej>}f}`P;YS-ww~L z;ripfqx9#0vr$XtJ$yHB8MasZ+i`gxXxGq#`y*I?|_n5etOt^wh;vHrR(BX$VNtD5Yb>hYhvUV>>Qh%$5P$$?s^ z5~{MYf=Hqs_zM^cj@G4s3<(2T0_DX(q3daRl!Tgb?( z{rXhtr5#!zbD(h8@ySt2 zpwF9)#59%5gXl_4A`Q9=)XGu~v-3%-%=9x+Raafos!DZj@%|qry)+9<`YbhUQ3L2h zHN9MS-AFV#v0JpvM`J^^*0Cn6XtvhiyAH1R65MB>Rs%F_xr(^^$G+9}k&Qb2ij(g% z#Ui}SG}&aJ_B-p09BAKu`BjiQ%zl#)BJ#ANx5)Pf=J+;`QJal7mT3d5H~a4UZbFO! z)HvGuZZ;4&)gHW}x}v8m3h|#6BRJ8-3Oy|H zvaSuNP)G=%=CSKqR#e+Vf>abS$RY3j8X`m)C0e9mEelP_P6z4|t}es$W-w|0qIPg1 zuM#X=$?~$SNHqD>R-#`6D|O4C_M}@&&NOdHQpqa{{+!Uk9N#k5TUCOzqQ##zXK6m^ zYDhJwwuR~?A^84qTQ6blbJxKvGHI}eywrU(%8zQCb7WK1kJ!z<%q%G1gSQy^_@p&Q zwA9uN-Y|(?zt_{1?siDAeaAB&6JgK*)j%Qa5Ih{~AN>Z>G`BG!LsN6n)vP9> z4GjrJAmY(g{;)O!xXl4nphemu;5H$QjTTz|`^VT!^p6_xJvbE`H LC;BlXhN1P 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�)=M~3W#*VwC&<`%_J)Q}n5)K28~K1#QrgI5lgqXo_|=sRnJ=9xDX+t#^@c@|hS~ zv#$uWtj0BONWmJuh_6+gHH5CNj)<=@i8Xa)ZOFs=OT?Mqn)ESCu})yAYGU%E?XRlF z?!|R4cQX~k*K84s?>PY>Co4PJ;*d;6NU*Xqf-==)RZBL#3GAojzSQ#`O1D{?&Nj%m z-W3KBVxBN7HSO-)Zxd}0m@I3x>}H;e7jv-Z8*+a-vtbI8`+a7H@w5L`diN{J6$NVe z&=d{17!J4$tM$_b>TWMr6@ERSAFw-`<$;L4_T7(LY&{+BbnxcE9(=pFaru23sohp5U_+a0 zJ?KRyrS^uuQF!h4-3IX@729AJb9?p8Op4sm6!_?#3g$7)rPA=@C=`2Gx@Ah-ufAAy z%fxLf$-%nPFg`!vI0Dnnm;b~WtE_>@mMX6!sqmz%wj1Id{08IHSjVPG<#dYfvdoc@ zyoUz>A|?FT$#3>vTcqw*_WSAStnB-aOk6 zfk%AF@2PEqi=W@@ucAfe*&XlYZq7P=?%{Mx7%%3T-%W>vstJ}|Pfm(*M%~~9++I^Y1?}IwJ6l)jdDX^cwfFR_2%C<6o%V|!YfR0##6PYik_>nh*FML* za=dd|i+)BL-{jx(_%{1&GPn0EY(p*Zcz$aX zqKNlORs^3(w#+awENZN&N~88oev$xMGy7`GA0dMYX--1@cxfC16=j_R$sYZ2{Mcv# zM71W{4f3$^`+SX746uohL+dVFxpnIpEZ6RmS1C^qAvt#9Rnv9`CW-GLX&QL)3-{uY z-^Ry^z374-*{M$5g5ltluR5WQhAi?yhBw&XIY}F3rt_KH7fEMD?9L>TZ(fM%b<>h} zay~`5;bL@W*r=QK{9s{Ndth$4h>ZmgX&Rtt4B_+t+26&*VVC2wP7wck;}0ilt?R3|-p+!urn!Xa5w%cfJo z3GzkdLgotZhB3a^w*(48(g}^?_?d2p`67)^;RJ&z?5>>@6;JNr3{(paOj=Bh8ck=v z98?M^7t!XMQD;Gk8svW>T@soY{VZewQB+s$mkze;o734e~B5`bIdbE!x$lhI%4(U8-xp8oaLw$2W( z(xbzxdEyy+Vmu(E0A(vQ7F7A9%V_jl_FEH9*dkUO)&HF zwoIdGKBKvBJ0&a8BfQaVNLF8EFBep?(qDIw{+xM|G+!wy7d%khaZH*`aZ6*ncvN+e z|Hx3K8>71POjE6UE3$udnC9d3%jy22vdIJUR4!ph$6Gs)@DHUzN}r&kL6K#us>P5> zd_z$VKSilBqHNq_^sGRK~slwcfTsAoz50`YoJ6SmRvi?Lj* zB8jZkJn`P{O_0^E^n*igNdZ4%G!SJXXoWI*xoO9l>B6BJJV|O#5iyT1jEM6v_;kh^ z{HK?RR2{|!)U1CwrAOGD_2fg|O(HiUg^Vdffm}h*k#zuGl^!eyNdUI}CHrZO=C_ac zYqzxd9Hw0qS0x=%gxJ#@VpWh9(eU}r%SXo`fLVo))6dc>qqGLWQECqs$zNh+Cc&-3lKpe}HRe;t`%Z|6XSast-rCFLH z0Jcy7Ol8xl^5OX->6uS__wHR!yIOIbLxl+ztI8j;xdR348iuoqcb!pFjZ%x14~Qp* zYr?SQ>g&{E@5PgiRUeVh-#x1WQrXRpgqM2BwX3f>Sy^9Big5Sgul)tGC}Q=U9d}x4 z%tvyxkrg$NIoD_`w#*0fR4)3b;WU2aG+Jofe5-Mu6 zL%iHJEX!r7pS_;@rYvFCg3B=ZZgpR7xnp^w%B;R~BhlU=}7An+?`j}DsrKb@l$@d#a%PnX+c+h`{U-9#~+3= z3oU2*K?k=*#foBcwrTyThxqfPOql0Uxs%?9L`N)BSZkw2Jd;1-+k|@p^4!Y<4S$qY z>bFRHXWL-ks0SQkcZ^_-a`!$oNcD(_i<%scXgHp{d$wNgbXP8L{RQsT`hhtTbS*`h zWc|5Cam@E#vD#W?%KQXLoYnR&TfN~_tk7o>jM!X0*lnm`UCqw5aQ8>2&_qdoA)Z@8lcW2*oVv8wy5rD|M(PKcFf+eoBzEl> zN@F!772pjV6Q)n=uZGtixO!F-WRggU6?xiyRI|t_G6Tw1NM?v)?}a$6O9v0*wQKT* zGRwCcV#2xGrR-jO=kbZ5RSNYk`0!Z*NYdxaFg(8(=usB0h*kulyh8Yh_i|!mMNL&?0)pGA8>Ba z*N{IqE*~f>)zKekXsht03K)4|qo#LppyHg_YL;cn$KE3CfO&ncgEBI`*=WDpptNG# z{T^2n4G8XT+2D<`RCZunPw?kBF*TZ$dP+peh#BFm0klqMR~nxn^Vn2XJYnK&9mVZCy;y6cLkf~>K#FGAMw`pJ8E4ph!}aVB1w)uVi@|o z!E8!|WVX%`^dT+85`{?i-k?RSlG7V8N||QT&}R*NMn{lA)6IsVP76m$9pUUY=C|6v zN$~EW2K6+b@bENpKTzl8OV!5a|ZMrDZZ5hQTWRH{BpLNV31VW+QS!5oOqRY8 z5v&UCq9e|f7#Vs<=_weMQN;FZ=tFQ>p9#=FqOX1GQODHLYjCN8I{T502D31^Lq{;I zf)!1qaj>;8)?JiVG*Jsoqu++0sn0Zf?ZsP!^ycN@RURtEkl{qEbvbJa(8*+dW+Zd= zi@nx}_%^GE8QdQm7&T`q|5LQz@Cd)bqAiC|{8AYD(*`HegDORsA`UGu)Vrb7O@XhA z-hg9t9#9WA+pEj|I&z_EJTp8;ooU?eEfr5Xo<1I|Hv-GKJ$5-+ES*)cu`9N%9#tWR zV&~&%@Qa%c9&aKPj{Hgqd!|q)6=Le=ndzH6Ruj<7iBz(PL{3p*`_)ut!A(wp`|Gl+ znekh`TZ`c{S(aaU6Y@t5r_)1irLRvb^>1m~W5%dM zNFCwZ?5;uIfHdqbD70Xu=BJK6p~+BEg&VyH-DB>f?Wx)MaoAg6W6&gpKg|FSv-e55 zS69Z2G)cfO`AO**uy+#$h-{~T34+*Z7m0r?FH%J;68AwlLEk^2#++;IKSigo-AL z3=}e>TA0y*=s)H_FSh5Q*8F*fAyhekrbluWbi7--f>}nFIbkXCbxdkpjcRsA1dSba zlK5!mrDLK*D8$hmAv2-0AdzCC~@_RhAd~)?UFiJPsda9@NHBLh&zW+b6+dI5KX-M72mNYmn`xBYCLXQna!f7-5vQ5S?Z^w=&y(W zp6631Q4LI8A7I9;Cek2FhJEdwJ_iv~bFM9TXVsX#dkaPtmL$=qCn5o&G8IO+psmtS z8u&YMmz6}1iKQ1ru7^ZKwTUWlqXo*^ii+M2IwT@|P)t^GH{dUfC?Ji(iJAlPC*lM$ zjZ~O`z*rp_DJS(W7LfXz8qlH#24_kHYawn_LDE$!AspH+LrN%Rhj++XS3WLAZ0;5za^<>}zzLK5H#?CGBau~%!2wvxyCb3VxR*5*I z>&0vsua?ZitIY`lsQW(Ww2f+0Q%Pf{NR}l^)sj1Y&>6onRJ@k%h;e%T`<;CfPBlFJ7g5W!~xDxB&(t$fhFg4!{KU+jomE} zlTK;kTjfC|dxvM)!1gKPlPZyIy<*!fbg|j~Mr2uRD71n7hqgHrnR8DFdMsAkk#o6i z&2wj4+psM`x^W{7tl5|8mhpjlL+}l#OIuh=Rq;1lZ;-&}dtEg`Mgtq7I>(HXXAG7d zd&Q1*#%}u}0hT8p8Byt1lZ-ZEuhPwP%|?5fNW9UA9>ekM2q==79JO{lZ!I+l%=J&= z)fSW3hEiqD-o6G}ftxZkb+ki1Gn=?&7*gZ&VS~vYf1qD4;F{8+^zW0X(}<4MTZH0J zYi){E2m)XOyJ>rsrelRvb|KV02A*=<;&unaHfevvw;=9c=YSHrX%W7887B8=10iOh zA)xxup~sY(()Yc}+&AyI7CW<6SP9l4W}1@8jYcP6i~YvOonlc0*0P((Eb^mPplwr8 zlPywuMu%-GbcU{ikAbc1MJTj@j_}b*%8SeMV4zZD+c*N-GAB+$W1%GDt+e*aRGsnQ zqT>&hym}mEup4fhD%++cyTbm4OP8v~yyJXktWHFGdhkS%)jJQQE_6n=mUDKrrIWHe zzAB(S^@)YI9lK5RyUz2nj)&K^utRsZx(pa{N$C-k7&rziN6i-O73JLMsu?D(hG)-& z0cx5XRvnP4pl>J~dUVd9SR5+f%MKpIOEnxG{6>btYDV9jEiRpHq(OUsoNXeXZxNqw zGoSAWp6|+?@9CWHTb=*#I>&8vIJr4HC_O)JaZ=w9ngy<$s#dR`pLZ|WTyUvPXF25) zvn-p8Bs-dFavBU8a6Qd#ok7nZnQIQ2kC5(wYfjbI-@jb`aB_KeURZL{kiEExyI2sk z|2pTa=C~3b`(qx<o@?4ixFV~5$K<8Tb9T%vZD}94ov0nVcU6;i2*OZ@NR}47U znef*;8f>K|SEoL1EMMFzigl)j+&HK0B+P3PYp)7{32g7&Tsx15OW!E|*kdodrp+eh zXZ$+REWq%ypL$$)ro;kw-zF}}jXD=9CLxVg?f#aeeUifk_rR6rf(FCHJ=zQEB<0T4 zBg`{BA-kE2$L-F?=PDO|A<6A=Tgx4Xedj#ZJHEFTb?<(rDMJ?UM&Qp@#N>&t?wx-6 z9m=_fGPbm2>mKt5@M#{i$R7`l<-VD z1R3kcV_(frlJXiU7}PG!oO$V8aG{WxPNdvlL2XoP574S)4dqukFC6J$x+57OKS|SX zoESg2xRrfiaT9#+wd3S}1hu%=Rd zps2a`?D-fK@2dCxs^xqEJ@12GxM|wp$Bokuj??EVI3M?^9~=(s9S1I*gp55kK-d0|1;sDnQ*z1`?McR+ncLLO?h|% zIsTED<{^Dg&E(97BHqK#&YS+g$MoVtTmGSlW)WrihT^Ap#NLcfnNLQsW%VcD)_9-O z(x0rGo{(i9o%oSP8YYV`_jS(ana&@4zurf%xSO|L_vYU!$v=LLe}>iIeCYV}h@JmD z)%tjM{?S;#3jyV~yS3jdXCH5zjZ3HBHLri+fAUxQ@arVZFYDlS@TZ#rc;|^PA10mM ze#{%SlYD=FP&M}Dcf^73)aJ9~?Jp(j-?TK3c`UGnGXGwbmM#fT;LoSi>EFZQ-k)#o zJ@WT3#Hd}u>U~%2wyw4h*xkZk^g_r*I{94VlF9Zbx zA5`vA@HG^ZPF2Q6ZAUs9i;3Fd@Umzyo=7~3LqBO}G=WT@!J)#9@oOrDaV=paFa1z9 znM%;!w|SPC0;zC(PP<#yxniYsUdLk(Tlo@UXRiU&hD!Nrk!(AE*rS%cO1`>^Q}B*trzmiT)&(7X2(KWD^oc{_zp+Xg$tqV@ndQx#Wn0Rm+q%0_PRcF zQI7gSa$k;yQD7%W=_1A__crxd ziIRuR;8yv^$h3DDUp9lP=3OK`y87=WtWnp6mllL}6(zMMg89@XrO&}LKFhkk>mXZ` zxpVoNbza`r? zMq@WV_0)tx@t{K?px9sRDwuCbGM1ZpAh|z5W)ZU$>BFsK)RK!F^oLC={L)$6)f_~D zgALzsN5iaWV!PvTMbHzZmPsR7IO$UQatwcUB=e0CYpxzHI1Moyxc-B`wY10j9543D zhmHrwbVBTWHtWrLF&dhFqalZCdKZTQb-+Lvbs8 zLcF2#U`4tLMa`%91pHW-{~Ws>ZLo-H;~+*d0^`6;t^7g&Q>xQf3vz)UWg1BI3#_`k z8;lYiGWlFsCGf@HwTO`C1J&n>NY8W)m?{>(qz$Apfk{O$`njQ4w-o)o5I%#f#r(wN z47J?va9Dvh(6MPUMWWyTFB*H8l`gF-oEU~+Z z2sxPX+_yKLQiBlD%Z=x1+(4SmjZZM^<@5X|+DiyX5Bb-$WjZje78Xyq>#K~X1E-?$ z=68m3=%PCN9P?m5HVn~+Pm-@;6CNU=+yWCA8|(hB>9laUSqFhhT>+qvVGou#6qF`> z-<@p_wh(u?{N`)2Lds&qUa0|C*3+e8`;ie@KK{8fUD4NtvZ`A9X4=R4+3F49!Xm^E z*3^HFs+fF3Sm!cr;Vq#$C5c_x2DTJn+jcx8lMvU6CstdStX2&L5nL0ZoFt&H-n0d2 zI@xP>eEZPxVc6WVF-|&7m+GL+(WchiR*_@0)Vtl$)al%PzN{7f>**N&6t94}n0c_j z(7=)qn?MexCEIdr??LxfHs8|0shJ3?vR5X3Q|aPyBv}G0@;Z@nQn%;iRA2;>y#tVz^PW04+&f5fYZiEXa2B*03IKNV;M@_OO8onH%1K`?D1C zdUbopjxze4X+5dEhh^^0`FZ?0Jzintbocj%n(4tB;-8U3L&t-UPfg!`96!xr&6!kE zxZQB^Qn^23b@!dPNJ8B5u5wIWlvf(&iS2ej|2_}+{akQU)uQ;ZdrqI4H@AY?rTzme%$eC;|v^`+TV1D;+~%Zxh=OWc9VgKl(*M@>kK~> z%g6*~Ax83S(;0ek$f3Huu-JXpc4IsZ9ulqjsj9RHORL%#7pfJ9fIe_@9k-5%`XW_W zxu*|YCA_nmcgqu@KUs06y5EsUd^2zIy{lSvQDj!1l6NLv-^AG2PHB5zf{R$#oPOa! z@@JmM!2H!c)4T4?_h0OL!ZTZYHnYSzos;^ee+}kjTa^&R-4(Hm$4PClrAuHFPR@7O zdgcF!sz-k=K81R`_6VB}WBuK3?SI`}+672g{W-1TPGVR-%)Q04^XlULhSjp`A2g&4 zBv})%@kVOaW4-p%eqKnXNh{U+p$Pn^LE_~_azg>y4!Hbxhify&IJ=&6kDLV$STsT~ z0n-;pk1iAsWmWr7n;=S2=WrBbU+n#nYc^Ka()eJ(GiuH+qM3rwoP&?1J6CznH7VzP zG zpQ#3qf%#}jH2Ae@_Z6Fq^)v)&Tk~L?y|-GdD}-cRi{B$9+0zw|~`a|7tVt zn$e*6ZklD8rTB`zv>7~r8cZ*yONpO9*Jq5`ko!{sbJBldWCYBxvyJRjq@YI63Y-T# zA!010?bR4z-V>2XZQix75UR$qn;9&M6}^nb`~&yx*>jqzqp+nLyyxgF02eU}ZgPG%f@`3;YhOomC1Z{<7>>-L3;M>;UtkSj@QYmyVWK>VHB0Q? zY^i`KI^b*xEzkc7QUq-#jOL1>o0cV#h(Wi6u`NWAaYb8b7_U>N=^zL}yRV5&=&*M+ z9MmpGsHKq%$Mh{i@CK#h7Vj1?4kn2cCns&rDDL#8Fq85~3cfXra$t9}mbAvNjLp2DiFzXhYBOCpy8%M!3+83UP{Rh$F7aA;=)(>k7*HCp4 zSH{dFC~-=nF3=EO0{~2iXq)MEGYGUv1yUtGm+K+q!9{GRyrDZ)B&m zBYvOrftZDQf85Q$8r+h{No#R7YV6s9r9V|_`NYIuNzX`6>Kw=9g@*M$N{a>G+_Zyb zDq}xLr36(U-y^Cts+vO~tW{t@)YZ_Y?%gK^=OkJou9M1Spxy5^Wsa1c^S|t5h3MVUa?4 z#Y%>)Tij8MYMKCU=8uSqrzYu-PP?jHyP9!CR7Y%xSGIjytP8eapczx7oh{+FL%d2> zI@QI~S=P%`oT4ckC0go9_J-^v@Zk#+Z>u#}2u?OLmx(F*oZ$Ftyn}tUJsJPAkO`I4qTdKd!m8 zV?e5>%A0`|^o@iWCYjn6kYFYvZ7(aYMSsehEv~1T<~V!Bl#|{Zd#MyEY=M3fN_D6w z&Rem(sCxHdET*vegAM#dIXX6$P0q6?#&Z;k^0Y#|GFmSrx zSwO^DNkYwt=~;mq^UjQg7JcXv`qyg8;6>u-Zdr)L$uK zN&KkBl1iv4=e5PP$vIAWy-vP$PE|AK_74hhfjho!wUBDA&bD%&USx+H0KZ_52HRS`i<0jlV2b+cy$^IrfzK)}B*1;sFrq=pS+kG)I?2a3^)9f%5B$PNp!0;9=L@`ODt2w+S` zTC^~a7%+V#F?<~HdMsoLTd_d|%|Bei`i4OHWd}+u@lpJ+UeqvJ;Lcts&xB|(sR6GP z7je81M=Ij*QIIiv3^5U-h#qqgf2QGfGO-VR#615q_Li0Xxx+t%0zv=M zN3elId}~D05KXsB2oMoMgpWW#a!W{bM39mjWd%iZgg0A*Nn`XGwa`q%^h9`*Nk0({ z{qr8_?+zuz1PwD+|AR4C1Zo!kQ8<)yGN;)icU4oL^9{-KTH}TZ7qO1?)=7igMJ0qC zQ|!Q8v?RzeYxy!flVB=?kU%`mFK0|i`Ihn~gh#j5Yjvqb6sbw~%V(L4Km=D0VU<)h zsi}ptc97IZ^d4ssb~?YaNcc2E$o4*`^-q61dKyuw%km2^SPF-rS?Mua}XlHI6u`# z91cN5wr_v7Z~OFnuM1&|c5XWaMnpb$B0kJRgU3=<-Ae_&#S0ekH*M2&sBa`F50HsM##}jk`5-H=00**pE{3rfFANY>!Ul z*qNiDibwJjLpgkTIT#C>ch@T)VOWF(2SFosNU-@Wj5&zgFP$$KL1-D4%S)cu`YZlK z{7G6PQd&yYc>Y1$17agmlJRnUw_m5Pghn$&pNU+PgPSJ|#EeZw9&qV9`AF0xJS8d$2!!Ol8#6m+XeF&I5_0AGO zaQxYG{<+N;%+GhTPK@HJ8{D5py^uXz$cLv#54_tid)~W!#bH}#cs&T2y$#P7f?qjG z_D!J=ZIS zMmNOw;dr=7Pe&)B?1RzsTSU`+_SY@#BwwXaVI9%~pYf+U)y-l>EV1lMedg=lQ?nUM2TO%?LzSW zFAud)2-QKHcxj-(jvD{@p|&an#exShiWHd8pv00OYfhxuaN)y<5<60Jc1w{(iY9aF zRCw^FQKuZKX`HFfnWTSBcQX99P-eoXD6vwNR5C=+p^7R>%(`_U%9saA%CRQ$?Le9b zuZBoiRbbw!JheV;YLjf?r-zLeerr*#Oub?eM?N~Ws$`=WlOoE#7kR#MP-clU2Jk z?a7T6A0wX#*dg6-vkiMD96c@OhHSl~>=^1X#O4xL`)zsG=zO4JFHu+xSuQ&g&Q%<;yHd+rP zh`b_jpbl&6OP~-J`wOp|BD9D*pC}rww9`s_EHnmd8VsbTtfS1Trp(idtB4AeE-d{@ z^6@?(oiZ}E5aNq1LM3HPi#vxB>}_ zA~xJvh^520oQpNdZhG%T$L^xdBkV%Vk4_2kYpNh&6xk>@4b`M{(&ai;^f^hT)3Caz zuA^vEkhBXcr&7fOGp*dTL=h_X5^|5tL*w&{Q;ROml+{nklQ7FXE&k#&&&hb0(PLTAOZRDJ(h1>ybVEz~=R%zSmuFyWkxLLQpi z;#!t!KbEg`)?8?{e$?Q)rmJ>Bq=gJ{QMd}{mLOCs+PWp6{sWx%s;>=B&dhUBTdzIV zSl(J9$`6e98|2Dbh`5sMeEjaHJDb_*14D-#;KM|RbFi}kzP;082P>3su-jhAIPHR> z7x2&g zOwFWxPC?&w*5?D$S`v>;2RWitwDtzhF%LV0jm2m~7fq8+T1SK-S@#&>}6nfa> zT&R~lEu?`1x#5Y@_BraA4||y@-G*dCK?`EggVYHAVhB01l^Q-Uf(KJpYUF~yq9EiS zoG_4$G^ZfIrG|zM48ak-M4kP7P%U8lq8ceSofH?I0K+w^0j5uSQkPA_XB21PWjEX4Pb{>Fn1T3j zL3TQtMRw5++$7K`H!}(@N9QDGl%p-zQOW*6)tOM9K+!AuX(To5SxWED0BUSOK;=ng;+U=dJhUNDln}-62p1c@%Vthm2n8i_!G;9%Up(!JISIzOve@l& zkpXE~SsE3A;>E1DIABiIAytYD^{l}O-&6a9qoX>tAt-gq>o}Sxp0cG?QOf4U;5opj zMutf>H3~ivbBnyXNSE?aDVd1+smy(>V~j*hOavfSWO%|UiOuH^i{_a#xI?l-!J$zA zVN+@#BNObCi)}DTTZ!1Vk-tdoLjG1ePI5Lij!p!GHU8m@SZv{Y#d^wYp(~VI(DH-> z{KqXC@dZPMCIr~s3UQs1TZZsfgn8x5-;7JYe#n(Md+l4dLWHO_N|lD-fP#Kk1mr_`hp;lcg`zhp9@ zMSv__1VrkO_wj_YrlMEE6gj{XF~olfoJIkj_#a#@Fq3(VKQn62z5-%!bi1rEa+Q-# z!L2QLU%RIGN`$^TxnOj!{wzmXc~&4Jj`KCsSlX8;k-I(=GDhnm!JdUUC;)o6ZP8r3O%Ev8q!=~jEDNn>L5tW%9^%fwpOvp%)Q zbarb_E4tU>`8B7{zzK(TIMcxNoyUGVTKLMk*hVpgvL!-=KpD2$FC+G`Go9>ZAG6!2 z26wBU4L)m-x!lNXb+p_4=`k@x*u_qFwc#D_=!rX_-$;t&U8?!N@_I0 z8mpCF9KnGF7=uHcvgtmzq!G@Lc2d047f1ELcRlf5gB;Sl<~TWDJ#vRv+vFz~PsX!{ z>3xnm)WmkV#~bbb;_8*UKnk}w&Es8UTe>`FKNmTqbs|Ny*TEikv5%eXWjFiT(Vlj-ubu5}cl+Dn9(TFVJ>E8_d(l_!_2i}9 z?i}Cy-Bq4&;Sn*2r+O7&F%ruPw zTK-1=20|q$@kD&^#!!t7JEo}+BN7`8BS`3c3J?tiP^J`-efkh=I_(h!G4AAm7UB>A z2jeZ|z>uf`7aD;JMGPGzLKq~W5k2ph9BV($z#{Mrdh#YfOzv?4<4MvaM*7E*O5$d~ z%2TW)F|33d@N7Q{DH)fs`Wh}rn#3o}WKKpyA~K^Kd2czmQ9xb0U0Ht9C#5B%|jyc$RZ#j7#D&VF(x5enL;z9@ z8%DWQVkEarxWa5As9+v4${8lasrF%@)zHjMPGOs4+O5ht5Q> zQKo{@%1h9+XCZ{480V7u%t$XJhe&Lx45KTiU@%9v6EnfDKLrUdL^MKCa3Ev{b}GWz za{M2$Lu8n8l=Q;+|Im^a4!W1FKboI=!7zgw-Zxmph;UJGDsf@~^{NfBaRDqa{ zEzOgwbTm*6rYd`9Q2mg5RBxNOM@mK$V-5xvGp8)O$5A`uJ`w(~LJ_sv3e6poQI-TX zBz4A$=qye;g3_1~J;RARLgOXW)EfAvWBgKg5|DHri7-YApXi1rR-yj_$3+AwG;U@{ za)Z%8Y35jsR}Com`b2j8q9aJ=QPJ~unvy~M)ZiqPCPcv)p~rvd5uD0KTN8C|z7m?4 zrC$1UTn~mBLx6t1D){sUS(L+CEL1tNhC(nyR|n=|!3E%Y;0(pO(rq z#_$BA?|JToRW(H+YEv60w8S)rRuYgE$3hW5ODMK=SN^{TU2P3Yj^;ZDCdWYK(X3@v z9fV(_m2Mz*Jq6^8iiNfH4_76B`T+L|7Si{cGnUX`V1`PPSN!EgVijzDN0oe zs|H#%hEMsC&FTy`Ophl-0wj|*#sVl&Xs&7hrf8uSY%F(jEkr;XE^GD3PlG1EgaS+C z6Im%UHlf64s>FIt12sHlWX(0O)b@5fmT6w`{v--)I40FAvQtnKi%8aX+Vr+~`8KWY z=Wn@3VC92PeUn1iw^JNeKNWU8KUTSL^eoYGQaP4!2X<=Xvr@OTfq#gArB-62k~FK$ z3QSgf%qL|5=U2o-LS43XQI0~c=GpG8RBE>mMRaIi={tE>_0D!P7ZDXL#&?tTaOz7E zZ4_2F0#he9bM7c_(a_+w)-Uu03sd;vRI__Av?-cc4apVj(zY+autBHf4pTBQ5rkuc zWoAEfeobYZvXN(>agS2#7eF*4Li z6^DyXFt0^h%ZFW&5@)V5K$bmcSwi9!i4)2LB@|QuHhZD?GVhlkO{ABvSp2dSbzkvw zf7vL$*cIayWJqL%%{XlI1`(Z8jd_+_>Q7U7*hObJGUymo3fO@o_+mZRVDI=V5&4fB znVoB~lHr+>k?D|Gn0!NxKR=XFD@!)F_$k8YBSIjPl3AZC_)>?6nz(2!HJEchXeLhP zugv#nc2|XDxhdLcA{J@5X3q*T456ColhmY1t;;xgsU?o+Cz19LOJszibU*IMICjH? zn#eVWw31ROerBSTmbDqZl}G-zYW!4be(Gmg8=8!OEpFciZ+q`dj1oyM2@-WkmaL$I zjzo%JNXOviiqLS8IS9t08Gqp=rGbJ>6bY4f%6KmI6aPhkFIk+;)3e~3U^ti1RMi>F z`L4BTmeV>vJa-uVSd^5v?9| zuvJP&8hZp4f@N;P4o$?hjKi#8YI-Na74j;xHfyg%TAa+pqdYU0#t%v(mi8(tN^O~q zi6o;YLRTf@ZvKjHUDMTiT5S0-o`}1kdgAo{4J0Q6x;GXyIm4gRkU~rw3m=Lv%V8^? zd9jkhqby=jjFnz$yZ#j;qp_$vgGKvxW12as(VJX@hs(Ij z`&MgHstnLD^eA4t&7cv?jEpR9rV2B+l~WX1`sEkdW{54Y?o!A?fH$D_6LOkPoxhMj_#C&J7uqNCrG!=Cvc5Ny6e4EO#kCzIx@cX)DG zuNd7-xZq6b%F7HnhNG+-v=cY8!_q$U8=d)kve`C1=d*<^ID4s91nE=2D;6x5PErAz zll3j@6y1J1{xJvRxykpC<19r6JI+>c{Pv{o(WTE!YLEpz$pfFxcQmku;w02}8vGlHG0^v?q&sHU-o3ebJIQY>u|l% zJA?mlC*ho3x$-aB8ek)fIV8!e2!zG%+3?*nb}zv#BHqR80Q9k9*ZsIBaIVVLs+%e&%Vu=57Aw zaX#n%b$;i0zUO`Z=YhW3U0&x!KIo19=#ifJhThoUn&4s`0+(LU6KxCqJ>z-q&-uKs zbzSS7P73*$*Y!HD$2sZAUe=>Nev1c8C}=>+=2}_*0bKylke%H z(&KUVd5XU51;6U&p4`tF?c;vsLze1+p4c3J!uz}J2f20C`RVaqR?~j)H6QL0pWU0@ zasLqFAHVRIy4wPuf=U0-N8i>Zm+d)Ouxs7s03CEQfAei0-6h}i5C71Y@78C(5Ig_B zoxb8nKc8mb_;X*Sg@4k;kM^<>@_GOEr9a{qeX`NAJz2ix4N<-UJU=zNh$XlyuOI$R zh%`Djl+9xRT{agfC&v zbosJi&6qY_CX7gPCr^|FYcedUQ)SMeOK}n{3iPH#q(f6em6_CP)u&CJYTc^TDA<-+ zCsO@*mMO`mV#kKXYP2WLsa>ziO-eDU)V+NB`uz(yuwaW{HCjDOlq*ujCex0j>Ud`4 zsy^rPWO~FmtHo9q=UijcocuR=;@tQn1$>!!{=3+<+80y|}Xp5iBKsalS@;)V`J;F$1Q8A zmDcZU1O??XOoo z@wOV`PP(w!+Ab~cm1oL3=qchpJn+gd&wTTOQC+;AzhC(D;qDsl{FbOjPjK}`0{Zy$ z*^f_t`Q{s+rTA&8KV9-ew|zdB#JW$s;hlQOef;|G&wuUtLq|X51+aevET91oh`5Q=bwBrKr`iPpgnPUj2X@SqDp zc)}RU@FQ|ShYOJr3k1y2XlHPTHDCxBeyDJV=1UE7 z9Yf5cA7?1URh-cZh&ZG91YwO>?BE|(sE0GYD3CMAqnOknrxrV?(SLMs6?^%mC5>j%k905;1lc1=+euDNgaeqDbjK?e z`42==gQXeSV@zjyQi0InrjcwRPdVZTgJRQ;eVm{lXqwA!yi_1^xFS>wdekK5^P9d@ z2UImBOpa8Qp}l0`GSBc0nie#g6&+<++v>rC!gY!LH0VG7!PR!YbE+2^YbFJ$(05J| zlkaq4Jm=a+zbX;1TD@ytscO}r{+ji!8!4zTELl*w3ihp=t?O1H`p(O$Gn1hG>_6wY zSAhf)Ayu8_O;XA?*m8u0FGZ~;`6*kFB$cn1^lDHWlGLMWq^e&Hj4GowSviEmgSf!v zWDT)gYLv5|yV!y|b}CY9IAfT=ZR$X(D%_`zgBpCDtU#zBM9q@-p_H{qI3IYs3%cd7pfV;kSdPkQo^yA%nFd2t+N zjNMwASfk=4v3&Q7kquM+L8o#JX)>32V;VcTu15Z*l9^0lBnz3n`t%?w3(Vrc0x`FG zy)Z@AisKmD(1Ycm1%c17X6a(Hsv4CooLxBG1uH@FFR7JD zh)mAXtneW1TZIu_XB2{xuH7+?87)$^N)^N)rt@2opSi{qh^6a&Oy=xINN0pQo{_Q|`tl=7;JHsFrsgW_vTNWalrd&E3?3v7rvYd5}DApiOM3`645-}`LWqT7RNdG0q5 z5f(=-rCPP6ca&v$8*zUfVR^OW45Hu>t(9P%=YOAPb650ubOcP8vxjna4;RsD4pJ4Y8nLZ`V{Hbx~C3Zkx16dzVayRY^rRNUx+r6nJEeq*GZX zRhYz6j5iVc)Mq4xQSO#c3rK0+6n;-wS28FNR2YB@He1nEMmY6kYk-5T*JJ7yMxUo- z{_}u=w3lwHpoH6ZgFILfx(9nKwT5koc4}90yk&=bNLz7;SIe|VutbDK=n)QgfAX|U zc}Rn{rciL$baFU-7zRs>_*RmLW8d_L)JF}T@Ox6xh14K{5&>!%I7_;Bh^I(|Nu-7C z^i`u+if71D2AF|L_ktIJNW$=Z>vv(#6oDNvaMkpRvgL$b_EI*8f2!3~hxlrsbbdQX zMaRgDu19@@=!KQYZ>6R~E7eYP_>BiZX!5XAwwQrD1zYm;ir6=TU&Mr4l#T0lSR6-s zcSVJWxP|d(i3k8T6kHQYT<*9`;FXWU299DEii-$WjW|~i35o1jk`-BrIjBRJ z7>N{VWi1qG>n4JIv4AP`MvBmW?nG7~34Aa_SV`HB`Us0*N0hffm>Lgp0bB zk&Om*N5~NjIen)0hxZ3;T?Rr;Ig_tubl4@0W!aT$hm8`qZ}muB-RPDHh!OnoNUS6P z!}bkF#g~?3acwn=I|+Q7^p39NUFX+s{5FHR*lut+kEa!nY6*7mNOC_nfG;e>$j0XR#Bztk!F~3u^9>znV1NWSA+hkl-CD+EqR5& zNt*WceNu&XiphNl;gVCPo2!|7P}zhg_*(48X>sNZW)xUK*G!zJZfmui`RH9#*lBL0 zo$ZvB)m0C_01sQ~5lIzyAaRcvwvwq?h2qJSPk6q031}_a<;sN1UN35fX`syYH3D=PdT1qnh<2_ zK~u#Kuyk#q5O_zqbQE!x^694OmZu5fqxeXcC8|T@$Bb#&rvQqV0(tx1jrRqG)mM3mDyjF?Ypcbk2#Spt zCXlmLV;g2~_y%u~`h39Ihi|xU&Ty)|G^!^Rs1s3e-({D;dWW_Na3;sBQ>2^jMy#y_ zst)<88UdnjH*q!UoH=T(#j1^J7^UopVb|JADfE#!2By{dr;xRH@5*<-AOL!arE+PR zZ5pqrct*^JNjYS1c$$khDy<=LrmZ=3#Wky47ONSi{(bn#jO`kn3@VMV%1MT*uPs_v zo0d}|$c^sCs2EXI7xuqybVStqRYdt)BaN-wan^K1d*rc1 zi%po>b!GNj*&3%ET3j?dPg$psVx@--3wzE+5E*P(?a)Uktf(S;sogtuDr{B)kip3C zes{^l7kd$yq@ge6n_s#L4i}>bK)3!<*o$MTY5x_)Q(VOe0SE<&44L4oW(;4jtB*P* zXJ4>f-gdMT5k}%mMuDq{3Aa}4yRi+tz5z_1lod{&_(``QOCrXt^3Qj5MM&f#%>J9F~-XY)l!|=QMa(K{oBDeTv&c+x{N8!|3C+ERz{EN zpi1R@Z1p6rbcnXsEe9K0VVFlQ`^iDMxL{K`9lG78pA%6_e%DS{*mKvpilc z9c0}lYMpL3y%%V`kV#oSQS{VPP1Og}I))=K@* z9WmG#V?Kus9gV#ql3l<$-OfKsUV~If=R>qtRKNI=HSx1CgflXJz1JUO+UYYGd~MVU zO%Z$iK65d6;S(s?{*l;!of)^C5R`4zr~M$v@f{_CBQatS%x5*J9XH2yA}GS#=HWR4 z0d9Q)+a-fPdGHUHP&XzeH>+VLc(UAP5}Cz<+C6awBDOw#<385%Io6Xk;$tN^bKYQL z*3QD);`|}wg0`pQG`79i(!;ZRQQvx9*6@uss-rc*y%Pq3wv-Yzr>)$~4dKF_;Ev&4 zsH5P8?Ko4D--@B#55wKMA~t^V;hj?u9gZ#G(w*`BH>}Mat@F|>{yJ6z)L2bA-D41U z_79&{;TJwcC?QNyQJ&Ma5dX+#Zl)5mtrFVJ6B{1njc^cpR$tELPtYY0LLLGJMh*Yq z4FAAMH||6J0&z_}F+~dzv0IT8IIiPB6asJt-Txqeq*M}Tx)MZ=vTha=O-``o2|~v9 z8Yy+-qUPi_VN!bT62|QlP=0BFP7v_yYJZMJlE4qwy%J5HGwEh(I~4+{wp}a1=kLFo)pRafEXYYylL5ny|!==TNP(dH1a z?&LwSr?&}JY(qF>lOQj1CdsZVb5kfM&g?V;HH$Ofm*W=HJ>IDk)MifGZ&T|8!PN&) z>e=Yy3q}<=2aqdqZU68>NiKvyaYqc1d?7$v#qI6@$q-ft?6juqy=3n#gb=P30)EgC zp&l>XuXBR#RUc1R z4!3W4+(DiFWWbGHQ(kskC7eR5-;<#=QeA4j;(9ybrPTS9}IC<^cuJJ!auMYpP3z1Z&Ks4qIu}6~b6pfGF z521fsD1C&VVhcflN`d4yu~LL@S6Kf;pihDd9!UERcRECQl$zxOfmZ*p3Po_^C^2na=PVa}8jS!tl z%82ow$cX|gHgZ_-V9155Fm9x_3&BT$9{;&ScrxZkYSeCBG-Obc$&e9A;yfAA)6A7j zla6HClp0m38cpKVx>f7It|h&G1*=i)*?(Qlh6PEMt6Q>hk-9}&)oxX`{&(-@ZOd10 zROV?mo~M~jL) z7ottF1!aEuCU4}%+nK+jzDc{|M~;^N(f+(O_~pDJj|yA}d+SHqmh)Ik{c&_q>@{z0 z+>H76KhrI#-?R!^Bk#`Hu~&!qk9ATFhtzRyEaehw@4dt1!w9_|XXFhdBlo*eAO*Gl3R1BKnOZF|yTbbm zF#PHQY{$9|gHJIY#~PDNyy)Ukt}`Xu63jQ#JX0(+txI@tQTWc4?E#d4Cpn^oy z$`Ew2yRE!Cqbp=QK1t2axk4K{)T&7bqNc)sIFd=DLN(KMJpnnos#5r_`$s)ugY1&K zV?*%cv-GN}R;f1E;>e?~R&A=dBoXBZwrzc-F-dPZ;}E)UHUu@q1KMM1-TQiF>o*pk zo6*r4mxUBLnx0hz&8{fRv@C1k((Jyy?b^pfSe0>MgVOvcpF1mQ zxNmT3&%76L;&;S<5@(Jy(4iDvUZOj!SHOGI#@%(o5l0hXyjwIKMky7g*Xysfntbg0 z$~^F`h}(MpD$7I1JY$U>N8Qz~A0;+YlBrbcuKvlVtsFv}SO&Uir=xa^=rVPlA8EmI zwm)h4m2Nrz|H(;zetMb!>F2W6Fs)`q1E9?w1HiwG$WV%#k?IsxzpYJWDRxl{8{82T znb65$Hsi-Z)Da48{XzhrY6?{zShrSP28OBH+d_n)h?`6)gH?%+03JlZrv2ns*1{9V zszwvp1@Ipp{8$JZ#26yJrBI;aNaCh+mni0LLg>PXxwh6i;Am$c?wTEFt{A~H(Z*g) z8I@<$6+8)rg?J-dUDDE(s1I>TAWUS49g9^#!GO+jXXLa2W93zqkXb}{t#3m1K;;EApWUN_$%UB3|BuT9?*gFOQlo_ zRh>Huf zyHu!rkIbW-=%c&5opPX^G^PCJ_0d-56r=o$Unc`NHJPdsm7bgvE5AvznITo3uH+dk zPxq&SB=R4I2*WVk@s+@TgKHeYLw${ zu7=4ggTQqyjV#0#6BNj5_xRb)Y>sII8DSTT zmpsxO$r=jEAzQIhkl0~_svpydZI_7Kn@-c90zv3ykQH16O{bk)~ww*-dGlb-Gt2N zv>~xC`w&T5*J>B1a7z9RmR^Z7GZm3BhoR}sN_!_P`IM+b-7r#TDknYWX_h9YQ;VM} zR89h_XCG$kuG;Y%ZB1(+wcC5H70y!j$I}4I7 zHMW71SRiFvT%}k!f>NCz8I( zY;smh@!Yqi^hlz!Oq7Tsn>=(0i=_)2%4AiZg<=XlHIn8p zNBYk};c;-u%S9s!dAoJ~h%=BEBSW*a(jaAut3xyCkGW7QlzFqn+KiJAeXFoewzF`t zGdEXDg*aH0QT|I^w!bkgFn_Rhno%>kCt9NAlV^7E%R<~VF2#@AKfSPs$KAiAKJdd( z6O+1y3W(u41G}bqNR1@|Mjrsj@P_@WhhRVOr8~DF{y9#~> z1sN%kt_ljWz!l z@P6xZC`607!)LN*q}DtuJ+BzRfzHW;`<9N79IMzE3)z9RT;2!>k4A`o3#b$H()Y=9 zkBG&FSP6u$M3ef<$z=t5dtz&+2An{y-V==ooXF1_u>1;wQjbbS?mE8+kKQgl8QC0c zIj0!b{0YSDqF!GBFUj=X&Q%IYU)ZYNck+TBrL9_bP`b?rjTj+a+H40?ky^ zbAx-@>h5VN1(ojAQ#;$EyyVi5R@0l~eyO_$PfU5grO4It_roWC@r{4{rSik~$p4>| zy|#SjNB{WB|DE)$e|^Lb*PGYpe)qlqeeh>8{4h5C_(yF1INcrm!51<5-T!|0+bD_f zcfR_89XKLz~2?+ZZ@R3``Ayb?@766CTv0{d_pLU!s63C+A}^XTq+WjzARif zDGVj|yTbRQ!qy``F?6>d+`=xb3ishX=R*|alLMzi1_XmZIK&P){6FujLy4QiSSrKW zo5Gxv$s?In+^)a-g_rL=*;8#g>sTZTym!dAowj8}I&^My~;^ zC6krOBS*?f$NKxLYiysG0y}?0hIBL~w3|n3bUqHm7|gMWcC4U#lsJm}8+fd~AEKAM z(LLwmD+p=F3eiV)Or22t8?s=)h2(^WJV$Dgp(Vq{nCdxtWQpTA8FxWLGV7k{8bbL> zK0qoyUi_bxY$44Pz?l5Lnj|+=l*Kpk17|}WUpbF>o3nOI9N);BY<$I7;zp!2#5akm zjXb%5ID?4Vpno*S=i>~A#7d1+4~Y622l*DSDaoR7%IvU@DziU+{21-1N>=f=vh0l| zGs>8Xs+Ou7h1^QD6b7oq%iB52r&PyHoJN!CJ&yDmy)3A!6inQ~K>oA~%h@5VmomxX zQ4BQ_#vZ)M0Mf1CX7-K$ z0V>!yuRO^yF;MvYt-rX>yK$8d9j=G`t-P>L6N$Bj;4F>k{?GsXO?|5pM3bmSG>KI~ z$<$zx)0`I7WC~cpj_Wil?feez1Uc6X#{+21bZk28fKJyMiR;mc84bm#bh;^ZJF(GA z&4j5abmRJ65>RLUW+Z{979EY zG|KulVM&~YaHQSLGbRPj@~Aj?z=>Exw>o8-Q$f#J+cizy3K89yL-W<2Gz ziK4(l`Gvj>WW1$7H)MU@KvK?bAXuUPxdPBqb!dmvW&RPHjz zkzr34wbpahA8=jP6rI-LVpk0fjAS*6ujCA8$rQOrk%lU#q!`uHON<}=%^*$G?eQjD zi&d~>S4R!Z@0r+7Of~h89g(0^@tU2)tSz^cv&DLpKHa8Yu-LxDJV2_y4RO=JJXA&V z8jXzzj&(;!l~j)1K0oD4>`0u4o!LnZ*^(_y=84n0V4PbJh@zMk+d(j?9IYyIR!&=m zwkcJ#kc}h}5mAwsx6+c6d>wKPCsIY24aJF_TiOkZDg53`RTfv2oU^0>KSOvzVzR-X#`8Zc_OV`Of979Q1_%N4&jn~o?-F~u2b4?2&a$O(& z2HM?_3ONyNi^hiF7d^{7QX-3ltxR$(IJCV|ij&(VwMya=xh3+S8=9=~Dw_BaZvO1EN+DB3%a9o=)t(9gL0D6P++An5GGWM9ZGGS0 ztO}GG%Dxa|>5>VTI0_O0DQ())?YonK!CV}D6w3VyFm5Vr35!xTBCD}yekEO?v>GC^ z%ckPc)!jA1S+U?uM9>f_9*ayki9WoC1>mlSIG zQr;?JBTjT+swQJoW)B*M$*|Uo=mlnK#p)v}W@!VDkx;%BDpyvOC}DLz*0`r**%q6~ zXBO6yq@)`ZZHaGj?5cs zt?GWNNlW@iO-`aQU22f>y_YnYmSW|u4(joyVYIF;v5xOI0&CE;<(VXF>}EQtIBSC< zX5X0_p5z3#36W;NZ=9i%)+wN{z)f*IC6Tk9l zwsO|H*zDhgzC$zqn$9gKCqiQeTswXKKRx+e{-T`_PaxHv&-aax`3sL2uNsHWN~Ob{ z6{F}<6`mE}YIS|xioW6HPGOQR2_|>I;imFPF<(8}Tu|C6bPhCfE#TSU^nuuf8Z;P5Cq-ncuLRh3=;@zpevH#2)QC; zGjkGubWw$K)`yGk=F!`XZuBNg3;eCOsLpZh3JF%BFQrcnDh@AqoJQy*EQ+!)BCZtv zY%tp{ln;R`UvKfJ(x<%;TzZ-88Lg1(=w=(yS;)oFz74qHa%|(Nu+q-fC~gSkU9!HN zs{Xp?YzhjQ9?>SCT-Y9-Xjvcn^h(&t zbBAC9vIz@(w;%~SJr@IegrNIb2QJN!1Nu4%ub=v@s`|hZ2)~Ner_=qaw~_5VU_M`& z=}j$DJ}&_SsqS)8IE(BH! z9@IIq<-b*Cr$)7Su;RwFORYNnx3;C*g5D zU3oc-rdNiy*j=gB@g=vzrcQYl%_LbKsXg=>dra;3oqwL`Cm??dF4!Rcg;o_sTnNUg zRFnYcQG<*pj(uaGWgDuaU~k+()D?=$alb7J zr6)}N6{uiT%_vD@HeSVNN!|r1)t)CEN}x{}WtAFSn{n3JXMZLnXsH=Fqok0P#(L{& zK7J|}8&zI(r6R1UWE-RbCdFi93}*U|h^}f@q(W3$iKTuZI@A6oOql)hp{CfH8|GO@ zmeeYXG@j*TNl{vKMwLO`!UFdp83>&YtA&`g#xHeyX>>mUc2qL?!~Ckfs3t`{m$PH z6+X=5BiB4r*pofI%;=lnGW;Zo&$R0EtG^)r^*6o0MFCTz9GmKyy{y4Mttk#>EArg- z6yhT9B_(|aq?!McHm!eDFlO%i&H|%XK#VmaK4_|#%Fg7TH9ZVwRu~~}=HZ?zh0uBI zi`jU(ha5T4WP&mq2@dne9v%)QFcX|%*ER?OhKX$CC9n%FfoTmj8hP$$h9c0 z2Y?X5*_P@gx5(A3gGZx?MILy=D*CWySj=9K{zO8>BvR0eXK7>f5*CXc{H7k|IfFc` zM8XRJ$0YYr86W*<73P_wb;lzj%MRm;6e4Fd-$>cbMj}Z{LeUzR{Nw-9xHwA^WG0wA z3n+UsN~5W+l%nM14>cLeNwSh@s)QwO>ftb)1#u$Q`fPWx`|?smO8DoA9E;I2CdR znq;$Q9UR*;=~x^I(JEEv+zCJS$&_b>AXK!{nT7TVDSaLUN7Q7SqlSYbR0XYhZTltI ztjVkkw#K0aB^qF)M$L;BjiVFg$fJ1vVi1DjvzG(&=*Vp5&!3@mVEon1CZ8GC>fRN)$F65kZaEFaq{Mj0Ac6lsR6976zJsdCZEP_JlW&1qOc zTBeNB=3`P3DPrZCBERaDu?HooLopgxkwJxJm!0cinVPc_IaZNwjOP@wYC*0l5VbLb zDq*1+RP}B4v8V(sW?%Np*oroB2|TSK&;hG*&?1HhIfHLW>B_V`lt08RiML!PhlWuD z7g^$n7Jq^fAQ_~$B>}E*^RWIK8M#GAiY%yMgSHc`mUpsH&F4qRl$-CWY`yoSjS2D9 zrVKszBGT<-XI^8Fk^N3&!wP}0Uk4jF9m{CM z21)UiINXu_xL6{?y_br!RAcB$SHVE$u}UkX4iSfC$S$<6YIi)Tgo1Xy!sM~jD)QE- z5-y+`0q6&t+@Z>%=pQMeSd!`NTUgcW&Mv{JMdYv$T&#~R*B#V76(TCSPV2mDZt#^k zOlBkLnZm5;ZB{ZIxf#mleQLeHDSpwK=T7xO5 z3RqzbGE=F*NjXX>3L&iPFzR-uSRUz2Oae-qJOIfL<87(a=H|5AAllguNhz6NW6QrV z>%(1^QAC<`OVF&!K5yZ*ukTacL}oeH1urRgikm8L6xm8K?Cv zq^S6r*tHU5n;u$-rO&@?$ayTrLy1WUAm8Wx(_zqvN##oDbstq|pm4Mf>sgoyUdW4x zLbVk{-7SOz3KNIenl+>xBSGOpPyY}8@&#S&S=YT%(BdLhVZ$jND8a*qS$OeAz$hSVECnRO7|qEOqrn%w{R1M($^kMVh^$#>CCY(xk6qxRk=acJy5NiS zMKX!vTR7u-T;W3SB0inq=ZzE?Wd|g>;lw>-PW0Udf}t2Cp;J{8N8I5z3>-?!`TfJf zaoE?PUm(7e6(o#C)S>_F6|$|tH*AEmX~=~I#jZ(B=Y66=`XfY~#cPm?BD!27_MZAl z%1MNw|3Mq*Nk#}TWIsj@+yK-j4jZ6IMP68#p5a*+{!v_+BuZvvUhP~)W&X=FT2ol< zBu|1RORAtu&Sbake1k0Y|KOht9yHAf{A9MWtbe1+D4gA|hZyAVdqAWyyWV zraKCO~6ZrhA-f;xO=xmaaDnT#S(XG>w{ zi^QZpe$;oQBTg#W`F-W~T?SBY8uh4WLRjetLMR8xXQIB=u%v}k1dK4isX|I6o`Rs7 zUZnuEXnd2sQNuBoOab><)?g1i-Wo#TP@Z8s5+KuePEixmvGj`d2%Qk z9>g|k+GMg0k&vi@Ce4Xa^5{OA(`F(hjs6;P6{?P=nT)Cgnp&!|VJc~v z4U{U;SY4r;X46?&k^npwPR`qqR$`QvXrH3Rw;qT@ZoRMPJUiUz?4HNva3tg z>RVl?#py(uLg+dAr575J%*us@YzBBXQlQc+;g$YlvLb54wrtX7oR=|bUP9r&YUW7h z1j#Og_YkZB^(wabswYi^9Gu=Rna3~+lhkD)9vK81$U_LtCpFlDKxXJ8%B|jp(4E{Y zhXzb>T0ySHEo_{J$7UMgSmcX%p>W6?3yCtBQJ>cv`&?5fok>4B7kB$dNr z9L9D~fo#Z`;bbRcByMg}rr<6F;kH{{7y@+dX@|lbOZ4u)j>JC*-+;YM$ZAp+G zDsF6A57K1=lEilG?ulU`>(bzvIc@Ep?klD4P=H@$4e82`?K!yy$Z#xTV(&?OVtz{R zn{FT*P~cYbs?iEfZs=U=oYW+|ljsEn4tA+j|B^?fxEe@Euw^=(UDO*6Wmay?Sz0{ETkQpT95IR<3J%_blOblX5iJb+ z#(|s#O?h2TXt1T+n^>@+2Rq&WeT9oqg*$4CNrI3QaJcumxxvf@~WD)k%E=Se&In zeX&I>vba4kB2^9(7oUIrl!es?YNGl9OGh9J(x{B5f7juzX z7?Z&e0v1rRftV>PL$K0F^t2Q@_5QKy{xA=pR-Qzi*Ec&-BD}R z9(2pFi$Y{fICl%5p)zA^akS+~ll03-=VV1MOv5ztlyb2PYSm77v#(mR+JKoR=j93- zL`afgBV6=Or(#~Nvw(sAY?QwA&y>?rH+3s(teG)qEK2VnSriWogcMIiRO3_^g^Lku z7*BuW*hF;*E=1dkkCS8tM@y;awdg_dtcy+*DTWMigAh55E{@6AjIA98DuckUDbos7h? zM*-#b-Vis_7&mh>He_q}QkiylgLim84)ZiuYwg>0gZ6ie_jXTQkjfNz)!a`6#gEDaCds+n&_1POW(Lz)gX(7^b>vo7c zn}&xthtqgF+PKD&&4`CNn2&kYFjb11+?hiSo7XIG3l?*CIh?sJ$Hf$pF z$hpxbO_88`cZ-*lN*xoLK}w>dne)op9})HwE)&w~hb=L0>yiZXqK$gbd7kf#r^9EO zyKH)kI{uoQIBKJ~o0sOPvpB0~_)cy3^K`nZhY_u3wyWa}JMGdtnUfWW6FE(9V)N|g zgj&5yx0tilp|9!*x{73Q7H2Pb(2T@OTsv(&{FHY)GqwA-Gkk09JG%RKz2j=CbNt(=`^ba*jl(;h zpZtuMI=kyT=EOX*n>)RKJa_l|*_@Za?7ZlP7^ZciVQDAJJ=(O}L_u~Q)Sv+Sm^TfIvGZ?!F0?J0U!`yykeSGY5I^9sGc`6~jF z@Y++WRJkZa-8zAWwJfSQ=Oww@$M|98{aM9*WOD4o)_IFEp*uR$rvmUyn?2p*J>;K# zVZA#4iaXn*edNQv+spmS>s2l9{f5*-TQu{F0Emp1Js}TNCa2w6r!5v1TfNl<#2vC$ zQ-~EqwkWn-B*U{x`GHUjduG2gSYDJnM^<536y+bhdH?;Kd;7P0W%9QX%;}=$qy3vp z|2!?w=j(Z6M}Jr1rP{-KN5*31AwT$gHM|8r%zt_IcX{{YJVt)y+h0GTW?mTnzLa{B zZPCJ_jhi0o0Yr!phOGTM@DE`KE9$6G6V@n%9BY^UMYQG+;y){fI0^jnt>G<*1f5Aj zcoJpGlnbeq6sQs=%8%4SSu}`nVM#gR{!xpCAf?2bIZeidDKJFEJpXn9MOyJG(WFq3 zCas$Cs>-ZcslKc_)#%ZuVPk&nI+g2KvRb*WJ!#f#*Mw@%TJ?JODP6g5;p%n!H|$or zU+tn5Z1`$hz;OZZJ)Boeh?nbKefv7^PSb5Q)?jlDzwQ(i z>%au}GHpP}B($wT&k9@+!w1h|a6r>I>o7wMANx>1#4?m^HV_NcEV&i`tFW;Ca=S3Z z4?$e3Ed+0@alQ@x15m~tQBz1bnjrLpDFlw=3_`+UBoQS;(6O(jqT-VzHszUN779C@iv_Dy*vPzVs%4()9o$PWuhA2{S*RZ|_hrNSN zV#&;tB=Yu7WRo>epzwBS1T@0*Ka-(KWe5$=_ZN9?afLYQ#N`usdW7jKN_hn zSx8e4-caGd9Oh5dS7Sv{!;HILIP8SQ&h=xETW$C>{)VxJxa#lBR(or_r~W!?MI-Lm zFS5_Jk?Vl(#<0B*des)~3MuZhOQdS%E-O8)d-fY&74n%-pu;kkjf=X4)5w&Xf~jV5 z$#hoK$oG!h-yIK65o<{w9~|Mg%T5iqx?#+F@Vi}faCY1?o?Y-BN9}OB}&MXEI1a=WWK5iu#;6dUKSsQd(x5*x&>q zo;No-eH3Ded;%Dhf)pn_1e}R0fN}<&jE*mv@^(Y#Ou!Rdl8vkQ$rBqjB+64boIj-UB-y4 zH$|>z=L-_|7V;05aM3|`3;~kZhmfV1PCDL^;0rCXMID)Mjf{b!+zNItCtj~}gs~A5 zn|MP<(u!ftOQGSUHy=yFD~FF7k@pBW#YQz!ZIql~h%P3{O9oMEw?d%~UCF^7CedT6 z9OAqXg}v7`h7MCg2r^y~$bW>#J_s3_FR@}iF#hr+MWTjCu2miBEDJwpaECR@_z!gb z1CE=Mqb)g8$2%7AB-E*iDNYS^p_Me{DF=$TM?TM!qLgAS_0~~-g_56qo2c~y>d%Y*Gk2?U z6e+XkmW7t&6{sGi(@2lnRE9bg zs!^?!P^4N_tD;0`4LKSX?emkX(k-c96)R1{I##h3wMjhUs9D*%R<^#isUPtwT}R;W9S3?JFs9m8(%9 zVu~xsRVHl@OI`QAcc{puQhQ8m-G)2_b@M1k(*Q$-d2FL0#587ite{{1YUIDY>1&3p zP@nP+F1vvZ*(=ct!|xg|ykYdMcehJUxj+$2+5;?nNnGL@Q71Y$LBxPXE1X#DKqK`a z;2Gp`CjtWISXAoiUubOO1IyPw^i>dbobh720#L#kjA4bV#}6k7rE;jr zJRqU1lf9JTv{43|{v$mMW=XV~5Caq;_HD^6@(Rw(G0x5Msj|4HHD?8X)6K}@E1vC4 zC5kjFC0tGk8_;nlWGooR_b@b;`^Ovm?D>65vrkj{Y@e+*c+pu#ayo@vv>m&-(~apf zUX5AlY&BZXh&J_20F6~vJNmwyC^f8ue2`Xi8qWVv^P$nTIKAT3R`d+4u-6hE2rlGJ z3pq3=!g1rjSiv2yfbloJuMFcDTR~kYheuAwSa);$iKf(4FL&{H3)Y)FCFd%|xaw0-be zzBiM-Cy0ibq!&Kl;uvS}vCgtVyiN_Ur^LSiUbB)=$2pc^l^UXu4iyYRi^=HBeLWFN7+v7SV zbx;0&qeJa`)c=DDMOt|Esn59A5C8fqd47Ig-Ja}UWc#_+IngG*c%Mw$zrD}%(NZ@+ z)mtm%#Si|J8d45gkXzUI&+NdZ)8^z11W?u9tnw}|ofr?!q{Ke_56||hDEJ}8?x6so zjz^?!L8#8$07IR`PXWu00Z}6I9HPxm;sEbU61FY??L+a_0`1g}?c8pwP7trG?-vMx zO56$5;DP4cOc=_}84BS}J}oAUjdb3G0-?g)Tu1DXLL&I?8<4^6)(G$d?}C;l_A&x_{Njj0*+Z{&9In0j$s z+~OmKus4jbAz*48u~7s=VkBI#%DjqAMv*-lVT@K`3)F%83KAY2ig{?0+xnD2l( z?*pwTW&m*V4xkS2Z}spH6pv5rjL#AEu=c)T6(CYN1nu7zBm@Hufbvi$c~TyIQYDTO z^e*8coepM1F(J)u6Ge>_QLOuvE+@f{6@gMHUvVcv?~O4;BqeQ zu*!S`Lx^r32hcFV#V3GbBq{D(bZzaBEHE{qFJ&;|_;G0dF=;{)H08%8l`j_9NzSxv zE`04H%A+9{A|THMC_)3aTwFxrHpvX3C@t*ltb!4~0zFcB79H;yJ5= zE3+dZgbgvPY**& zhbRd&CT7AD(6Um#GxUtY1&{O0j&nt=;dHq3N}kRRS>iWf;v>wYF&DHY>(UMzLpZKz z>LhdKFjGMUlr{&{5~)(?R!`!P>_y)YN7K_U5x_SO;yKMy9j{NER%bWqggj5#0apTg^O)2#e&jdcO&LjklL9qkcqDp;prT3 zK1pX3Rt|*UH!Ibq(bo4#mCj);J?wGVPXEQlP=SU^BK|{<=osI(=kRqV9*8T$R zfIqLrjYGro zO{DfF_A@3@(^&O1%>>XHim7RrvC%N{`b_QAq*X+PZ3TNnY;9&Bi*pO=;TPaxTh%ix z$Yi>Plv}yVUrqH)evWe>cJZt&yU_M;8%<36wc|vTGVxDvp$1DY(U9_X1)i)<0TF4W9F26?Y>;$*Ht6=V~SvUtB2 zYK8WFLSbri&3nW5F=>J=$#rL&l1Gw`4NCJd`<8UfL1dsnrI(~_&k7#17;!hP#^a3t78xmXelLI6Ja7riorX;guE6s8dJeSSjR z40%Cj(dhV>0GT*{zfpfZFH0NnYMC^|pwdA-_$D&BNzr(RZDvnUEeENsy!JI-1$mPw zw;Xtr8p?sbU@Bih?wOFd(frQ+WY~Rp^fNU=HuJ3TLV$E%k~-$f3It?>dGsIPw889% zB!PHvGZg#eXIOPNq1@~iW(FbRr&q&|idAoV!8dV_H;j8(TaKlhDVJWA5BQp|E4NsB zCH42dNuJ$Uoo(jRH1mwfg5cP|J(JIznYfM9S!lFapf6%&4x0VKka6zHTK|C!-nKyH zQ7#o^kmNumrw!;5xgq|H3?bM+9srO!Y@r*GNu(*dq|5bVllhvwrK6dSNiWf6huD&d zxGqaKE{T*Q#D}4cvL_q(Xeu%`$3Ellk;g^YA>Q_{SYkPSNIAdYBEj^f1So&Q)|H141E7*rq5Gu;R%^x5R* zZl@t`Y3TP>nG|i+(6J>=g(JJ?CUw#RDYY?C`F^hHkTH5~)~cUPPs_0-wrU)m4OtH? zxTm?0>)OvKSN>eyZa`Bxe(;Q4%`v07D(H4P>!Q27nh{bPLyqf};((hAQR23%qa8M_ zxRX|@Nk?4rxck@%$<9Ln?qQfbVKZ16tc46kpo8Mxgdg6RZr>+`;hI-8Dt!`ZS}^-)>eN! zZDH-mQ!vT#n6`Tsi${8!sugH4njuVk8@<*LvV6^CQqA~E%HPN0(oD?Fe4c++B_2Gw zB%Jxy{yYW|O!E$naj<*SrhE0OdqAyP&!;7rNWAE}HF(>+C=vY4FQUj|*4)aR&8#oI zM_K@pyhbuRqcjWC{VJqP%+o&|)JcrURvN0%wq2cS(-&p4QvI#ms=Y!T)?;1PQw!)G z4At`wqDvim$7|JhJ;`Ec#AaRChn?6V%esbDw^&`Zl)c!S-PxZV+M`|Cr=8lX-P*4m z+p}HUx1HO&-P^yth)F9J!JXX8-P{Yy1p%7YkUd0NT&$S=c4C#4WWp&;P-p@-bGq-X6 zU?bzb8$9rRYxNyNGB3a^dJEZI>quUzCVomQ-c~OD-h*(os2i6oxozr5~w2vZO;ia2Uk2$*|){kOgz@O=y9 zJAOGF=Nhls5mA4yKDT|E>q--%#nJGGi%N zXHvrK%YbO_FQxA(iYn#=hVls;6|1Tg3qZJw*FUD`b!2&DD(9Pu>wEg{L1_M8qO6|` zD)*K2klB-xS?baUf4B-C?lXhna>=2-g7FUuW4Ho?0Lk)y9+NLxu0^JD1l>1=Z79q`VAod2^>hUpuvG55*}PwFrh+*0v$qR z=rF{@ix>$?%*e5$$A}5fpriIrm?VDGE;USOMO{je4qK+&C{QG|o3|PvOlWB2&2qFF zJ^Ytv=FpbTBw74dvE?oVA*jsTcGKA{s7q1a+6Mx=)k-r`Tp~JKu)-uxXglNXZ1E=;R03%w zXNDXRQqX69!Bdce2i^1;Mw+!{WoJajNRXIg-n1QPzYxOTX9+RdUtfk+I_E%fj)`YP z2+G;qKyspKrZa_jxs`Xe$rOriP9b2BUy^b)XlHV2r%(u?@;53`s$K|YqCK)D%ww*l zDkxT#ZuROwz4E6LdIGg)khLIn`K3}3H9O@_vDVmWuKwXF=bHDax>ZtH=}HiSt8kVF znN@L1>!h;QNs_O4GD;?uYZ*#d2rZ3BlcED3dE&t@A~~eP3O8KiMhhqDk&_=`e2~UK z1{q_C5<|>zk%WGX9LWSk|D8D084_suz=L--Zcso#KmDLCPV%k0uFk7qY(&X^J0^Tt22HCiKLuCj$XOq&iB>ch&! z`ah7Lmua6VsU#kCbP*gP0&dgv>5G7CZrBtWH+Pv3TM_1^o156pIw)Qy{^gl6J+IE}>~WGAUKQQ1V2>#7T(Jdmk0CVv*Su z$}3JZ->d{ikfOMUg-+@r@}5VhCM84=))2;_coeRHQ3H#Y8&(LIGpK*8&x|`^AqgFV zpgz_pU|=d=Oa8LOp*&9@N32>xNJy>Ay^KA{LkJ56Qb;-#EQS$NSrxOl!@0-=loQ+J zfvjPw6GDlVvf5)2S2-Bl;Zcc0H2%yfIiku1`jSQiJ0JpsNx>gAuz@xbV2_a5u^)Bh zm=JuXGwmi!kog8j!~Eq2QFuXX66!-B>7|)wVmB3rC|A@VP3K5*3q=(3Xoh)89)7Wg zZ*0d8F$)2J>V+d*elST}g4Cfbf}l_B({Mm^h+k4w#c`5^RD)@c#u#Tw)tIw$Xj&*N zAwp4s;HEHW)F(O!vOfkbb60I5phV!QP%>5&c?T&Uo1O>Kmqf8qT@j&<3^JIcUCt{P zCCa8g8cyQ@YI)VfoLl#wRnw(ovG7G4|lHt{XfAyd=dsNM9-l%^xG8tig zw5!I#m6@8wSab(dp$qFZxn-#6u4~@hImqAZR z^O`DC_@Og(yb7NJu;-F3qX^Zq%ZKm#=QIO~9)%QCgeVb4m8+WNZGKSzjijndA0l5I zeK(WK+f8!Yf@bE5(YZ)m-#`ROWm);tq$~PpH_2DTFY45|HY;iq(wc!{#W(fYq@!DI!7O8rH>k-Sx58Tx?-0sZ9~V7S_y&J=GQ3 zkCJ6J0XzPQq|h=YFtk{PQs$Ma^<;?5{WLIO@0VzSN(7vnF}1E~%oyRdG1%Z9Wxy!B zo-OVeafT{bbNPluY_D-z$6NJvPa4UGUG_{|eDfvwD8}_UeADB7G_fKL6`xX9mM-kE z&-`HLD>cW#g!b{KBNFmp?wZ`?#JGDr{cB!rRF;qOpU;0GfYChaKE z1{JHZ*ug;9AP>nvZ3i+dT*`;SQaP7{G;Apcm|P_gD%_(xJwl1#2G=&W5{wOAgPEqO z%li_&%INvKLKBQ(5nBKe)$( z$@Xr){tM^6s@PIi&Ue&)2)NJ5zgJ7}`Qp<1$xI|U*uVU}2Y-3@9eoEAC}9haWHdLC zcf?VEUG_pZLlBaeFIE68f5#H|cM#yjJudM>85Cmc#e8m*SXL)>W>-vMr(1*tS%L*y zdIfg#c6B4hP0waQC>VBYMuRQLY=vVh?NA#mS9iBidlC^;GbJa~Hx^%lF1j>Y{wTl7t3ve9s17;F5e56fNt*ge7={E0tw9aQkO^QR7Ix8n1I2}O)`Q4EKjQ&MIME0PsW`*~ zkxyk7X!t^E=#7XGlCw8!lQB}zaTy4qaf4@Q0i=$u(T*<@0vZ_|9Ep&zWKtD0h!IwZ z`GFwM@`eOa90K8zJ3*7|hybdT7YTL?_$ZDFafu+LiTMN`p66IhX_IS0IAjrzHiL@! zMIif_Ra2=?AXye=_m4rRZx^JG_GlnxIhSb(j9}$hh=G=~btU9f5DK{!4XGjf7#H1F z6OR#e9B5q$(`?xYgCbK{X69@LgpF&sgH&lGDp(}d_>I=aSC9Vbjar9wdqtUD=b1Z_ zn!JQWs@a<1_;juro3c5Zv{{?9$q%e)n;nr^xssc@`J1(gn@|Uw#95q<=OqhQoXWYJ z%-Ni?`Iyc*nW7n;S4W)}L6p{sb_~%`+1Z`m`JJnznBd8qcQTyd*`3&Vp6VH13wUSi z`JV6@pGNX^&Z$^ux122aox=H^%*37Y`JVu~n&ugx1WKLzS)kdeL(+ku4BDXhd7lp2 zocS4{%Gsa4N1+&+p&GiO9NM8C`k^2iq9Qt?BwC^-dZH+rqAI$gEZU+j`l2uzqcS?9 zG+LuJdZRd+qx=b>I@+T?`lCP^q&rHVky)EO>YWo>q5emTnyERVPI{WOxunktrRNEu zof(@}iZU&lq(UlAs>z#JNSks{8OShs@;Ro0X{OPMrZ-Wh?%7OU$EAaXpmGYFb;_g+ zbaqclq;V=Ed}^dr3Z7XCSF)+6SGuBvDx?PCrKt&~#0iu+^`DTMUe-COzUf!f7N{&% zpm(a9o$7V1`Ki1XrQ|53u4$^&DW#&Sohs&!E}E!{x@R&Mo8WbuY*a0X@TTY4GZdJs z*2$~5s;ih9L7M7Exfw3y<&mJlALTGT>{Ve08g=6Kbv!qv#flead5;s3jLVuURPrSY z+O6vnuH;#F%O`a1r3=8^!*hDz%>a3l|{uO+2TliA0*K!Z>`m6vGt+HxJ{+UqX z8Xi$&N0UgY1DjQnQLcy=8f&s=4a*;wAw~@Q73T`EP`8)tsuPhEUbse@u=#y=wyF+V zt*ObVu34)XVX_hzpe);*FUxhA`loC%WT0_|wzog!8gy~;DgN52`5CjSxvI1nsS9B? zSW~W))te$zvGeLHo#(R@CMO@ecEHCUtB@}hYp=F~0QmYY>arDCyR1?Rb)oV@0XwSY zY7)dC2^*_DFfwRZC29gmdAqrSAG_)|B zA@L2T_ElZS28mf#1BJcemM#AW4uWCfaT5NsI!10`!-q-31;HBp*l`SIx9HTp|FFYTnMFPf8rP8> zuJ$)!I!05hm{y!?S&R`%OU2vS7J8C~pY;#$pjn`CELEW_ii0rWhbUmBL+|q@6qRp7 zcPMOu41W_p2Wp9GyeD-?ill;cS|KIxc8dh@G7mU24EM&OajBeURVQL4NJ}ChGB0__ zY(=4k10`ppX1x*-$b-zmA`}?E@F38+Ypy&;wPhtKJj#T@a^&^N-|Hl^e7aPl%2>0X zEwu^{c)Wh9r3eu!s*%D^R}r|3%nu>Vtwq7593{=1!5b0C1~W++GB5jwBk9#@`B5-C z)R?xB!iRe=UArg;EB?ue2+zM@$y$Ds$r^{i9cLa$i>TR^10R!OzAc$H}59$*Iuj6m;G~#SaI#wYWnPx?^G**I706i0%^nm4qh^vrNw5whQ6elK)(s~qqel~r& z2bVMfG!bDxzqn~*Q#NO_xS5l6C3FCt995$XO}O$XDI6F`hg{(MCP2NPL1i%*Q(r@& zCNjwxVx1pi?XF$D5%pz&DPh)%L(JDBOG-v9HkgAerg9KmJ7h%8vUW&%{Tcgt%;4sR zF15|y@YBC_pv)nZ0sb^QGDSxn=*iY*x#O|UeIpcM^FG~EKSVRbQoSE5UDe&%+N>Km zNo`$GGaai zvpbla$@|9Kz+>9atvS){5tYj~{{V*9MJnq7LJgZpa{`OWti@g%8eo!I$b%+0haOg- zk>vFz#23_`E#Bn4YJ1dsBlJjDa()}JOVp%vnIv4$jIe9ikqr3?dS?*yM7{B&W~MB1 zoFNs148a_(M`Udy`t1_Y)z}#fvO%^HbImv(o{QwHOt@TxBC--ucU*EG~gRry@K z7J}{}Q<()F{&>RT^Wcl@1IIT0EGB-3LbbyDg~6-9c>EnuLKi2VV8FWunuJwJ?!BzH zByW}^3JYPB7b{c|OC=o}a8QgkGBLLFX0xh5uOIQU@n2m%G;LY z=7@ASiez*gQLP3it8DHPf}SJco!CJ(9beYv;dh7}1Yh$a58BZZXhW3x7Rme}M8)iL z?DDfgVwBi2Uj@F@gvXEWG|lmx&H41l+K57eu#gv75Y9jqax~L1P7@>T&~K>_zpfv- zkuyrMpE}+}dN{Jwv3x47E99ApDiYT-R_yF!x~=vms}$cI?CF7shAI+mv;*XKE94?n zCgFqURhXpP(Q@yL-z2BQ>}+l;t3l=D1z^Z@)V|yR|P+Fs{ZL2BoYG=VA`wj+MMyE zX$4c^Cl)GS0s;30JnOK&at|f%8!`B$Y#3lg_D=r! zV*n3Qy_|!uIn)CW^N@~IoTXu(zu?dH@)+;%C=c;{j@@9~(BLMXjGORx!47D{oN!u;)NXovAr1Q%pjS#a zdrqM+^jjY5Oe`L%vdaPMEuUvLoPY|X2%+V(Hlg<5TEnDN^ zbQV){01-mqKYr9Mh4}LA*MWck1P*lg@Sh)Qp&|~Hn1|Y`iw+A~Y#6fOrGy;+Sy5M! z-$I88slEL7lG;Ln30a1G7@}jyoje-~{MgXuft)-MDrD$0O`sXX2De$AvT?u)#z2UYtJtI=1kJhqi}DA2zyCsLpJVSnq&$!rCzUF zL&~wnGH^r0Ec5!*xC?<`xqCyRtn3r>T+3KZiZs~S=i+~jlk$Abv!F0VlQ(NtmwE4N z*r9nwo_sPk=h5FJ|I=s@&eN)3gI)g-58>w@VBeF2<5kC! z?Ou(vtXcHqOkQSDc1%gn^yH1rQUiIQyb z#j5@r2uscuE9xsH#Z=Q`NcYbo=L^!u}D46M+Qjja4^?%aP8rtSP55jmmLMol6A*G`_St+>=ECW71H; zuB;6ZF=}GT?Vf)s%c&r81+rqnb2!<-AuH~o=C`n-w4xsVnI!y%nqVCwHd9T%xurFo zsG#>$o?_$;L_J4D(K;>NO7Y==)bxnkq{5=6V8&>itWN*@ZNwo%tjUVUq?D!5O)4uc z>#Br+E%~35;rqtIf@WeUDiTWrIYXkjLNQ{Y9b#i1YqtBe&Rus3?9IY-)>vqPl1BNn zsME|@qMeD`nYDq~cqQbAVy@|%>xRbZ&5OwduUEP#dQU18wR_$+#CUqinS*qqh^JfB zabIDmv5ogcuWg-iiBfX)6Jlk_d`b~m`eeqww#^KG^U(_V>OzwXzUMdUvyr&ovx<;y z?JZ}M3R^5#KcC#sCnTKO$XL=novI{3-tf3|T6 z0o@Y|xD2p>H)YocuEmHx$cM9?yEyyNi%=0_Km<0YqJWTqyUmL_^{ zk9*Obcd~*k<6Uwuk<{ZPjVDS3vTu1A62Ksl;R&Zq?>n5l-dVyDvspT-R4rS@(?US6 zg?zvx}JcJGCkV&w*@+LsYks8RzL`V$bj-|Qi79JYN6r{)8^miz#8-UO;#mhyDYiB<+*yrirqKToW~ebOtv) zsxA5ve0D&@RkZUBjqAEDGsz}!@uAkTZ zLg*A0R&Yi$ReTHyS6@=Pzhcsro3!32k!Mq64mPc%j1FWw*(Kji*0Pg@*kv`lS#fUG zu&?rLXhl0((sDMSrPVAz)rVTvw$?eBb!}{AyHVGYW=oZwZEkgC7~S^Px4#AMz(5;Z z%fObno$PFBZF^kiHn%v&J+5j?>Rjqdu)5dn%xY`PTcs=)yW1V^cf~ti-+K4E&?T>( zz>C}Tw%4`jb#Huu3t##E&NjKDHSf{tOWOSI*T4TgBzFNE-}~ZMzyn5bf)%`A29r0x z{cUh}4;*0%SJ=WA#&Cu;ykQP^*ux(Nafn4cViK3w#3x2^idDQ~7Pr{NFP1H#U_4_Q z*Lb`#wsDSI{MO3~LXH;7&s@Y+*U<(!jYKYvk%wFy9v>ISom4W)kSv-g$5XZtuJV*S zlVvAsbjhHhMmgpx+Ok?h%kw?0XT@k=A2%dsYZ9`QTgzpoteMW1ee#@!n&UDLwq}|s zCt#gJPC25pQI@qrppi2VIp*}wFK%)t{b(UG3GmFCt+Y!nt&~jn>(Y@9Zk}(|X)FJ! zopaH2a3M_UO}GB=)RsOjt0#q0(Q32QzooD7)*M^$h2+gZbEl_UD{DRPnb>$fU9q)W zV?kIWb0?{XY|bDLoC+FNO;nh3rd@5NI7ueqJu#>wn-W(X`eRF6pl3}}m~@*O-PU&0 zt=+qBK~0w4ae?=Gi*xUG?}gv_j_tpZqpxgFwjgcQTy=A8*#d_)Eal#bz*#GCiv0{| z@8&g?0GwF`ZRUi#j!3KSWD=Ah1Fhlc_iWtp3e7cJkLneS$vJ^?KGK2Z4LL)3tg5&k47%uUz=u!%RRNm z1xl`*zE}g-UD#cqi$$-c0u3r@bd_T15#-y&rr@T;4A9ZhKa`-;|diie8 zLEtmLi{lX{QBWc{YLp}OIk*JW7TVcVU>ODd`t0zJV352p|-O zx$qMkw5CHFJ4paSgP0sEL;xUq3AYm(34942#0fTZ6n%oNGwMR(3js3BDdAhD%}7JN zFhH}iCJ%|j39P`@vqORaCK;5L+-Smx@WWdGMC190H*r2L44FxM6Ybca%oCYy>8UyC zvqQ9-1&j(`VU9ukDSAss1LA{x*y@9B?QDt{D~+2{HXs! z2O*-uJK4h*1R$nk#$l{G5Mo0&tSO&Z2p#-~MU=m_=pXzc41r)LpU4aWaTy)qI|%6~ znQ)+AAOw-RLafLm@sN)u3P*nEy*v;PKPW-uQNcIy8Bt`J8N7;o(GzDp7cj!a>PU+Q z=^AT%q};HHcdRET0y7_68FqS)7)+yzM4V-N8Ii**P)aC=03}v*i|2U8EyTVzkpm%m zkHPVvMj5+8SjW)dF-r-QhYTs65hjY1iD_v`=$ku`#0ZFVqCkudn{*FCtjG6=k_-XL zh^)At7_FngHsLcK-1w2u7`li7#g~D)qhP&-VW<>Bs#UDQrCb^zN*(^puu03%$d;NN zLhy-8!9bDfk@g9y+%t-s+(>^IxX~(H5-YR>Ak10MlNy3yVT0p z!VFe&2r4jy0>lzwIfAu~gWcLBtcxe36immKkG`q3;6;E zwHXMVEI;9-ujC4@B+9=OOhCb&3dJTXz)%7urqt;Zk_iF-{E7Ya5ElZr!m)x!@gEK? z6&94BFH$b3sG69(@~P~h~(@?l5f zbel!pw{%R1^_U9~1S5cq6_=o+)vL~`yNbtLkkZTzjex@=1W&VQBRXQZqdOI{NKZVC zy_EF2q&ux&B2?oOJ?Q8Y7;-g^cvNR8OB1owpCY^B{uI_x4LcV7D~yPW5lj$9Db8Op zRZkK{*1`~v(>3iN5RpSs1sNo?6hEH|5!qwb15zF|x>d8eQ(WCtI1QSRcvfmXR>fpH z!Yftf`?#(M*LV|=G6lK8OEd8UnzGo{NG%o8_*G236>&T(MJULW$fI?#7>d{*j={)Z zIgr8l5KZ;ghR7*}RSMoIivaZ<-K>(AX-GgES;7O>=IFR)lOH>wyiC%^HTZ@o;l~A( z!u&att*FuT!C30p3mDmmju2HX{mY1eA7{wZt_#RK`5@9fmx8gpZXA(OJR6JY3O^Ck z#)1i>$er$p*_oY)-$N>~+gZO9$YyO)WTZ>}WVKU>Sf1+(2`eJcRxPa!)LQiHBtaRz zMg2L5SgRo-S~$7BZ*@jC{VY}V6ifwATg@hhomjd$5hL}*$NMChFjLB1OpCP+6>X1= z)xTG5&m@&T1o&F?&=7((rMZ38G<1ft>7e+b3%!jGq|C*%wAea44k|goC~95H0U+Jj zg)OLuUx0^x{L{u1R*HBWK#kAf{1DQl$9lC=!B_}<+yZqd3w#tlj)BQ`OqS$O+^fT& zm>P?e8Hk~crKVWY0iE70v&b(@#+c|`dKHbSg_v|P-+{0ViDk!zS;OA3UhE|Z)1*ZC|)43l-s8l8p=tblJfTS`^W=G#l4q zqSLTr+&#&oYwQ$;eAg^RJ|&&oculIaP*L#=Ko?1;42C%yMwS5P2<^Qs%977kYm2^^ z58OQ7zXXzs=_yetJC` zivbPczl>A0(cHs5;-Fg~N&c3I&$|;CW)9Ic*58azkz~}Scw6O2%CsruUpv_Qwcqol z=$$=Azih@7Do$Z5j)-p72)&33a^a9KE>t=JRb76(+Z|v%;gH5 zTtPe;*HNA%e+Fpaa0Y=!iwUusO)k_#F3OXItw^36bNnEw*%bx*?i7NywkbTxb*s41La}$zu6D&gXiTC2E$rxR-`Nn1u1}X&Ow=k0-f*t>f|-$QCphFxuVQSYt6Z$Y%{L+45p&V(bb-taG=#FTAj!V zMWtqDXc?2uE@?7Blmo`vPR2_97|O;~3)aye+|8BW_7_Ev7dFVy)HPg-F0H7DO6A>y&3iGV(xyVty;hUsHE-dYB?8)rqRu$BBJDSce5o)QO8eiU}aGFX;1p%dC z8zx@yl{m3S_1?%B2akX0!+StPOljfTL+s5xabJUt6<^pR@=6yJqCrJSjs#Kjp(W+a z5k_)`a)=4Z7+1x@7Pq^iYKUEEhnimOi=e1Ubw9K0*a*MLHM(fGU`&>NyIu02 zLLx*dH>VH6*j5^0kmU+%v0W@ruBkI0IIQj(Lh^ID^N`7NEsdn@C}6dO)!6z*jZO4u zZl8EGTdqJ1XgWWCEfb?e~rxJBFuf*+U+$6ch4ZoRuQr`Khp zB&hyekaZLy{WXSuS|RGYABXOf`lAq_gJcA!bXszNd*RySlwrB6 zM#w8Cx^i?Dh;1LMh^Y2xr;D{Z7q=2~_3GJ9;;M!qER*?mz-#!5CGyus-oI@t1Q1o1 z+t7c<^R{(cG}?D6;;w)v%2%zT1++@74gr?^2fWfNMJIWpJ$OW%;?R{Xmz#NiulcSP zpHMv86|HFNQ$8cvah%9`qRJns!gAQOkwqt~Z%?aMN3v!TqJrOO^qgw!npRDnukNAz(F)R+i{`vMzJ;?jBo;5o&n?Nn{MHiv((k`t z&oL>SeAFMWgn%8_pDZT>&O1=*Z%G2{_gkw?+5?z7yt1$X7V@x^H2Tf2d+E27548f zEb}rsgR=OSH`ikSoe?wgaJ2TKdn8n6(*uYQ0{;md`0pUXgbE23WN2_9{=$Y3CsM3f zv0w;`6EQl>s4*c&jvq&U6iG3pM3N{Ul5Bahp~;ROU2aTC^Cr%mI&)&2+41Mjg)4oQ zglV&7%%BLZ%-cqdnzLJt6jEvW6xk~T3guXHCh6aoZ`3ZiSeH-nm`trcKE2>C;dP^FWSuc5QK(jyBC&v%=P!jiPo9Q8wqDxoz|AZF=|5)w*dD)hHV&?4Xn(KZUzg z9rLHVF8|}|JnY$)*5hLTYCH7X13edRN1I*dc!cGkR9il^AC^kqw+cmPghNe`G>zyclP}&DVuLU~XlH~n z{zj*Ts+Gvwn=8KPXPmuN_-B(b>N(+?nV}{qPkcs5sG^Hf#ATaeqKQyg0KVs3OPy-< zXNekLlB>VR64PppzU=U-g)Q>fdst|iOHHx6Ik4mZ& zq_k3Mp`~>`i{P{<2D&V))yjBip_4|t=&?b;)@-tPc4+Rm*@nQSS}6*|<)#9?2jD;a z!1a)pBF>9|K=uL~LREwP6BWNRC3yxqkf|lm8SW4Wl~e+SC&!x9;1cF@^!mFHeO|G& z??D@fTp&h|sReIm3eCF(uPUpfv2!A^yCkLX&Xku;IOhx;%~2xjmq$nC+g?momgY0f zOM*Bw&P(g8?9)UeZFHqTEA4JlQDcp&&Q4!VwAHw7jc?Z}dJWXL-O8yh*JQJ#HF`zw z26x<9hYPE-U-x|U&}j3mV%u^_4IJI6_4m&zPX1y! zZgi1J{LL?fL`Sbn9ZRA%f6yiVE;XCdx3Fe@c$MVO2VFv_Oi=C}W#nVOUG|-)Htl=W z&K3_eOWu!l!wBN0LaSkU6W(fTJi$2s4Mk7MN6|yLhKnTo;6%4@%`cWfd z12ob{Oy@qngrb3og`o8sUnllQ%l{(DZVArbq>A(PzAhBq`G6YsaRA#w(ZKWyS( zMufg|K@n?9l#3I=hAc3iZEr>-ja}-OvVZ(Y7~;uc6nADW7>2-v1fkC=3`CH}R4#{h zi3LOactx5l#}h3R66oSV4b8pkJ+6Bsi5PMZ$aFA4Cc`8DqPR30?vIRR6s6dzXed2q zON}XGqZQGZ##R0@c5TrG9z zzQz5BO+E923JWGpvn_9mM=?agAS0g^66JNyQ&k_K)2{aAgiDc;l30-8r4Zld0}JE@COswb_<)ojU}sYq2i)?sSYtF3A2fj|mavYLpeDy{2-*mKj?=8W#*BAk}u%iKP-_nOvy;_mCt(5Iv*UG40#`cNe8cK1T z`$n38s;bmrszK*SQlLPovp~&`NCH~Owiwm3V%16h*Z`!2V2W~rY?W#U#aamIj;m&c znz!(Jn&s+^xzoKLVuOiY*%tS}(v&H5*?L!B<`J^UW7ZBgx?TU?w!;N(Zgme#;2}oX z!9F~!g*Rh}e;j6jh;z#~1iHavb+9PJ6(@6nArCqN5N_uQHS^ltr6Ogp&QEBWD z(_t}J_oB>s?BWWosOcZWGVfITM43+F$!4H@qm|5<#T+h^r3;qgDHR%EFp}BByIl}p z1)Qidw${yG{r+-W)%@H$KlsAl!*GJ`+`NdI6qv{4Fhl(;yfUA;&h1O{nSYz&l3-II zc0>qeAd)!if@pF#u9ivMImv;Q;~*=%EK5YqoK2NCoicuKb~`(;)BU$L9(&h6?u9@5 zvPF@p;mYdHT9C=ndTxL-Hv0;fN%ip#dL+s)U8|>HVILd9c^0g+3*FI4E3=2%gY$$* z99H?kn$V9ux0Z@aSUops(a28jvms6GzgattbV%4i43m)MJmnywEipkneMi``q?#3M zgi;HXx?7i~VVN7)Kf=`N_qAz>$dv#(H`A4F=ve8o_1U2JDt?e<=iJmM~>&*q%hK-2w990w?xBhaB^YZ zS7yhQ=2DMt%p068myvGkUjKUO{4?5w2#7#k2fMqMiT1U#UBhjEJD}ArbW_5;?m)LY z-t*3tVdcH=9}4YL)``E$+}H2Mle^&)zbC{i9_=)DDT~70coQ>z@|F+PH%55*&F>_% z!Z7k=qJlBbYn=3^r;y}NU)Bjo6h`I2>KnKgcOuXte?LL zUPIj<1V$il@Ec@+SMWL9Qy>sTFhx0JnMMT6Rb)j@aNtxig;PMx=+T4~Y*PD82>&Ub z`H&U4c#Qy#8v$<643b-u5z&GqSrJJf5C-8|JVqe#2O<<+@BK(D*hqhz#~H}O!{ir5 z7!Y%uokl!i6iyWdHV3fK#A7(a5}L>hCSEfI-Jqe4zt9HAke0%6idZm5Ie3X1-b%>W zRGj2sM4*~&wHyt?h7TGT20{$zp#@VFOB{8MS{&k-NW~m7hv+pTBJzdci46WiumL(e z3^FicOROL!${{30$0Jfi@vf$7B;#AaB7Y^RoDMiUy-ZPHGmd%GcTv8@-LO4j_L|6fj z*a#iX7fHOwHD=>f(TF$Vh&9~=m;6Es9>^G8p3_BB`6-0#6kCmb!`Ru1eAHq(@&!|E z%(b9PN$4RN%~`E&*B|N?YB2|>z~VpPNR+){BqyRK2?P}cl&-~5uw|7UMx7-> z#^FYY0iTykc3@m;6DsdI?iT4-qUf`rfZ6Ya1y6v z5N1p+<6h$Cku4+UfeIB=lSNvf8@>u`7H3UD1ay*Ceqg6|{-&mN-s0F%VrYfoKUBqU zO5$_u2a{pmC>|#`K}I>yLJA@bWaMIbP@@ylUoK{*#f%={Rb&_D=Tqz_#^gbE@Iw*a z19*AmM{uPI>eEEbj29*+Aszt5Xl6TF<^c^NLipzaNx~SS=)qy$TgIhi%%wA|6N!Ev zaDtBLKt?tl89XQ`Bnd;sI0NQL2NLdEI&vk10$B)HWq-BWc4S0YAj4u51VGY_s&NvJ z_M0t^%uhlR`+e8IF~pU=6Cvg(WROlRLS;g>kyH-JYEndNE`&q=L!5r7k%nZQx}lVw zhsdmBJGR6+cHw%2Co_r(-(ebc9z>uj23$nxVvuM47cwcK+G#9Ks;wmAq!P=d*6EzW z)1KPL#?0xZR_8=GDxZSN0ZxQ6DyoOp=Z)THkc=rE&Lt>6i>@8(wR) zzM%y@sxFQYIT@|X!fE?N!Fi!=$pbRw9YA5imZp`DI~4J zzaGZMtf@;p#;}wY$qoxxsw%X)>_V7~zqbBiE8c5lu2ZL8=Q27arHbdIj%=p7AEq@5@#7@Np znaML2N!J=em{?NCTvCN@EhCj}>ELY~IfE$R#K{TL+773=RtJF)Y{Ys8eeA+iG)xPk zEs>1vk*sUGzH3}OERiJcM;uZ?n9wTPE0~(cSMcksOs-0b#aZwJy?{*M>Z=u0Q;=9C zv-%=uO&TFlhf{v;;4zg{evYmI#_g62V;vG;NafqY2T`q!kW>s-cw=|2fqr-(qAn+P z&V#waVpSCG^lIuV%x`E75ir#bK%)4r;MlQ|T`2uRy3gun7qpZYNQkQ9gwXqebHEMZosi`YHs! ziYms=r}PHgq!zIYeQ}KCq4*9b{Tb}lj>WkxgkV61Jh`DWIK`z^1Pt?I?D8a;dU2v! zrQxRTX<_hX0NxHOF#B2){vX?=hu*0o8>%2{@vG$J40oprZ*HdEuOH{HANOMcWAPw= z#rN8;!iDlAKkD~tZ2BsUZ$#sAM1>-_jAQ~!o^mKk+M+`yBrGrDEW^_XSEEmv@EB_Z z)Q%wDE(Pr7?bPnFdnKgRVyM~rRIr+^R!k$QK(pSKDxsS3hhhX0U$YYb@JH~2SJ;aH z;A2?mNLDc%r}88SC&Z?u>=s9nHlHq21tA zjsQqjCX?-QG6yo==2bu@B*W9D&~qWb3L+Qjb7*XRDdI#s@}U+gHG(vo2=Z4J2z#DK zo;vNgnsNriD@7Lm24uptN^3Mw%JfS%a89!{0M}#xk#tn3=kuSTf#S_|-{Jo5IkqKD!v zKBf+vh>T9s?@e^7TA#LX`*dzMRVg#=Lc^%r1}3XvWs1-h{<1P}V{4*h~Y9jkj`XQv{6Hwu}R7 zK0U>+-+3Y{aC3rVva>35?=f?RiF1lFv&Y36-p8=pWO%ZH_2TAmzxb7JTcd1JxS%W}AcBfM8yNi1uIXd2 zx_bOOe{2%zw4&CY_`ZK4uj{rHmYf7#tPsDphweF4A+8(SijJ&h3od*mI=m(q{(2#M z^{8m>%97+S|vsZ9HI$pbSyMAoFMyMF>*!+ z?D(!g-_t^XClQC{l{!N?{OU>b`jvb#lQY#}Gx;bQv1vE?N^<)rZg*5gd$4p)5jr_Z zhw$1%6;t-~*ukVFkG)b$)ws_6WoTq_w|#@dJyH&S*&;sU!(_!9K0W%ltMYr6wPcS0 z`A?ZiEKilJHnrR@ven=DPo1JVG`fIbOfIYXZq76GJ>;7w7zCt`GgBcAAnA5fG8{(!z{{)ugJ=&q zKK8__0#}VtKz#dk z;9tRld8|2;^zX|zY7Zekyi~B^K!X=43M7cpV8e(JCpKJ#F%LD17ule*_RyIyP8?xg zv~q7HHDsPHR@@lVpdV_XIC}gjQ6|lYH#>eCd9kELehOjw94Yi8RGv8(GZl z8EWK7^&?P`Bux?|yA>nZh-Q_dJ!z1QyPD2!DdOl8EKDovs9C)l^RHlxhU~Ju)rjMn z#DQ;dl?ixhNNP5+C+|kwn0Re$spppi#b}E7ux2not*x?cHRuw@WI%X3v#ag z54Km&bkK=@g<$YipT8I1}#7hGGJ2xf7=*7`z zoSXh?2=^h_$Cp1pzGnLO@ymY?pW}Y_`2h@2zyS#?(7*!`Oi;lE8EnwO2O*5`zU!#l zLBj5`iY=`RW3o@c_c)Bu!w?PhkH3pdBvHi`S!~h87h#N1#u;fW3Zmv(bZe;fR2(tC z{c0T0#~{)34<;aqOj5}unQYR@C!thPI~=1VamXqkyb{YTx$M%*FTo5`%rVI<)66r` zOjFG@*=*CzH{py^&N=C<)6P5b%=1M#R-!UWB=rnb(EdRQE!5B%uk&-P42d%EEcW=s zE=Dc;1Cc`$|GV%}4ijCn)AZa@6u?c3ljAv?s)I8RypjVG(-RMU6Ho;$VXLPgLg zQDKUd*B-?xvQ`OS4RO~HZzVF>!E!zD*y2k1h{rXfr6yG`UxiiH6f4bCKTPqPwV-0d zHIl($v0OGi<`DFbI4&uzQCtY!eq_0+Dy$q{680u(cH3Hh}~b z+;7Qc?_m@pp3mHKz1>n>^!AlFV}pP!>5^HqrTF882PrxMQkVY_YZV_-$JMhH~TLI=1`BO#k}s zX{?c6yzi9N*$r2X+8)sAA1lurYlmyCS{=pBU7GKQUk!S6ld~?mxUEZ9dTC6X*16}B zFK&D`(6x2%^7up_eP`CY);;o-!47-Bh7>B^@zg^n`fL6IeD93l{t-r!WxWQ>Gyj+yc6^9X6Wfqe%b}$aZ>OF+1fL>GUhMZDvY3p`4^LGVJb(p@kN5F>|5LWqvm5w0Nmw%{{8XasL z0IBiBfADD_u!5O;@Tf-z=8zf^1exiEA~ZU(k#GNyipe||7)f*vN!6R3^RTD6uw9R8 z7whCDIajgX`OaI_vmGQqdw^u#yP3@J+(dL4om z)EY|xDK$6x&xnjO1Rwm!&q%7wMtW#Jx|!q~bR4*P1;R zKIxOJw-B2fy@E9qJa$~=%_}ul!Jm@Y^B(oS6Yb7*@M(%Zd2>=9T8pv64odNEmn z(G5`k;hdC8;krpky=mmCuwp4E}vY|X@RH9))Sa|Y0m-#8sFmQzrAMtDuD)HNM z8eO>T6541-;@5Vax^hOJZK8TXJkCwy$eTx=-~Ct`jF|R|rpK7fe7;BEc|kVM>+Ifm z!=&f-miLZ)Su>o;{Ft8Mj5gImxqgq?&$bJBy&KAFA6wno-Dc{5;-mQ;lLNeoT1k9^Pg_}sa75u~&&b1H80Up&v^Ktc55`lYXXXC5 z-sT_o56t~u=;kmy@-BAI%2WSnp5Xo`{-HTXaXy)QHRSOSvA7vSh4b0dLhR#_?Qf`M$-QFZTMWqTe_py~hVhFH2e{~IZIqNHW%^6WcDHkwtoqm9 zSKZFU-i~{g4a4j%s`^jv3edysj(S!LX#fw_fCR{D?W~B%h49PQa7K2r?#tpWt?J?- zY^nki5S20y=dME-6rq{$jXy##13~Y>`b@GEP1}G^JcKU=S1`{E%Vc0rg+!*GlJ4Wo zuZ=`buXK+G7vkHT=LRG00OX1(jxYl+;`rpO_AsJwNNs0cFuz7;1L=m;IR2sw3(N87 zhA&{~h05@G%8v-CF7#q7Q@U`*80`H(&BPW2*klY3DQW)tki>4Rtm2UG05GeBEf5Q_ z2G8yQ)vntDkOBR#J$!)`*b`jnSjN2r8~F)AA)~W-6Ar1{E8u`jAEpdqoy&QMy{q8h$|lgb$mF&!PIr z{3;I)YcS9-FIawVs;o`^+K&I4D%;==+O+Mg@UCtgu>fO+l@gI{{{B!Pm8|YgEFe`8 zAgL!(zygOtXd;^CY^|-pJ$MqOtN_QXMJ3&%CRywBz$5qu zVkp(iC`U$t&O;C~@^FGsJ%+Gju!}d0a%C*iJ#dI9(rG5A@+5tSZ*Wogbji5V@)TF% zA_++&0Yf}Il9!Z^N+>NBNRo);@}h7OEu}HT28#qS;wCwPB#(>8qQx-ZgDM;6I&6XD zq%bP!LN42IUka@!t)R3d(?Y7|9vZWudeL@_>JKl;5aDkA08J0=rfN1J2@q%V>~PZn zL+l^Zt}1JjAZha;SJCu*kCPzMl5|r5_l`Lg@MlL08EqqG7?+#@>^ZXy~;>N>6~N3MU$q2Y9CoiNdw!m?)M(}Yf_ z2W`+9uM!%4X+SY(KSeHtSOX%qjPcHs6@#%kDC#XhhBYr@7uo@+5=k(YrY=vyCpcoJ zLZCV!!b7nGK)F*=8jRJd=_4-!8{Ly7$}?lmGse=>Qf@Rbu82WR2-ngHgC1;L!V@Y^ z(8oXoK%L7PIN~Vj^81`EHuG<+?rzy^Qy`h=mJI%qA&bQ~yOi;~lmPRNIkl7!7bfqp z)NTOLAurFW%t|8RF9G|}Jpf@ks-sg@lO;TXG(jXJv*R)%17u7?G46)|_3~`YrANhw zP>-lI2z7^$1~igsH0)Fe$59=&?jHo9CKlrha%h}P1B2qHp+F;nFm+tCLopHyA+0hE z6|`nPwID)uR0&1^s`DmnEFB4IG;wY!vxqzJ6iTVXI)tWGAtO?E6GTXKC(5HB&Vy_6 zG%)s5D62ERIwnRra8L~bGq~nZAp?!jg-;lDQ|YlF#FbT&6;g$!X_yX*loebpRCt&) zQ&RPWFqJLsBKl7Cj>?8nC2ZkND@`X1d;X>~0Ml+wX({YTry;}YN^yy*s_J0Blwr{- zVHGyz*bZZ7DcG(}6}=Jc5-~#fVOm)6LXfjg;w2_dHsgRrLqzCKUbavSW+nJ5R&Xyv43%TbP4M5UY$X5oZr2c=rBWoNNANK7$Ael{X8 z#%nL6W~=2!E=6hMglS=-X0!H1)HYC7Q$8+a)Z|jzL zg>6Yp7kJ%fb6FQ|dbV{3z2AZAPTj!T-?O~$u-ke7JN z7giOPbe%VSq1Ru;$a0eJK>j6Q28KrJH#hD#Z1Kx}H7I+!$2Qw`GL~}3_{%NILB29# z8@qR7eYf$x7JS>vUC9zFtU{$c!!6h~BOY&q!y-1mh=K7eC29g0;FfTV!X^~>gZl?H zHc#K+C^b?TDHfPMnQ~f&(T5s1OIs@9RY5E2dcH! zrBNF*FR5T)%;sNzCXYm7z z5p+)OI6kB|KfZWf!Z`NE7)ExPL5f)jA1H)`NL$)6j}q14TB!J}s99$e?kM$c_1*7-2!W5UriL=<*#T# zpWv#GX;5sIu9W^bjtz1MEZWeZU+DJ!LFRfmUe#7NJOQOF$Q7u$D}*6AFl(Xt?H?3c zj^fj7CTyU=#v?M?o%fQ3A)1`mcpMt~jqDQvV*;+IpjP+z`BKV0Ke}c{qf)5n!J?a(%d*hH}iGD>0#hNhY_aA6TF{Y9GN?AjlBZ;E`SU{)0S|QLHnyCne z5+bfgnXgMyohJjZPsOkyxhy8fpT24O3Id%~W*0-4j9~~}} z{Yl?0B0S~W8r8$HO<5o;yq)tCvf*p98%3>2nXrrLl3$8!BRj*jm%_UO!V3b#XBKMv zB0S}&Fg#o~8X~g;W3z1;CSaVUV7stt+_CpMjwa`XZb4n4TY;>FIQqDu7Z^EAG`56q z5BI31BL1n5{9rDo=2q`LMIvIa~qmmDpTYZhzez$yr^{JX1#Vz>I( zimCk7PMRkMBDnGIxD}@S;!_Qi8x3y{21Rcb!n~&}0?5$x&d;&Mm4^9@nlA>C(k-bZ z;x)F_a5Fmt%o|P2HzMRFqRD2D?2;20Gi9}iioQerz`1&FJRNk}7Oo)BzNIcGl%g6H zeIr(DUKR`HqWXl>~K!;4>n>>}rxshj|A7mz?f9z5Ey* z^)m;~Qsmjc5v{!Klx_rJ8w`S1PsABQLm0Y`l8Ad;;Ap0(Lg$n*=nZ}N&kW-G$kkr$ zghakr3?Cz!K10wyMF`#5sJ>QU^y&fP%ePhkr&fg&+V#7Og{%a|iqK|Gj{Urmr9P^uiM zb7#YzKN0?0*iay~OCCekMCp?1(5+lWYFvu*+tIHcDNg-})!8jYUP=CfHLI1ZM}slt zVx-#;u1KRR|50?x^{=FwW|Jz#=!Y7?kNnPd^=P-CHJ%^!)-;4pC*ZOb2X7TjSe;{! zd@+KqDex%DP=3`>er&pP=+P%r_B{r)+|o#Q+PQRLBk`Gp-FX9Dl-PJ1{YRZk z;vo>Afa`gbm_!@?(_w)B#0a2CAz_zeYol=#qd<$5hyYXoR{qBkgg%9poK@vHIZ|@9 zjn$uk4$G6~j5R8schKl8n0 zAAW9e=2&F^2|8I``|VX`Ynu&)8)Ow42GdfF9hjn4uo3!NY_$29)S`-d#^`R99g0?> zjXJ6tHLM|5Cv2zsXz7%a2oXA=dDx(?5ri zB?vVZIl81-p%@vQu=yQFYMy+#XOWZ3vEhzO+5PDdMgQ<8<$uD;87*Zo-Sf{c8HV(r zVpdT|nYMpI315gBj_BjH8>t(sWGcNo)TA{vb_u^{{_1EWjt+ttC%z8L^bo{Ciezwu z8|uUpSypE2<+dqKXR@#obH$~TLSAGow%Kl+A8G?>8ghz@G5isZwc`5Cq92+O4m`xtK=~^M+}wu!^*xA}gJ`b!=Lb%HC0*4wYJQsq14FTzN`wTZVFkhFx7MtybKm%f zFgWoLLA0fC+=|J`oMer1I0Yr;sG2%LhdpbkL@wZgiHDeClEx@+d|l#Ua@J!IYQ*Af z_mI|Ll+&0oPDFm^;KUBnRmP)O>p1mL(dsJn!yqbW(LUyvXgsA|VXQE;i0uOB9dyE)o7wLl{>ygf*h4vWr1aBGMz1gf2p%P2S6sbJLze z4nvWJ0mpz-JK2+flOHzB}9E2suhh4uNEM8Z*fhZBh{? zVZ(hu5}uoY@Pdy?OtCP+N_M@4ZE|Si8~q~4g88M6dz8u#F%qpn;gJ*Y+@oZ~NJcZ- z@G)t;4SU3R&VR5$9#;(GbPN#=dp^dU^!!IWl{Pj&O(&4jQd&PvBa*F!ag6BHCk5f= ztJToWg`dINT|UWCE0l3Fe9KKsLHb2qv1A(_aY-z;6jD_c@p>)7sq9jDl!y=oE{e1s z79Tp6Q8k&In)JHGj;dCI4nb^5 zJvyht=%kmi1LG$f$dYvnnaYD56mMTRE^M#RHK z^<8H9PJyZ8Dd?@j{+DHBNM6a*FB>^cKTcg*W?b^lsQv>G%B4{zJYooUBvV=#3W-Xw z>Iuv2x4-{IQx}~?g?WgVL)ZL>T7Lx;q>z@YTHV&J(pOi*P}Q_WiLFD}fR5ifBf|rJ zlS+T<->QU?cZf|HYnv6HCv)h(kmMsuVuB>|d~md>#VyLhq8TQm8Lm13ZIjS6qc#)y z%V0?}5OHZ&xH`+Vrz~=&$fe}9l*hK)ydiJ2OpPcnbDXpZaiFhg8tXbE#iUyCmeZ6V z77qo z@4M*>Z&KC%z)n-)Mw(mpVuaHeCibUm_)`Bx#=g`ZlZ!c5?QCnC+SA^)x3OKT{e62* zX0_$G&yDU|rhDD&-imqJ4R39Cd(rW(H|*eR?|kcf-|3z=zsc8~Qts;C1ot<=-7Rje zBz)iH2HL?NjyQ-*9N-S0xV{Z;aEp68;~MX{$Jx#ChdS z?(&zz9OSXn8NO$Z-s;@;*S`+-u#0`{WG}nf&yM!At9|WkZ+pvC=k~bEeeQ2pDBbVQc32Nh z5X%1TTJQ!FMu=7$B~A%^tq2eJPYPa!i-$MdhlcojHhw6PH+;T1UU|hIUZ0lNcjjrM z#d3JU+ooO?%4Kff7PWh=H2qRXK0kT?!Jgt)n!W7pPLy}!z4RD{bY*00=-k9uxyY!o z|EvJ~0V!84zHhtU=LBBA&krfFAKLV#QvK!S82kLxuDu^$tLs-N`%!ZW_b=~sk%-^> zU0FZ*zwLfFsW;mv#y!7RPVS(idrckzo@C5Fe&-f{x1@Um2zmDRV)%DTFCp8@0L~Xrdf?I)t707r=w}Rm(HU0?1 zg8i0$+E;=zI213qZ#q~Rb+l_k(-^K6P$GwV*=BUwW)>odI6UZWOsHW?7=uNFgQ-_a zJ%>EPLONcuRPiBFoUs@baUq-#4k`ESaZXA<^XaZPG)-m7~Odt_vaP}vsqJMzJ5$Mr}d&oYg;c(goG)MRte+Y;!!-%4? zhkE5i(_)DUC`!8$58$lP+PCIGG32!ViNL0{4(9jq-^DW{nAHk=zn4dB}fJr7qI~f?qj0PsAd_ zhiVe^6+`JPMk#+B$WuQ_4JGC!Iw=g2@HGrMj-wQDvD6nf^AODbHf-bAl+^H)zyX*Y zQ#WIIL)_vvP+?f|abbBmWEi2ABt~0aDG79W30ni0BO@hkNtAF|6@W<{8^4<8_=#nG}RHUyh*=3zG*%0Wn)eB|b4SBFZEn%2h-vO>!v{9I6@ac~T+z5>)Yw0@sD%cA}(ITaeP7 z=vY!bN`UVv2W2K*Yj#}{Ny%eYuNMsv|?%9y0M4Xd0ye za;07br%0-YAsKFXx-fF`EkJS>-bklwvW}MsFfzz6;N=lFkzW<2D9Z9yma?Z6dKJIL zCpSb0A`voein2|3I*Uh&U-1v8eO~{t8Y!si&f$N-gUUVZ=!^V+hWg6G3^i z==hP9*t49_7b*LoLophM^Qr@us7;eu8o9kw#Fb`DRat! zm9T|X+_9R;2#XZ*ID-+D)^VV_Ar;7FuzYB`9r2^`vm&)2C3^{v6cb&{6>dU7Uf4=A zmpfo*rf}EhaQRXaHFdTorileMf|5ZH0@1s_B93OF9K#DP1uJm$y0fJ-nTk1*O+}Ua z5$(KZbG_NVHQKd6CV^3&Rf4d0zJ~A!uThnrE)wF!aX^RiwXB8-K(gl z)DmZV#^td!VEhYW+&E3bzVI4TKeB~fd9b3CBWL`TYs|*F@;rgVXi7tJ+!z9w?4&qk z5dwz5!oq3>GRN39J+9*(yo!tYg`%3gFSsGT;IlrzVYjoZe`_cb!u1cB`=!^|xotC> zILsCoDahOluPPD7V|@N2nKHwXoP9YdY<<#KLdG$Ynjd)jETP5ALF*KyG#@RY%{tT? zyRZfI@C)$ZqKlHsipo(43~=u%E)b$tTBv}m!Vm0xEGc@ALR)6&vpZ_shhVkMJmD~L zyr_*TvGT#mGD&%5GO_gGEa?og2q%iKgGTye5{?nXxW$>F!Vv$w1;_FfR{Y4E2uu-` zkXo$0HiEWIsv~;y&;pVx-bc~3IMQS(C#_Rtmov{8GqMrglCR7;*e7$eytcMny2WD> z;A~{0V#FWZ(Rhfn<N7^Td3(W0GyDfy$D*ewRSj`h$u^inIOruQC zCQ30rS!PnC!xeJt&{7J~b1YJ}h%ktPN!1kC6lZN6`*I&m5b)s`Wi!xZx!Dg> zEb36%(hMIe!zD1?i&$LR4q@BgO3uNj7dEof5Y^MXf!SvBY!-VE#)8|44Ie)oib?IY zIx5RB1=qElHn}anWXOhBO+n5)a>WdARf^VNjV6hzBTVBvw+P$njg-6H+ji(cP7U3r zBSnO@F%QfUbRhr(Sxo%BXeKevH7X#bLrX&{>$LI&Y&#LeHv-ZHpPpc+N444(b)p) z;orPiPHyB8^s>j!(trRmP#*Hpwm?0OWK#iE>5mL6^?OmrQQ+njX%?*z75Q>foVUR1 zC{ATdAKOeiDxeRMwEvn+KNHJ(TZv3G97;48)`FSzLg$>lvf=wm9OW1PH0jGmP)|z! zN(cq994@~z?*`^WjJVQr)n%sj}(zUngOVjKK^3r(>Cu)@JxGEaDZoyAN?F3lA6^~CHRnCpR z0}~-gfPTb^`{2UD?jzyuiC!m*u5w}2De)1ZnRQ0fqpE{WU7n6GlNqZ~y70hdSQPP2 z$$AgE$thZz>#SZILlKL)y2&-sr(u~|45Fi|N^Ue^V2+!mno$nUGDSpQVT%50UNUi_ z7b@%?fn7bGk2z9^h@144D)YeQ+P6gZSFCyuVO?>WT~eA}&M;$~d%QT+Kv3L8^>eA+ zIoziuB_UotB0>2?3e|=+UtiMFQJ>Z6R`{hqjV#<$5e%vF`xE|0$wVMR`p~fMZz?9{mod-%F9C8aKFSK3{5FtWXQAf?0 zB!MCREzCpB;lh6oS3z7z&>+Hu6$?^Z=+NV(eHJ7mv z@arlNrc;;%52BUX_8%K`9RCU9+SL$Nht7Pq&3IN|%e7|9I#s#yDNko&`B4KYaA(h- zL5GG^i;*o&h&OW*E_#$=XQY3XGBsQ{X2PQXj%MsTSfOLE|9k=!ih#1Zz-SX*&8oMN zLeNPWo32XS?Qyq{Wk;@!oTAO8f{POtOjwS!$*u{@6zE6w@3Xw~?yYz)ucwxz|5e^T z6Sw8o|HNyp3o-P-f*@l;EjhKU#oUOa&NTd9;*Pqr;PQyB{<7}k$t9oSa}K|Y4s1`O z;TFORbz6S1@rOEmFB6jM}jMHXFa@kJP8Owl4&Y?JXu9COrhM}o53@kbzo zT&TknowA}Hocxl`xy2IOK}a3hf>J~pZJhE-EM=53OD?+gyqSC4nn5c-^p_8m! z=(?ARI@d&=;q}?x7zZ5kLvASw`k$enGg@hDdj96;PyG^Pn}~95YiX#Zruv^c9g>qG zK`SM6v>QGg@5L7`-f5R39p3nr`vx8D<>5X)$l(h{_-=5mH`sZ>r{~N2 zFzI;ZN%^K8+X{EaU+A&1JNK-z6FY<-`Q)Vs8MqI%m;XH%lXjo;`2lWVH*to)LSQqR z#pEWkgUJ41w=-*)DJEwKO8YhjJXKu}Ptju$2fx=m407*m;By!V>xVMvk&td8)Kc+S zSi%$53VRxCng0-H!VB^ZgKfHr1!1zG27Y5Q1cBU$iZVoX6w!t%n+|G_2B;(2hKQU? zn}?97#9dWRU&V>Zb#B2wD@rkmRQ`m?nvSD770s}U8HC{yU*y3W<}HSWf@2%ixFR{~ zaE^9+A@Oin!VdNkR(I^)2343tH`-5+0&~hu)uIl$HN0j!=c&zo z!tkNh`6D(VdQP|fr5^uS{slBCG&XS>ba3SiVoY`^%0k2@BKirz0w+g}P^i)!5Ot9|P23+Ld3CJkW?PFjQ-!uZW~8e=ZXD#Qwg-~?c)5uwLEkV*v!O#I9j z0@6k9Agqjt*|Zo_p-SvEdHBa<*2bQ2+K`-C9jwL3idNrd5x6hh4nTS9Q5{~hxT|XG zBD0j(b~eA zVO2XX_dIJ5Q6O)9)(}Q$gv(p{y*H!;}#jUq1?6c9*xAlCVFR=C4MqVl?)S8dE|5K zAr4K9+9A<=Ew3wbY5RPJ3;%a;=yO;SsCa$|l^dxrK*G*gIZvW@hRf>K0_wC_4ve5sgihi6y|g=R+W zGihAC#B!2Y(cNA1r=1F=K}!{yqSor8tIQ?2?ly4O1~*)Pyw|j<@x&B!^{doP&1(9b_1LntDlh?pY(I-JyFM(L!(a-wn^_=kguWG^cB^b#8YQ zBfVorM?A`1h4;ws97}*F^4uq6h=17Vu^d%NYSc5}CHt(BeZNdWVtPRHIHONnZx3b_ zQ4u!OMeJ&ZdYVP6(9K0Vb3Ut)e8TY$ABx89!E4Ct|EQT%zZ;!G2JfM(nL|DLSjJ86 zwsyC_D9+dT=EUyjtt~&-6ekke-JP!Vw?E|TU$?v_Y^vrNFW<^Ddg#Tj`_rLY{&Vj0 zzitw|Iclkx=r4$92$|?8Y;u^?SiQM(sZT10g|ID&TN0O=oSe|Q^x(6J0*qRcznI7k z?^q3nSUZQgGd#PFjykT?fDd*%sJFtXry46I1G-mRwOhlq!}GDg>o@rNt+Jv#tI9t@ zv%wh*G)r5;qjRgTl02frH^sB4fa5cN$>xhcdx9sIu|OTW7d!X!kpKpMPzyTQBuf&SSc&GDh-KMpiK+W=xZ? z>A121Mp?nZXJjP)yGHdRzibpBZ4|X{WE4uF#&Cp^PN@&F37BCK#&Yx$rz0F|)WRNX zM-ik)d%Q<{%tw7(#(nHZfBZ*)3`l_-NP;X#gFHxtOh|=XNQNX9G8wjpj7W)`NQ&f@ zI$EK@bF!Vgo8@`P%d4o=C<)#x#)>RSW08YWLI&3|Ng)XpA?c-2fyq~kMWy4&Lu#QA zy2)k26OSY}tkbmC2+59kBz9y;qdXSJafqsGmieG8-MJZ)K#Bepfthl6wi2-!nF&J` z(Gxof5}CA=ujEF)i>ixEGLj^_I7%m-l&bGCOX0aV@;XYnbe6?9u!=wga#WU`h=nIP z5(CjSkFY7{I0Jd;4XYfjW)sX3X%fCP$Bs*suw-5(rER-%&6Rd8vNc%yl`Y zZQP#tA~2gwwYCJxhk?uUL#3?4NbjLpx)BF*%Wr4$k8oUF#$%x2S+?NrCu{7%m4 zO^5)^?W7Bx*-oV_ ?SGFpiF5KfwjwfJO+GK3LAZ2pz~bdKh;rJhP3^1-s3QU~GW zgm75CJQ2|Sf+-cbiC=)FmwZe_iA;<`IMkdYpt20ZC<+NOm(O8O2R#~UC?e3zqtHB! zH)I@WTe7~>DTo9UkeeLvL>l?59pv0i5+%hhI7oJspui)tsm~OdzpP$fQu1Sfy5arPBKl zLujQ4IT~Sd2M5iAsDa2I8V-tb#_n*2acCyj{tOK&APWq5k)IWjI62r4d0AnFiC*;-idfnH$&!SybXqnvkt5myOl1>Il|71BT6C1pNAXfc zHQHaGDUYZvB{d3oVAG=!hE{ThlyZnag^B+JR7lC$mGDrx)4Jg69Ar4ugg8;T%0Q2h zlg>z6j%d&Gl+79y$x5mU!4;cqCELKX682QgV|}#!>=0>1RQ#0JBBIu8jZe^(TW|e_ zzResgg;0_`5eSXX)G^q97+s1`J9o)Xx-Fv3DT>pz9f|FnRp{4#H7(rTqTt0&(S?-a zJ(}IcSN9y=*@RsWS>A-DqMmFE`_zz+#gL#iT8|x@$Nd^jO-|m;UKUJ1B+ZM}=?uw* zTPu-S#KqnyJ{?TAY$9Rcw5R5 z;4F<_=b%l{I@BGl6gfj)A#H>OT7_ZCPNj7B;5$89Np!T9|;zey!rn$X?RrMK9hL#_-TAp5AUX;jc+vBZA&J-O{!Q z<0(F37N#8Zlw%BDN;TGFO_}54m{S#w368x}(Nc@)Y*tv}nYw_JgDd33)elFmh&h&E znhC9q)n7%12u9WjIsWCas*~jX)n9apTemPow!>s~rC=7mJdu#V&sg4q%e@)6o~6ZBNd(^?G&OXtq^{2!&|ZqRYqYe zAW+}s-xq$j>rB=pG0)gFQ?BFOyUm}jP%vI9=c#e9+gLso?7%2A4cdrG@^Q^Iz|kkR z-G7}2R}N@bwqg%i1#nhaJSI*qmSTIgQJX2~F@{$$#NmdXXb(;3H_hgJ@ew$lW+f_Q z_JkaQW@adz*`q;d*JI=073q_H-;7>qu-Rf{j!jR1UKy$9g2=D72+M6oVkxatau$_s zZm^V1XPK}F{+>2kHrX%;!lIo(!2CtvYTXVu;%5dOOMbsjMtrC2bE^$m?D6Y2bgkd2zou&8B>SYYTrdI3J&M~QB4)@ zSCr*yxarpptct{*v#wChn$=Pasfl}ziK~%{>BO9Ld5P{(C#2=YIOkNg2-3bE@i52 zi#1OEk<*Ur%f9b!os2?-$tHbYUZ!jHX3~p3XZ_C4u)Sg;^)sy_Y}x_v$noHPIS5J; z06r}WIpLJt7~Sn$YKmaMEH><2LG0R4Y$HbMiV@0~5S3_a&ioM#KLhVwL)6Q?Izxs^ z!Ziv3Xt=AcZ|9^>@5GtmH0U78i4XS-lnooQ#&3rnPatPvx~1sOO^X44a^0rep^#X9 z$Q;=PZscg`=EmtYHHqPb<0>z5@h08LAag#&-Yci+=}z3N&S_IFSuvAJCRf{|k(wV3 zZ#o8QDPKORbp|_k>K@sGdiVu+pki2lnK^fkn^;M7$?A3q5fPt^GZt$R1?&H|jsO0f zqDr@oOXs*Z?{hQzAHkSwPOodU77?K0g!Lw(l+q6|4GuvNISsm{F-qhqKR=47b%p*1^N7&U7Tbm9@+d!O3<(9$R87`Kj!+l%K0glH zF5^8U<6f%rWW!Q14R_(aPcQyxcn5RTMq+J$b~L_mKVEZs$I@LEcQU?_L1lwu=CJKm zySZiTIyP9<4ETYUU)yN25gy|>7t}`g_lX~oZntkg-*_>!bOS$^LETda_w)fTVE}nEwUUoB#Vj@vp>jh|eXZNk=SA9QcXBc`a^7*m0(=i@idq<9O z7xJ`sT_dh?u_t@{+s6cpq4KmwTaK``x~KY{$>B*Ay~=@+JR~kndl0kgy1`fKdE|aE6ZWZUy}=_ve&Xa-*N)`QG?%r`nhAbhJ)= zNLl?EM{uOjh@~J=PpS3i9eK$IzE1B^dNQEw6LTveu&Af{nSITr5GbBuwJRg3$`LE;0kUIs^v^nso&Y%Q| z<|Hai(Lgq@OcFGR@a0Hq&Lq7IJ8 zRqNvX+4Yjbj8F)7B+O}_p<^)QOu-L9;!;%H7(6VNN5GRWbeRr#8pJUa57KpO1 zNw!`!uik1XoJY!h{nE878lp;u2uHSDeOP4M%dsocP91vwXNcy51w#C{En%z>(7*M@ z2>j>2=H3&2Zuway%23|D4`y!tpF#0K&qr^0e&GCp20h}(xRTm7kN@JjbYFgy!ROO= z1u3K-Qz1N8P<~#Oo}5s65cMx_;XnursI zw%UWMU`1kBT1l3oVi(P5(uzw(6r44rxu_zF4_>z0k@-FLnTT82$l{YL2^F4EOXAlg zmiQs`V}?1orXh?ta)nxwq9v4>Sv==qm)&pbM0VbKE^gG-M*MswY;y*!qTWDlfuxbJ49Rz3 zch(|>4t|0H`OB@;{G)4Ffb{1PGMNbUoqD_?HIPJuUMCZSwR*_oEscCZ8;p7;gyBF` z%oCxxS9QzXLe`Y!B%kpbT$+heF6^a1)EdkNIy^eVZKaLzC~m=Mk_qvHfZo%wCqODn z@ld3~>5#&AR{Cku6t=m}hl#9$QKTVpSqD?=I+M^cIJy6{E zDY|icYKI-G#oKNz5Fi&hb67`jdQElVVwnopuQ?6w(a!@N?v>(VJ6&SKofG6Q=%bTf zdX%N3p1MM!rz@=Lufra@?6cEeyY08*p1bb5^WMAfzlYXQ;&TBn>!bKRTzt$pzmBc) zxu5>L>dLO}y7bp$pS||mbKkx9--Dlfn4Dk#vWUrpA3f--hflit?T2N3zs|#7zy0^) zpTGY5^FO=SvGy-~?+YOA21vjIA~1mpTp$A*=)ea;FoF`CAO$OE!3$zAgBsi*2RrD& z4}vg+A{-$JOK3vWvG0T`TptJ zV)0_>sF%AZdJm4M<5%n=7rcfb1`$}+7g$-^djqui6&Lv51Xs} zZWIlphFPMh@;=|__Z z(t(bSr13i`IMta(mUhpY=&6;kM)HqK49h!bK*xWmaj#Dr0*BNn2QBR4olUyZd_Bd8 zcY=x^q8hb1JH^jWt%DL1LG2%BAjl6-G7wy>F9bmq$WV*=Q9t}+6*-;hKa%xPfw~f+ zYaHh*=?YQ$^|P)W#p^UV8q12p^sRr@>sr4lN50yXp3oHRTia+?!mf0$kiC#!Te;9- zZu6It)hlK@OHlqsW>lks-E3n`TG(CAQ?#{Q?Gx3h(#)pRunHxpY*7o>mNHbcx1FtM z4lvWy)Kncet!o~vLDmgPf?cZuF0D#3So7rvAe2!4 zx3u?7p)&nj;KANieu<6jV2v4A3$t>z676eyy_w;8ZrGWeweU+XESlF=GqoBHv3mpj z&w{2lG$7$sgMvGmS6+$}&gqC+twWZR5y}uzwazAa1y6ObH>W>N7Zrq@t{m^UA?snt zgce5-Xa49|ApA%x8LMUye3r=>yJ}98brW3nijp&=wXA|S#^6u_xXly3Z$0zN+1KK? zo|VlrWd%%MH~v?*ay_v_6CBq%zZtM1=CGknyWk5u*w3zQVqV|N<~@7Zq-<_uvkkZvH`@Zzo2zq!F~p)|yw6|7zW~A`OXM5fRUB zLdArfujHG#wbS_GLq*hAh{|s8L)oWp0^gR;`tGpN87<#SC!NG4jWM13ym0D0{m~Q; zD~DrE^bfP~)Td7PLAgElR@b}45e_%f7whk{XB*f~S9QM~+wpI69q+52_uQ!t?1sZR z>uzu7$8jpe{490G1DWcE2&P_=2)mI}ypcjW#lO~P;%ot&FmCGXgc41^it>hd~LgSN5_5s_Y`Gy zWPw<4H1?ACc3X8>F&&;!Jk6xFDQ;sb>&7eU#~^m`rw~lSXTX2pSd;N_Wj+fH6Ql{;JIm?1NI(n z0T}MV6k=i6^l{+caUC(0+uw;`oKYX6Mc`wNn8!IEq%GL3|D{S^XQR&zXC2q58Q?TEJkOT(B) zo$cIBmDm!_hqEXg)Pa<`-P`vK9>%Gm1frA`BG~u^9k;3A16Cl?p1p&zI%(H^$e zX4#(}_F;#$9v1?VtRWoQ6_~vxm^L9?*!AEVwwm^tTDM_Z0`}n3QQ!nZV%=y*J#1bw z8DYBI#t!fb8`OnWp~YOd##_jb;eis=2+LxqqGOnZCdGwXG>0jw%~0Tl0qPC7`~xnA zfG!S%;w=j3$f9%5VlpvHq^Vg5CY?&9nj8k;xGACq65=$5pbSDIB^}nEVV0m#V>ljI zzO^17o|HI7;TTGw>fPS?eO9P_+cc)3V#Q+;o|e?*qdh)fU_~9L<(}}-AteT%*L4;> z-e3d%VQx*>KZcH|+=5`))Bs+KfGm|;`N^nQi0f>}qQT;MWd7uaMB8*dNLvA*&jDaq zB*~1?3i;R&n`mTGeFK`M8Kd}N;K|gB0b<$76*_8M95S6q>Es;RnLCzXezl?W&0eY5 zA@ud*PaDYRp4b`ZPA(clhWtFh>W!5x;vNTTCWEm&+jX-#fKGZll4yyVD2S@2_PH5t?$C9f=!?SW{a9HYMN#hDP}$69_uOa>g{SZA zC^aBMj-ua#CMAVUX9S&Pj4J7p_RoyMjtt?>-fXAzNGX8kPL6e0O z_c-b7uv6^tSRVE0_MGWj=uz>ksYtZx>^$iHe+p9*o*or~r^pNykYz}${3ihssbgYI zWHJorX$Ewi*M77~SD6oH0!_q3gr5@4#h6Qhq6u4=jGj8`%pFfjAgb74s=4s#XGm(p zbOekTkn!Y)poAx)%0#0w>X!6Oq$b3lnh&e$sYkd6=lm%_B&OR?gv!+1lQPdrj28xF z)$5F@?3C#`Az4aR8?<^)vMLX?rYG(AL6Vh5{H?~BAS!8C$x}?}NV%w`z@)D7M2DQg zOm@bnQiiLhtE|4Ntb#_kas-%&oZL7~Na9h5T+sn=>Z5ony;=yr(#U>9Mz8J&oqP-w ziHI}ta9s)j)9qgwv#m9)sc3Wldp3NI?k64Fqy+EE8tE9xw3>@;g= ztgQY?Yxl&g@6;@s$U$=8!eKJZY=BFw?!p$h17~Uy!n_F^Q4zM3$9ZJyIB*%Ss0S5v z#Js}adHiX%?L^KB1Xw}S;0VO!yv~9&$WF}0e^{z$bc85iMU&A&yvoG7;uAykO^2|- zDHSSG*zK@NiBR;aWq88c&Vws#%x6qQMO?(qP)^?N2`cF=ixloZSOi8m3E!GX)B57w zjt)~$fgoJOykZgE=56#$uDD)_Ol)rFx-Ec?F357kEfPxL_Gz@H38Qoli9}A;>TG5@ zl}A7o=8mmT_^eOq2H7UZ+5T3}yUgxaFkWg9g@#1N@}4c@L2S$R1V{w$*-{Ak08F{~ zP!OV97HjPm>uS8~5<3icw6N%Y0}UsMtv2yRJTdwh@fFJiUsR^B0&(_&S@m+q z?Xm>^GD&zY*A@!~{s`|c_~L{Jlia2}2$7J*01t?kJxWd#7m_pzzq({o`~n@5@Xm1# zbUnuRc5L`^ihYQ${^>D(7zqGx$Rr=@iM%f)KXSEAa-u59CRd6_c-avv>S2Vyx*A}3 zG{SwX!WLv98LEagI7C;pgdh0vjX7z0!Npr>gh4oA1^<_ml=5YS080GBaJWVpGqJq< zZd?ePDmP|Wbj0I&4hjz_4EL~uATD=|F7~*OBzFnU zJT|Gcvk%WM`Dn#lqsCS!teyUY$>uX58w^A{@*(%|XM45t#_K9r_CnhTY(v+);`V7@ zwgCQyvM2Pj2cs-@_((+L_4*yPujzC4KC#%S45_}bOq{Cs`l7L8Q?Re+WZngL97DF~@RA5X10_TnbqHsmV4kht~`M;mEfJ$kM=gIFt54$oLT}tb1lv zYp?JNSM-+T1dmtjArCoP7xZiAX>Z^5Y7_acinqztG_gho8sn>UpWKOrxf>G%50eNF z(-Hn`Gk0asx1-p$gD491y7rk{!^5!C?jl$6&aAbrIX$mz~)LA3?C>ybPCcw+@@1 zY?%Y}qh~eSuu8lLKs9GJWjivkiVUy+ctATysS8O|WXX0TvW`pclK8qpgmw&%HnNAp zkBqazR=Q{-wA1W%l^6G}7bq2P#I#R2q9->OI|ZBwdq|jb>o&A;e>rk*GaW6j>G>`k z6Y-s6ww<@cpC@`5TkEGd5#w4}sy6$I@3YcR2GO5(ufprK5AG6Iq55cj zaZCL{V6j0f2-lZ;(f|9pFK+F;_qNXaAQ#|9bo4f3dAMI8x)(f~->jcAy1MW4mdCor zKl?sUMQa#(dMkY013IHS{N&_(RHx*`xA`39y=dSo(0d27^a{r-z6de|EeuHrWUD+} z#@@U*Qy2uAtvp;f!!`tqGQB;X_O&*f&SG~57z4EBv-`cn$uIc4(*yl;{xf!rmpkgK zK2MZ>Ah&g;=rF$HerPnkt|$N8dkI6N{uhffl9TxkL-w|BJ-K(6R}4Sg&$!j^jLA(u zPw+(tGdsY;4!?LhtcS(3r9GFMIV8J%vD!W_+V@S|J)^^O`aedx1H`|7U%vf1AW)zm zYO4@7w4#pMrG^9zB7EpfQp0~2GitP`4x`6^{HX0h(2yiUfgD8=H2E(NwNM+?RTO!X zrALx45vKeY@@7ztIfZ(pcrZkWhZDb16UHg2AZif>x zSFYkilU)UlHF-2dLTbMn#U;3kEy=kD8-k6C5N_Ou5#xp!OD)#^$$$6$nJxO5rp%4? z{!NuQu<6sNmLXUDc1w|BD)&mBJc>}EV}vnPGPT*VAm5^_HQq%z)#hMopxavG`Iw;7 zMgk34lZ^SbP=zyt(ypC(_`l+kZTG}|P_1HwZcWGT4BIA~dB$6xzG)u3?B}gVUPsPX zJbA$0VYAo!TCXrg2-&>SE|)ox22%~P)Hor|xXaKR>@u;=;be!ENPB58t?HSID$JZZ z@E@r%4DKm`JZ$i=#5N+$ETV2A$;6FTn<|zF1!6;<=niAfkZ?GI3`7n`6cC~YBV%qf zYMc>LAQly~VknS0(x}9ftU&Qe73X^?E1Hsf%*x&nlal_*pPu}#Ndke3tt%#(qGlTm zD~sjItMd3K6s2lH$}h0y+e^cj#;TL8$Sw&iDTOM!3oL^E+0rl94oFj-e=aF31cfl1 zicT^MymYr9J!2D77|9HdQzJVRXKWDF4|nM|66B2?I41V|Sd zPncS3&N^BCD$l=Gf=H#oRN@CCJ>^=3(4eC41zSnuGl~aL(MehGF@jp zv6rHqsrjepv8kBH&bq`k?G>NDyO{{{KS9b-l+B{FC9uekzI+Q_4<~rJ;StW&qq! znL0N%n~lwH5R_nF!ZJY%UJ!%d$Ap>V(vR(v zpdkLmo|uH>FrK{NDKnBvO|eq`ED0)#C~4S92*T2pWWuE^Uuec%Uh*-&ROJbUc^hh! zLwXk+pEZVAL@HjeXhs`lDI3B{!&pO770h5Ub!n<=W>cD-vE>A#iOFRKaC!fD+rQ@a zAK<~Qfsk3J+~@{LT52j}>={emn$k=O?lU97@ux=ssv&>gQ-_PHAsie5M7ldTR07YIObLV5uAP>aFvnW9=jXg1%REW4@sAKUK_aG?MgAjzOP_o8Uk!qcR zF43x($tp^>dev`?^@IKsEvs0&dXunXwXG$5>scFUg$u1~Y$REqj6^!q4_?uMPmO9> zRZ3UCT5zst?akKUde};a>N<{H;z*sw5p70Onn}shN0R1_SIDS-$LY*NkYT=XmO>=Ny^0>PTmw)>S z$1T<1cV&DP8iTi_MRxI{%$q~+68XC?_Hmq+jNR@A$|_pQqDa__Utv+`P9kB}1PfY1 z4ok4TK+Q_1ov>GLR9iy+zL0y6K-;$JiO`wkr>H6 zBw2PsFwgQ`g`kj@v@s!DI0b`kDmu0DqMafMen`qARP;-*0%fPQj6}*a0`>xNo9U@+ z8oSv^{!+A$)|k4gV=W=z$7_BaKw~32DYnk(RgA_FVn-yxCwmLv-1z9JNIEReR?N6% zBjS8(8`^wH_dNc!Zr+Y~(UrN3g2|WDbQ;9ok)HHNp3QG7+sT^{1~cr< zcVS2ZsIFw0CgJY*s@X-De1~_{C4c5JaoXtjKq{MGaW^^yQn8(f)FZo@_)$c@JaJ#D z=eIlB?^5mLuK0mYdZO*d`^#+}TKkxSrWCCM9?n-&kk;bfT5bK3ooa2(D@50|(TfK4 zNlmv>YikIK@1_x;9Npwef$v}L_AtH?0WXk76_2P+io9)dUCtDbQF z*(1dqu)O-^;iaWQUV#^8+?s;zchu3Nw`_vAQO8sATUmu%FuR-R- z?yd_t(2pmMPVW3~OTJFR9?xo`?#WE;F+v6*-mb=^$pIa2gO0CK{$VX_WBJ&EA`nn9 z^2DzG0WY9$y)MEN3WEv^VbJyoDmLQSVrx#=@95r+23Nu-o<*mMqiNdBNwWS1z%HlO zWU$-%D{1h|b`r2r{B6XX?y#I@{Z5c;hS2d?j&QUBB9?`j2I4^!qd1Zy*y=(EI|tRs z${9Gs3R2=P24fe7V|>=e^{!08JY@n|FqXc=!hi}Sh9?FmuFIOl+uF>pC!7`HK z3&s%B2Z;Fb)in1Y6EfIvxuAZlVymFxeiF6WFZ`nN0kIBbF}XFe-5+ z3_*L&Fa*-@;&=%2S_;UjVhj<)42A9!m&;CaZpo&v$)fKHGj9*Ui#zNK7L`I4?E+22 zPyZr=6)#ceAVN5<$rbUY2H#KxrO^}95b}!fnKp3xp6d+yh5Wose*OZnD+ZCfObs1_ z%p)>!Ft!F8n+#`2rP0VSTbw}@U~Di3k_*M{&|U)LKrK-A zjv!<*BWQArGy*Zi1otLS_R^C6veE#>uUDdvDIX6fOR_E5Ow~T>Cd+br>XP$L0xN27 zr<^8TGKCabt}C45%#M*z<|i`VGTD^IF9YS+su3cCqhN9({wE957)3FM9HwB}kq_eq zBmGM1?vl@*$t%ABEV1J59I=TkbAVJwAcxG7a!L^bMX4}_XjtRvTrM~HL{XZIL3E7l ztc(C{v!%QcFY>Wv`clH|k>!dLI@{4Xr?VxW(<<`d7uMh#W@7PV!_WNBG0<)y8OZA( zLL_X0)KmJHZQ8 z7K9xkFSHu09pB9v>M7|;1-BY2FhB=5r*R>P^SCmv(0cAlmn2eBZVT$+7vLc|6rx3} zQ!NvQ#8^_gJ}@!nG#yn`%lKgzwm=;i!cV0{8{I@T9)%jsQ+DRg^klBN+7l1|VI9Hg zESruo35Wfx)IZKrBd3f%*X!6K#{+Mr^t2K)!-8e}6i@|qT^2M*Ds@BUlEW|#vL=)$ zT(l>H;?goSF{LlCprxyLmDL!6H;uA~^kn@et}sjUFH4OCzk$o@5A9&oEXj{XrLpul z#anU|#VC|VU(ZLsVjY{RSHn+Ju@Lt(H2nT{${OWnMBt~`$ zv(Y3avkg5qK?NXW?gFZDT?rmLf3>MIh|e zSS!{}>5@-H!d{tGbwhDKTaFf%AuOGN_-18ZOE$JH^=;b&ac`nJsnu6K6=r3Z<(Tp| z0M}?5QgB<;v3{d!Z6atZ(sTbpA!_$_a~F%8Dp#FWvJ#Veg==b^MtQ9^8^8DdwAO{_ zlz6%gY~8FJtYHOp_H)fv87EgnYtqY}RSOl0PKAs@MIuyVSBaJ`e(kmjTURqRD{}|8 zZ@bbrA~SH=cfX)cdtm~1!!U7^gKm*TPdt*(B&EzGJc zGNMA_qDYPe`YyFST0~62_h1LN6oM@NLjv}^&1qDr8)J0jF@g<_f*wurV)W0$zLZ##^` z?wFR%5IS`yj5HczVyMFQI7XY(Z-5JP1(%|4umwZe5xElAk$3u~VJD`;&0xO*>O2B3 z5Q3Adai=FSlv68aBDypdQ%AW*@HmhpuW1F>SPE0Bj`y`>Iz?ly)hvOmsQph>hI!S> zS^z;*HEOIcIH$|HTFi=%W12WWbEultRZ(g>Qpn9UJ$P}2#PC8ANsmW&_PNPuu6#J; z@*;&HuIT=p78`ZKDSo@>dorQV8cx_QkKp9y7MKi-OU0j&Ics#otZT}M`7ZnB<)BGh zt96eZNiDYOMgYlw;M?IWqHLTetSMIGJXa%r+kB+4 znq9`EGc239E!%w${k2@ zC8*Lsn2}L6V!rB&k{pAmyw$RNir5#;>r2fC$=c#;&4Gv@;xx`@14G;hGV7%rWTA>)eC_ozU;=$q!x87oC_qk%WjmkPMyCC!NwO-O?`|(=%PuH=WZv-P1oE z)I(j=N1cWwozzbq)u+>lxam7sU4?u}RdT7-W1W{^$kp`%nOt|lkEqQ(8Et$0H1qae zg&mDcz1LxPxQ@Og)lzG1~v?*@yjeBRJ7T$kt?>4I!$j{(|DA zdI?McE2SFBqCipIhm4de1KbZyHOf6nOvZL#gvoX2*sVR=r@i0pm(M>Lh7A4MA9vfK zJd?4KqQLYZt*WpB%;X(c zgO&oKSs7Av$@M?$Jyi*n4-!VQ`89w4~{@?l2;-fs+hkoIyot(10Qht3mmVipOGH}BZ`7-Mxt?#sh})WNz!a;n#x8F8EH!+l*5-k}7DhG3 zKAvFmCeA=ds5Ij}Xx{}G>d|cPg_PO5-I@B{nUP-O6JGH9wdwhu*qfgI@cRnzqkifc z9^xf`@DrcgrJGDv+%v!o&(Fiow5;$S|9y#T&YZB$aIEtW&Ak0;EcoT^KcCJ<+U`|8 z^rif9FW>Jizw#en=ZhE658p_2f5`e5_Jtox61&*ApQA2@FB7ph1BH4Jr(Q@ZUm)4IMs&7_nl-f))=-q?l0Q#fJ?wVvOjK z-@%C(-_$HID|>xU{5Bq#cuT z9D1{A%c?Ac4wb2LtIwz?XL|h#)~eZ}MxTzI+El4XrDbXAWQsH^Sf@8_npJ2;-M>(E znc57SHN=;1)U1Z+>#UG9gw!sX1^n;uFGAEZXWoSXZq$l>sX3E`)n@2b2>nn){V%lS z&kg;IW=#4lRfLxqVpM4PfKbxkRZh8D;;BFYv_FHvR?U$fn2Z48AdHhAWAbk4Sr&NYPqGGd3DJXlt(#PC6#xYSyGy0A_~yvWVz_19E;1$2O9mE9bdON?dkUZT%>!7GT;f0kS0pR1(zFV#V+PuWsb|5%4T+?54^X#pDn_2rQ(HSKQI>R9U{xIy7{4R{iK zo&(jAu6#jig!_^b1dm6yvk<6P3rZBIu=BmXmFiRnA|FA_r><~0>2hq4naHMREP-eU zVG(gzy6$JUTVYIDA{1Q*S$LApwj3oB0CJm9< z_8ejbHgJL=f?M2csF)HL)vt{ivIfQoL^*-Df>dY7(GU}&#Hv}2aZOasDuni@2>uC6 z?4sipT^XiM=`xKaJm8u@`9Lqe5sdUY6n(}x9VpuIXQNw^GY9xfqh+vmY`Pa-Ud7Dw z?T?y}gr*vSra*NiQ)}YtW!uiDtp-|zKowcd(cp5Je;9Ig(gE4z%JB~z@@++Xid#hF z=|tZ!#5DDd{vs_O-B>@~h4w5_28Il^mGM|@`vwGbj zBQ3${#%IqVL5|49wQnPjSOQu)L24Eve0>A#8iy~5)K`Q z4uLr16+D88Me}sT&Tu7_u{wYIrrER_EeJ_0Hd)&i_m%jKN;rfIjBB(mUtof~JfCsGG=@J;d#PyhG zm3d(8Cb+>6j|z`H z*m=~Wvs@?0l{(s{XA_j0pKV1pBKz9d&bFa{OhKo9wrSi(Y(jB4-E(4E+vrZWx>X!* zqrQ=t(>$(EF?-}h6>Z)4&bPi>-0sb;5Z>RE_rJ@;>rmf&-w02*!Z&H7Rq-CeT z4fvUx>a@@c&$z}nPTzh5Ikt}t;jOzpZ(=65&m-r!%2&>Es&QMxzWnstFuUNzTKRNT zJbAks-twON{O7E$Cd~2aEQa>*%D*_2hi+tOIhIkoX1cw_1!w-$ zTHDuul)Bi*PIl?0oYoLOd)e2{_ObJv(_5x`+viUAr+Zw{^tyZ9_s;je`~B~L54_+9 zPx!(c{_u!Tyy6$n_`l2QyKH}a<8deX3M0!Zm$z2tnM^(l%i&>}LB@SqUiq_b%FCNq zZt4Y6dK9ic$(^ro>m~ep?ut+Iw{MOW=24DM3Pcdw2t8gKLWOw*pBl&*{!KJg%Id~` z!co->R+men`BBagITFq25dw(g^H;>Je}0o|FWlG9-ht#d%kF!B6W|NKd;ci@@skgK zfnYx~&e*IYb==XvVv4WTxEGWaTw0fUnvrT9)g8jNL^s4FJ5>YZ3tpSs9#1XDz)M?bBKgW$b_HdgisiN z^Du>0P=#0c4_hTNWN3ye;(H#5E2o!ZgJ^|V$T+T7hwfvE#W9Bza)%AkA&_SlvUFY6 za0{HMU2m9QacExrpg4V%8bZ=ast>{v5g}G4F5Hcx!kEoK^*k2D=D-iiz2ALTMsgP&U zkM-D-60(ypSrOlujpFEA^9YSnd3p%tjnf#8H;EWRIfV26!z+&nktq2OS1Fd+VNvLK z7R~sPKskLk;f~pdl2B=nCz+2vIXy_UmsSao0?Absv6R%%l*@sWkEoN`SC!!smsP=# zI@pN|C^?%XKfAI?83}@WqnVnqk!R6LUs)WXu}a9;i&6;>lA}13353(rkX>1hK=_&z z1)AOkUYCh~dy|8?Ssbr2M z)w!6s!kX#XlkG2%nKGzEq#U9mONxQz`G@gm2u}H&Ygi#?+L6VmDx_is zj6@oR)CeH63hQW>W|0S6s845Vdu3>U!RM%=n1-#9rW7h(hRT4|XI5ueKWzx87$T?< z@qE=MUMNFQv3H&Sd>yErvF znb8_ZDO)42s#enKdrW(YDl;k;{t+56OEfO?v{9S2D;uR_%ZXc?dm#II76^tdi!gD^ zwp|OYxzd{2i4Yj8ok2Ua-f9t8`>l4VL|;3j5@NE08>?!Iun=pR2t&62@~^6rwrBFU z*nyZeh>n@(x#IJKyt}LuxJjTJu@N!9C|bY9S-L_vw;T(+ zy>h<=OF1Nxx@>8#5wVZ{sfsJpD@lDDyN{^7_P31`2&)a8yDobZ`b&Vm>%o#Cz^5lG z{}sR0@~=ROx7~TNZEJnKyGks(p^+P$!Rx^=timY!okLQ=Sd z`wh+@4&Z8o6Kca|DH$|uNDz5fjoY?=I*^o5E}iySS*zk~|@PjJfN3 zrR^)s2vN;cbsWZgy76qw(wvDF63b_czVP|Ma*MP%oVQDB&^SEJ|4hHXjK~c!&Jz62 zm*~u=o6J(V%;37uh#Sq9$EEoE!Q)z^>Wm$d>Bc~chDh|449u*Jd=oFtzmHr>u_(FS z1G3|2&%@lEtg*GwOtQUUq$-NOEZse=TFcRV79^RYSGQVx3D?OT$lV zdozu}0L+Ckt%Z2a%G+zxGThWU&B-{8$&aYkbRE{-I@Cd0)GKW(Go93b+#GW4*m}Fl zD!ka+Tc3+08kw1eznXn@TA%NjusTwRDJc&h(jk=5+67!cByvh@sY+UHnz%fp7SdmW z@SBkwe~fh60c|6eG@C@dIEr-K6sp@P@|&^}3$V=wvTZ~TQiz|*!e%Y8usf@TTC3dL z#a8W$OMQuzy4xFi29juqGIPyVVW#n0Nk%E&twG*)Eynj{1!Y~)BubIPU8FiXods%p z{{7vl<6VPoCYpfmmhH3Xgv`pmX`R2lzoaZVbx!C5$?5uO=esgQ4Njm&-pUa3=W4wE-w1K$ z1v2Qi(dV#EDmh4sElBHv{=W!K>IY7r5##H&{+w%md(kJLeLX*VexS_m#?&z9I?|o5 zj^~(8zI?9b0vhPHPVBW|=veN{@oXE*t{L*(ehX+KUWG(4qkRaFdhecp@!o5@W$_5W^ZWi@?^bU04WHjg z535^$(2lzFp$GIpJM~aM_G}Bhx%YYahsw<^Iql=}p-1x|`U?Vp@OtXE>wfh>c=O%( zwiEyNU$5^N9}614H-hi+Q!nzi;m*uj9Os_T>1K=Lb>5S=`C*3n+ok!OFFT$OU1^Fc zRB(~$9{Q@EW23)Zr5}Z;zxtvd?Bf-b-z@vM?_#a*f_$6%RI~fXb@Nv0`@|n(z;9f_ zU-QMk{LJ6{&j0+-AN|rl{VJz-`eyx;hyBKNX*CCHOQ!wXKU*C4Z%y`gVZ>6N*8MI9 z{>8=q#k-X_?=D>pP@utkbPWF{a%R6wQve5Q5)@lW7Dg8l^!9z>WhVF-o|8!Cht zQQ|>|6&Vt=7{Z{%i5)$D1WEDXK!+hsoC#^ZAkws=j+!$`7X_Y?XH6+pgGrYvZF;mO&zw4c8WmgCs!)|g z*}k1Qk|x}-XknWDXP55YwsZOZ1za|8+_ZxW`bCKME?Kl`^%{=o7V>15k0sK1wd3kH zYN4L49q4Ck)uU07-QpCEYeCGK|DE9+sxV=khvlxdDLJoh%ChQEc7tM z*svKGxxv4M=M^p>L#!#fmC<8y#u1F)3 zoNdYc8WU?sCZ}|;z$1-IkU}DV!%Ip8yVT3c4;f?WJ1@uN(lRlhBy&wPg#?qsAi+!V zOS0aau}TE3?5IpXLCjM>#q5+5NkW?xbI>;d4Kzzd8`SbkE9&`Y6-OEKgQ^&h+tkrX zD_u*puar8m!VLS2>CuI}Jo7O+nS6=WMBQBeRaPg%gp$$3QjOD567R&-Ra?!PHP|Ts zytUX~>lBdKRxSH%Ni#u{a!n{(3gK2HXs!Vn%!#THPa9&(VQX}v=h;$tsb7)$NO+|y8v zf7F;rAaMdY*P*Vv(@~Fo*0bX?5l(WYkmY<>V)H6aS!H{Vp4KF)WsVeFT?_K}U!VDl%F=)MeW+82!k;uOsee|Q_Ze3dEQjfDhk#W}AFQe0Zx#PM_T{m5?QQngB znp;0#a^lsGUUi8_Ssz zVzxf}>CYia3EuBU{bS<)wwJ#g zR_(9_{HcU4vJ&E zA`jb$NSbAhKSCVkfVgNu0TR-Skvb$L6N$J*a!!>6)LZu^Sjxk7@h9%dVBSiCwu|Jk za>yj%LEN(o73MC1VRWMyu_i@ca+7~mqvZhoN4H8=5}0CSp(opT&d`bSh@ZSB>D)ON zLLv~CQv4?Tp0~Mt{`&8G`vjcoDz`&e3UZr;YLxo=sljHAY?$Xn=U5EE2^EIG5LyZ3 zS)yXcS22?zA+#t(2VxCS2}BO(;Dl?ea1Uxwb8)OB<~W0i%K7Qkx$K}ZooU37hESdr^pK3|BX1-412Zp;k+8iZ5=(d%CO zdKC9~&>5uyAXlR{x1x&6S-pbm7Q=N}#YHrxWb~mXyBRS(smXeGJ(sQ$S3WnTmbF2J z-Dp!gCwtodC5?&#>ST56E_Q9!t7??30(q*;;aYK7a=mIKMOnqVe~>4iGV!U?y-%4bb~yIS_*j+n{8Y-raw zTH4n2P+MYSH?iryk}Zu;w9RI06}ed#La}EBZY^TaH7N5fcwE3TEpTO<(DkO0tn*DE zef?`!eKI#`B0{kQM;x6Kr`W|WhH;E#JYyO+$G+uhagBAnW9-!KKTzdykcB*CA{W`n ze95t4oOom=H+hpTuCSA(JY_0Z*~-01a)cCoWiHD&%hc&?m&H70GMBl_Uk1#U&Aetd zx7q&9Z-#T644d-#hD5!`t5X#`n0lYT)rqJKz5Xc)){w zVsGPBkOD_|!WGVFCnmSx=!ROd7d~-{SNzP@+FOV@dtpgi+~Xey`IRF)9T68-mHy`r zdCFD3a+bH;8^%X1{2M;!wMzp(Nsv&ha-m*MmHAKgbdf0f{d^4g&)*dx?q;}wmbAfge*!FX4n0C9fNndkdA2A^VQ0;l(Y zN&M=C?{;;#)F8iCkB4lpXxv*}_lHOE?{U;O#C#-*!uDhQgH_DM6`3U-JKi7*96XGs{ zK)~@!FOX=yf?$KL%fCL7K)V|V_-m_b9{(7xl7ilrN& ziHJIQ7!|2ILHYX!QK`K5dp^X9p!fs3A0&vVBZN^2!#GSpi8#Tf@SQaNRKymH4>(jqDEz|8 ztHCDZ!$JItLad`w0YoqS1xy6P(G$Z_S;HhWMd4{b5j;C*us}ngyWRV~cqu#BpoWb4 zhc7^>YPu+?YpmE)k%{s|r$`Db#6^+%hh2;&fBC%E_@mTw4^~tW&l?DVAsB=4h+@=5 zYZ$z@^F{Y4m1nfT$*V<^xWj*Ftg>4vJ2EM)Ku4BZ4ZIsh@8d%tj2H5|sQOSw6j>&IM|M=9bgU0<51Rl zsAV*WowSCUR6Jjy!k$}Y@F zs5~2~5K3~?N|}^88{`bEbjgh5%BGyis`SFE%*vZ&Nv!kAkL1e~Y{sQqDXqvqXp+Ri zBg}ySz%%5da#Tw=G|FS_I&}<7TMWw+2}!|=rsZj#lSs@Dy334o#5&5$khsHgj7QV# z!l-jhs-(--d_blgOOLck&_u zq^!+?I8FCdyVU#!XTZ+KY|W^Qrq}F@g4j!lpgz{Ls7e9$ArP!%mu+T=~!6iXYO2;B@)PV`L(4bHtJ&LP$*}a!h~UYTe9-hv%b~Q=+>}qb zv_hsN(aD_0GNsBXZBjgxKU$nnM`Y1G{*_BxRMM|B(mmSBsyk3Flt0D<)cthNG~Ema z#nS6L1Cg2(emsNB5D4BO%ao)B78Hc4+o<)R0(XS0UUZ(bVFL?nP(MXQR&~{ZXe?Jy zp^K_IuZRWL_y;zShl4q(lu{9v!q0+ORe@;LsQ}D5g-@jj)`1{a5nR$cJ;#7_M?Tut zv+35Vv{i$sRPB6Kt>D#TG_OMaOlbm0aFxs%wNtQc)=!00Dm~W-4L^RQ$bLOiT}9Vk zUDr)L#ZjczEj7etC0EWszol?XE=13APzvK?#22N@ab-kjkXW&#JTPpBBdl1-G}x_R z*DIvMjU7;FEr^h1(THHokc~V3nC;hbbx*(VK z2$sskon2TC#Mh@xT1_R`)w2TjJ5^d$k@HguWbg#mWJBE(0HoDggCJFEKrfPX&h;}d z=1H%FG`_JdTk(@WK+pLE-RHeV z)lIRS1qH`e-}r5^ zs^Q{lo zoD7DH(o>Psql^D+sO79h(`(=d1_>ZmF)BLB6%Jw@7LXc--h#v7Bql!CMLZ^cGN6sO zo<)gq}5oQSb6A1gWim(xgu<(t{dx_4} zk%JK#;u<;QD!Ca(xjlxtKGv8wjKih#tB>+z-6I4Oi@063W-o<@g79T{5r%NcWk?iD zz0hPDe7;UDT2K@SY7z@MFf1%CWzIN=I-Lnbvcrgff z)A(pAz}f}EtvYbjh{-FdoxZ?aWC&zj3{K{hCL9TBbXIGOG_5+TxY`bl^QHIE$!&`G~uM=Pvj$j(TI@al;v$BpvIH=gJKLt_F{Z6$W=oO>;@VB^}f z>vX2(eZHQO8ErvESit@UcfRa=QHNxjo5EISCl%@DqY+SX2*-A6&^F?{;1_KI)3XTv zKEN7ith3S1l+2PCZHZw_&5TviNo_>_rOf#z0eWqo%k8z8?IW%2g??(J#4p{p?fEWR z4UNu$0PaejZ^j-JK7M_{B9=tW=`iu?*@ON5Q=cJoN&uj*_ZIg7!@yP@@@`4k2@aLW(-adr=0YDCDt}? z6i;!SlQ1an+`xj%eD=sAT=6gyay&Gf9ACWt?D4=MP`niKs=m~Jn5?~3P#jUzwmT4l zJHdlHg9O(EcM0z965Kub;O@>0?yi9ZcXxMpw+ttr{r`8W&gI$lR99DbRqwueFM9W0 z&r-v{-(831I}hVAfeZ2E`!7{Q9G6Q8Ve%Z3?LpJ%WlCX~cfim(cBC1RtdVRj3+9Q|P zT>KbNCfULw!s`B}l|G<@A*J{W@)T}k4zkssx@!v3{k5+rfhpbXY$w5xqOu^{4MEg7 zl^fg&k0ct~zRL(c?YSD<-?$GT*MYsKdKk_hM`V|?9cImL)e4m(M_muBJ z)ZObt57Jj!VTMLP{9^?Z868A);yx}1UC9elOMt$LC07+owVc<}4<>|a$WT&Y>yjvR zTS4g*JwjHG=B+)Z+~B9HEPN4cvuGm5=!*rMMWK2#KieA6;&=W%QK9c7gadO*g}ZRmFp2jzCU z`Mc=>J+2)RZ1|pk=C$Wr4 zD^Y?KDtoWx1{o^jGR{34xjvo?HI%~M&vgDV5~X7qiTm0_quojfu1$-nf4n(A zePrGG9fW|x^5e--v4!n^#$0dF(x5_zOhvovMZi2j+z3!B0o|i@I%~)Pm-p&}9 z%NDsGAV#Wn5G7?Ygq_P|UTz)eYR?6Pv`D@jL%^`3jP=8e9ZU`NcFRnS)3O50P4hZg za}A3&9n3B3-mlCB%RvGxZTp!%EbTudvRFFK+h18auSWz}f8DS6uy#G4bg*{+eG#xH zZP(vX{XK`eruqlreN?jtMc}Pg**U*~n7xkNh(HJ){MgUaX)Q=R*!|f^wHMLptgeS3 zWo&jNEN45Gi{XPCy92u}!Oaj?lOE0l_5Su4bBwTHBlOqDTUz!3vQ_bZ!PTR%F(Cd2 z$y|0Tr>_fQBj!-VakcY--M=RZ`7a&h zsNQ<5ZIV~1?GY$Deg7BwuLAAiU{d039_{T3V8%O@^kD%eEx%n=_yzCx=3tgwvbi@( zPSJ2G7ZkefwOqk}`(nTUx*uIN6I9-!bCu+sL;NoA@=s;0d-0X4d*o_)l(tK;@3OJW z(^<>KPx8t1d)vd@AEDeb7E76eyx}gk-*;?|I?x}xXmrAt^9~W%jRhak zcDnH|cIa)X^M`m#vj~Z>>SnP=ljm9KR zS{J#)@1Gtwb2f$`5#SUGJu%PNJa9-;kqx&BrrYzpHRw~w4iAZ5z$X?onvx`V4&tlC zMj{28>}XhyhQ!a9zKKzfEEEf~GdczGLZA0Uejn9vmQp;B4wy8Sc4{@}5azD`M+bvssvGR@a;sdx{4w z0c)zJ5`PDkBid9<6C29+KQoH5FMPLgtOrx-({P!vjkLyWU79ffp{Gp!;qtLzbJ<9)JNi{H!^07<^f0URhIKlUBi1QS zDC^WX-4qzPD(cROMHYicj4BZCdGep*<*H%=8fEOaU=2UJ!eTxxKT1Hg<6kLq4CjR` zUY8o`T^n}IvYtQHYSji!n|p=4Ym*k!VW+N^*s26eGY4Ptr}Qg~MRfZ24rYFS{E$hB z39r}e-b_1`UA1HL8q>eOjc@xDcJ+p-l5eI-)$;X>M7?}f#W!m8?`bD#WaA2B$3565@nWvMeml`11}W+_OexL~Y`y@=*M6 z47Vq@#pz6h8*)%2jA0#!ODd=8>c#~4ChQ!t;xF1Hs9yPZ@a^|7uMDR)$MXTBR;m-5 zY+KHm(;b|3@*qlp6D8x2H2mg&)$849OvP%to&p_q8Pmq3P9UjK9o?3Pd5&!k<#3q| z{Vb1&%nb+5EU75-(sRqQF=xV4)EzcUYUg}zX~~4oC)PFhGaCyDd@kh&IpyPtuvG{c z4#44C!ouLG2U{g5yG7JB-eSqoKndt@?I`#YstbZ~u%NJ&qRacPTS>6h;LMYN?`?a# z_c;Bm(d0V}q+*2-QTILrA@uVFR4;OOW8)tZxkD1q#7}Nfd0F`jXP0_zT_3m<9X-09&QOt+0v7`1$hdijg_=;D?; zaibYdac~Vq-|gY1}eEE|>Z23P*ur62kZsw$Zifray=bu89+9t$3Ss^iJE);B|*uD=%n z@A6EC4u~WdyLUoOn;bXoOV0#Q=zI5Tg2C2$7_`>Vi=apR9y3>FU2;p|9fllEGQWk8 zY;Am!M{p^4E0JltZ_+3M&Yv7HjJ%y7@6ae8F_#>O^YDY_L=7EyXkNH7Ko zy&o#}9BF72)~6(ocQJ+o4dG?$|HNXPrxYp7S&%MH(Yp^veA9<-vi;#9^zgoaqE_MK zMNBm+JP|htJ90#&)p#|#AZqWA$d7#GH}d8s&@??|H`^M)i#Xv1IezhW%~^idR76<_ z62*nFvY<)iKAGVfMemnvQf_Tif&nskIUwmrs+SN3`$DBVG*~^jt-0-xkZ|FvUZE#6 z7I?*y&Yj1z+^R1oOb7o|u{&vFCNoSa!bqmZyx@PGLwIR+RT@pQpD5Tyb^y+OW9o~C zR)xh(61+1e^7I&dGtxW@xYu8iICO?-dUk0{Ohc5YDl@>@XcIg(1gcuQYy*wB9YQ!kyLEzCbWuXb*P~fHhUq|kkjMco#&6zFW_$v zRMTdm;iysQ3S+nJ`{e8A&psi!@H+L?W}$P(J1;?-?6P z{2&Wsz~;uy__x}mtu2dal}{2XOg5c>+nn4;e5B z!klQ#GHk~&LjJDYqpt#srK*uJCQgGCh)dm^>YPBSn7^b+8FGJ&rQ1x60bLKV%$<+) zA~z5A2`bu!M_3oV86q+^^ToTahtPU(#I)v5!uN zXj#kJvaHY4%2U-_WYKkpc2NB2Sl$YRt+dms^3tR~erIWgXW)SrYHdSrPl%mUa73IK z64h)GoSCR^oGwvy#Pw{cx4uq2t{6=K5~oi4!YPV7FeZ|0`CzUAbyy3!8BUV&?pKva z5zwcQwEmD<$Q@gdKX9_2odtT<}VQ#5u(cB!b{qZoWdDih^ zp5xGqeCTi)&O0JPuD>Pd-a5H_D#uK!5M4ZtC|M-^lWf_iF)q=JTn1}VSu2n(A_3!3 zNcrPe>tuWLy5D_}i4_Tb`DO{#VtYoYUtFd|nFLL4Hal)^k$$xZWQXS4grEbHe$a!Jj|Li3irY$bEYNumFd1dugKkUXLX7Dd|&WnNGeiSFS@u0ZA|;|4IZ; zgrtMq;8unsKd(;!`zU6FLa=c8_j8@$^kg>SoyX?kEe3lKBQP;Urc%Y8;u3!BwJ9=Z zNt_N5T=aWt@2tQrdQSw?8dPoD)?9#HGB# z2SgdyQ2m=o!xZQuO@zI1!bP0l!lS6!(0rve?euT2ykPdqO|<1mKC!54ibO30u`?Et zhw3UN$I^XUFp<(L)WI@aJCh`2%$c_S>*XKunyiiEF8kWtgLB6%><@T@4O?Z8cv_M6 zdp#>>3HOpc53)(kwj11iTNhLZ?Myp8l~6%%i8tiFH&K>s!N`B#ZLa5+IJVWF2J=X( zt}3 zu&}0(`;0F9=HGu!4E#PjE=O1{=P|4wRzI2aBblI|!|_fnDK$wdt2N(WlBrHNoF(eZ zw`ZHszHAp=h!Oq3ygWNS5a(FMU_RWv+;AG(zn)sz>|tWi$-c~$3~AH;^9$=nHjr7Q zejrpkUKlZ`1dHPnehrn&$3KMG8~~`=X4uIu!ZGQ}RSD^08jfq!UWoxM)D{)9?(%v? zX?*1o7M9?V;fs3Fa2sLpY^%(jOGwRz1&%m^{NI8k;f`b2A0!HpEWbr z`n%6eS@_k~&PK0v(eALH6GN1oM1ZVsrfFvTPiPK1T-Zv}_)keXd|kdlOYZ9mx!-i6 zUpQi6%N+}Aw8djFc;dhV=af)<`oyxv1sc`^Y;z%Ehs|wv%{|M$ zzq)tQ21(2u4qtsxa}x^50}su^8LY}WuEZjZ%JfZ$6A;~b^JpOfYlQ^W5rs#AqH65! z=#ROr>CKMLCg;9(g?p%_Km!~;3Sjx|!^OO_ffSpe58~N+{Mqz|WEv@ZDB#)207>Qq z^?To?^4OJ=yMCP=Ed`y22C@z6)9j~K9fLf2u|6H$K`>!P5K3$*W=L?y;}!FRQ35$8 z&794toBZOmyeg7S;k1o6x83X^HwwOwP>k1YGaCk%=$yxtS3lrlokZ)uJfm=cJ{tTH8x~1$Y z3}1+0^XAJULr#}6%8Zi|=qcd(Nh25=Nz}ZX)xwweIF#G_oc$`Dk8g@+4@y7u`u^sX z$NCaO&kv3pr6!%q6yh(^Y%en8FScwicHl2zJ-@#}%orRg@wj6_e`!nSk6ofFf88qg z@J5V_Km+#I{j+Xn6_AI$e2Mjrn``&#Yj3l+PThLR5iqVn?5H4)tm)mUyluC;+or;x zuJzHaM<^s$5#VVbDj<7p{PM~c@T1OJmrGxFdUn{+FvHF=`JKd#R|nb7N?xCS!-op9{*f%CRKZ^{!e1u@{6=mg z3UqxTAAZeQ`X!om&OA~K>iV_ef1O=K8VT;49Hm-#XP>|It$Gz)F8Mo%5jEcZb+M$) z{PJ~5O(NpVR}nls3brX#5)?xy&yK%SmV_*^g3(_8LOMGo?U7~&Og0g^62~mFfmBIE zT|H3K&Jt4pL!W+b8-Kjra55gjVDQJI5)Z$#h%;hOi^^}7S%|w4&wT>^E{y(~@psvI z(4xhCvp)Y#Jz%+*jSL*~>r-j0uW0S8mN|}M4^ZpA85NLP;4Yhd zyVjIRt~C1^`F>9IRcEpJ>h|U0-QRu7r?w*EAWwQXxO*@)piJ0j_nllg1e0LLP$U@P z9gP}Po8J?PN|xh)2RN@0qaM4q`Od0rVIJ3puWVLE9YZ}E_CuGS;;^MDfm;4aZZ#gH0vzp+f!^8OTRgwb3us~ zPPI}*^}DEj5*fymfnF*ff%o+5WitO(T!9Z|1|1ZCHs-Tn);$kW_ zB^NK+i)UgELWRP^uvRU(8n(;5ke%Un+LISUbwKh!<5m%;Aa{7u;rzI@gCu4_;^%08 zw_De(5qs0>{CJQsyV-T;9`ODS19#kYMt}N4Xb_bNllhzlML`HQN|&|k%^Szz_hT*5 zRrMuP_GnW(tzJc4|L3)GLBu>cN2a1y)w8cRYSC9sgsRcZB?KJNSYMBR%s?@@FEvn= zhA1L9r^WE+QLwv6du>(zz#j&m4Hqf7D%O$_i(UznMpVQ=?hZOsen0gjf0u;1QeO9c zC{e9yUp8{Br+-Uzah6?#K;lKoYZ~eVKDn4(4WErskIJ%@B-M;j656>A9jx%rR`6P4 zM@{hKfSt!NQp~KUv8_L0iJ@O7qtPEMeYl&G^}AK0;&OPKo7Y;djF%Cq3Te_%FpS}> z5fj)?;g$yaCC!<5DU7%ECHvKK8Ii${lawuJSruDPZV2hB#+c5X{{TM4I# z<<$wNsb1QNVuO$0i5A;m+Km%I*WOEzd6?NsR94j92Ye^>+D$Qz)jr6uj(y(GbedQ` zNR{Z)KFkY5*EuQ>X-qo;Cnyq`YS97Rj-^>)J^D|R<&KMoYwq7*F8%F zYnepQ4=C!MH?>9XB&)I*`fQ`e7_99K(M;-Ev~yuBJ4=!{csn%K++?{{+Apo1(b{AB?h}vM`&o%Zm#q`P zV1lfoSCA0nFO=ag*P1u^(0_4{(WRw7jdI{a@7o#PJ-w!&o3Xh^(;|jFNXvOzqV9`w z_LS}gRkiDH8-$E`j{u=KM5lg~8gIlyupQa%a}@#^{cDcm`Wa1T?XLjPWx&TbLmbR{ z9=HKGA92Q2987HC;Pi7k}o{93W;QhUuqXM@i1jXXv*09U(QD zyf_HQ&a$789i3tyC@Es)(GjF20?-qbCWv9{hssa--Ql1S7ln0${#=_le_DN`uEXa) zi3uUz+k#Pl>b?ww1d7d&qFM6x(DcE%i)U|Blh!@pF=! zFgP>)4=_&{WYAvM^fxjw`qrL#wE7?QE%`|io z?}^ED&`7TP8GP=@BPoi>5i`aaCT~3mosIK!LYX{^Tdnj6rtGZxl$cLTSMtKG!daN? zmUJN0IgDAl@deRsmQfQ0n~%d8r?MnIL@mh@Q?RGW8(w5%wJUR~Ue>7xA6iq) zt85#}*P17|tKVBs4gY!r2B8{FYU6$C3M!LHoSc;5;`DUy()@t>DTiw{Gni{HZj~;_ zKy!gZN?bym+nvY!H)iQ&RPRk_C^}p6+gH|~z{t%gQZrCvpC$UFkJuw#Nd5_RjwgkR zF?>aG!NzKSu#ib#=0UY@_0_S6qqhY8!(3Wp14CpSvZU#rs|TFYCOe_Z7_r!FgD|J< zEh*i~`hinx2_P3)StJsKS}=$(eQqE3L;tLq%lme;FHXSHoJr`S-O$hZwy<&`7?L_- z(tooG(u-%cWEm^*6u-^<=S_B5Ah)fqPTrQcq)LXZ(=4{RptL+>h+Fm&wKvE##Xee> zRUOUn`Bxx(wnxGGIM!L^;slmo+i}L4c?J$;yXfk%Aquav;ZX#!>EI?`0+)iTFF(HF~-o|AOz%?aQDPjTmVH1rN}1OGmo#o8r4H zln5-WM+a*Q0B7z1JOlgD$G)=!udm!=AJ0thbu_i|R>(tCZvt?#9IuG_wsFEeMZ9aZ zW~$XaZ{?UYk0tq%#02*-u{aXH+sDUSrcLEq01w5X7*QU$&Dk_832cjtq;qJ~2*;io ze9Iq(@F;MyN%-B_{`tj{U||+ey)W!B+oCx34%|kcCv+>+D{V}y`!bhKN~Wuw;_o+Q)~|ZS`J@mE;-*HgBJJ~B2KNt zK#dCvu@p3P@{_kcv%TiJ`E9Snn}BYCm5VMjs*g5_v_`pWZ#0%I0-Z`DmL1DTc316e zM}L<7d|QG39XgpFol&Y!UU+YMgYS=#jr(>*J`DXLAD6kqyrR1;8?zHVPd6Lzq}J!f z3<6;pjh^FEy~#xn;sk2%QukceSRmj9a;LP zVz3{Eo216B83M!~07ef&4xtZ|hwK;Rzhkeyp{Xsq(#5S64^~#YT+!An zA;aE6Yg#jzoasy8kg5P!JMWx|7yOvhN=mT!R~M1hFae^_8x~3}M=0DCK!g&e=*MYs z)b3Hu5N~aFVjM+rRdQ_H9cOgdTtycX#+?f5UFP?q`m01lD-^22^#!|lsPt-K?PFI= z=R_@v%Vk2J)Dt%2t-CaG0O*c7x=86VcuoOL!31OS+^4++MTCiRXFLjye4sRL1HiJG zXzk})o^d1}0f!FLc?57jd=nP=TPqFdx&&E_q!C=uokf3g7e0KtJaR=ra$|9jx1UXR zJaq*IyeKX}qW8*CKOos5=-W>X{n+!LI(M#Xg+^A1Vors{;~gV7;IUH1qm1(dJ)mm` zLy}X`yn}FZu>^IexcV^-*jGdz(*W=xfo<)T5!SIhWo2Jvt?OO=ZHD~nqQVd&$fvHjtJgm*wGOR~t zY?p}0dU}s!5TKkMOP^u`mSy0giVnj*ZHbjO?B|KS@azWd2zxw*FcALspq+g%`Wq%e z8#*BPit2)m*eikbdkb#^h^l0%t7tac0V}*$|Q=r$tBSeXIh{PQ@ z%cv;rCV0#pJeiAn1ZI!x*(vi8FMZPB;8!nC@$St)iu<`BY8$tu(BKv1$Iee^1e7gkB z56QyI&QNc8kwXVEkKcb!F6(&ZNS<#<%Gms2U8cB|5ZVgGWU86Aq0TVC26n<*YNbz< zv}zR#%AyQ&K)z#+q${R#Ct=-bPM!-YN}K%H8tT>BUM-u4wWw!q5OLw)Ee$dy$C*^Y>?44!CpxLy{<6yq8?u5D+^BG?rke0((KcowpQ9v)g!R(+J!0cd zfS8TW>tsu(QjjJA3kRz#di!lE+`Vy9knNU!e-?OjGh;9wTYZD^3psn>2aLHA)9QpL zUc+ZQwMddFfJn+bs};c;`%A@z!X@L zh9Rvw6(P4w`zB$r*}n4&@?`iiSzShq>Cv0Q zpFd4hZ!I{wI-5{Rl4Nn%gM^)XmOdeuH9fj3+{Rw&DGYVDa~4I~@m1VYuQKS1SQV&Q z>f2%H%r+@(qcJ2&D^_7-pa)?~utfg5O zt_D7#nIQOYwJ^nMP`RR>hF!RmA08YIbur-w;A&&2W%5dyYcH@G;%Ts(6jRGL_M8r7XDF0z|diIXhF+|7FJZG7@=l;;Q0uMSZ$ zr@wJq2e?a`PFT8BLyc;a(^;%Jnydz|?0|E`IC9W`yQP>;oj9G6T_hMkRkikMdN+Br%%J;?dnnPN|NM*Wum4HBfd??kTS1Vyk0en$R8 zYU1W>o*0WfxnONIvbBQ&YHrpcfo}#)0{UU%t8H_(vi8+6=XTbSz*cugB8rOD8 z#(vuD92+9~%h&B_8Yvb6qbZ84@M$yOg@V<=E9r#QZZx=_MbUt9dwzOz$!wF7w z%5&DA4C(0KSy5)$y@XlA+S#FP*^7LpXauHX+8P*1(vX=ilh3)=e0leTz}fUv!QdhlT{e%}smG*?v7hefvZ9a;@BKs&@06>_k|Ai^^2mn^(SF$P=E2 z*W5hlMJRGbI*h1H!P^vXfKf%qMnlI-=?`Zxr2JX2m|2p%GQZeXXDyM4dmzLRYFuKQ z89q!@n)V{HqQkl2ZImwoH6K_h9oMP8^tRY}(Q*|H@J~?Idx1=|nSX+(m2(;!Gn$e%1Zf)QXQ45 zDSn@Fj!l0Kc34tGyEHiKM1m{7(7<&{*T0?iDZkj^_xH>d>aG- zFRL2gXxpheTJuD0D9szPC}k6O8aj3~(jg7RlCnEAa4G^C6RQSzea(M*o8&^tO^7@F zvZm0Dei46Y!KKxHFz<+=`jxO(f*^_>vRcI;KpQL2*3t**Hu}xhZ&NCuRJ_`rVo^i( z*=#JU#Y!&J7X`!(UH(>elZ0QG+j666@z7)49bfs)&$BBUoDMXv9> z4R>9ocm2s)1PB+xCewn~Xn4*)C6=>Pt-otRRh| z{jt^>3!$~~F2Gx>>lTEYdT}iURN1zplLw&_WtDW7jIVyCNEa9nf2Bb8ov_Pf3K9r! zf77<#Z|msqa@j8pEviBL+m2EE^&6a#G}ZL;tCIVwA~dKmCT#jok?xz`bb$nSxITos+ly7lejjKSIwqXIT57*R9TCEXvmHH`f)vbu`#FhKuU`Pa3`zZ_ z{&`myeX73dPvKfrWBAQUtv7P)x8Oso>Ap=N!Oeh)jBbi%kqm@nNp}CjZU^q~-1{`L zu3b%`+i@6^-y|Jl{v^+hjj~CtfTP^|wAabA14LK5%62iO}L`Wk33UdI1u}N z+^`N+pR=KKoY=Si0v8lJOpL*yareDc{P$lG>Z!l*TkA-%S?eXg$>;u($G%>n1R)>& zPC^%Cc=Ja_+-c4E$sViQDkl8<^)Dr*5Z@2oMvR;$?LJl6fGw=o$++AdkKiw;`}#yA z)87ph5pypi%q0i5XQv4jbB?L{bPee0%P=#wh8=)bJgN*1Drp$@@-T z{3-noUOey{xbYMH;Gufqx16!g6BXn6GOWB*E}u`#E45~<)n7+6iltheCWBJsG|p$+ zI9^wZULTnCyPdu+WREPKueTeXudGFCIp{WfeB|g7OR&`*{vDAP71!2d+-SEx*#)$!j+|A zd$x>Qs7S4-&&|jUe}y*|A=uuV*ZYcwn=GV2LxV-~&98J$SoB#H0T)g5)4YjHAmWY& z!^PgBR#B5Vp>fXq6PZEOw&zN;fMjWQES&~-h7q@&yP2Vn41son7tFC%Vj`AIW=!%k z?~17gWdwDcqD`1~TzSTVnT@V}^SUzey2qN^{P^RfB+P<(yzB4nB8x28y6`mz7dE;C z7xa1a5@Fj7I#TyQw{T()3Qv#4f^9ymxtpNtXKvPA=7MPj1+$w(&H`zb=ETsC!RB)k65PB_a8 zHEy)uFu`YQ1C=tcC2wYiX}bCbB2AmTbCz9N#5J;QysAltd1Co;D~qL>KOt-MX6`d? z`n!mg#jjoWQC*wIiB(J6)?fWf3^9<*gNoP}_~mG?=0}V?N*wQRU`6oq*MLOtO=pu%C?d$|~IP^HOxo+t8 z@;$9eO}71YJytYen#Q1;rgPOp3-6pdg{`i{JjxySzj2qUd3$C!M1#K_?BUSikTPnE zRq4KDFuR=;SM4M?`fw;|a9?sb)F@hq2kEfp-Yn0)?8rU!L&S&OpALmZdc7CAV8x}> z*B+&A5tlD`ZEk^ssc0LJzi`R`l5f6A5WpQ&$(4$w?ZTyfL%29`{HV9JLvG3A!^L8h zjg|ji9o~w-?&w0*zTPx6+JwMe*u_RqNivKlcqUKXKc9Kciw ziDs%c*3KqML<+py;(~!C)r+R;TT!>OVrq*-k*Ny?4MF3>2v?1%Ow#)r;MmkdiFcK& z(OKWLG`>Y3i zj8QF*5|1bp_$(S%o|7B8OU5w#Kg*8bz=?)pNKjB}XTa8LP^VRs(@=^!!M=(*hVheE z1Q70tDZ(zXHt>xE(T3#5D-jUck~lhIF&!Y$9R3;mgcBM7982VU0)H}4%J@!%znz~^ zWQ5J3yCPfgAvA=@MiR$i9&SxBgpW0rIZlBMDe%-@HF6R4B&WqXm*f~Jiw~FW`*n28 zS6yzh#w{Ffu+@QExo1jX54<9B)4JHF6S5#-PADaso!Yh8!vNI-4mUkp=`eEPls~#G zISvhjKw9e88P4QS5pbWW*1c5ZKcZ=3RH0W-$c$C0pE73M5rspIN3Hx2fui?=^sLxw zm?XHR5}~V6oZznddv?Rn4_ZjLkHYTjih-On<(i{vJ?8PH9?sb#^uCn*M4);dovbTYa2v~!-#UhiKNJi zd-F5Znh(*{hiHfk!cl6USc$7AAg+8<3upMbUuGw=`foval!5S5MGl8bg|ju`JEL7i z;3~QLtxpjWzsv8TN+2KM8V{n>#2?dpEH;ErW@8nCitJun0|Adem{Fd6h+vionIAhi z6`uW3a%@qCXBj(xJO?;)ufz4Ucdg4E2MRtjvbdn`k)u5Klao5PMn}t2;}Z@G8LTB{ zWSh~;Wq5iM-Jr2!u`kBBj_A3wrLi8h^Z9v=QE@M*6up^Y#|;4$XdC|Zc3dCsI_y zIy3ScE+C$4YsG;0X}kW$1gx*7)6ENWT#{TBhG?f+quvXR#Z4u)zP5C7tqbjVO^NTL zr$#6~OMNWOb#XCgWgJ}JnDZa_uazqo%?Q8HE*ztL{ux=D zap$lioj3UwN8sHHqs}fc7cy4|i(A?+V=jG(SCMaP;kil!qjez~n|QPyo!gyz!2tpb z9g@ukNa)ufxzDq2Pc8jrbto$ef;(peO~uz8c0P-`d&I15!{4DMd|JEsk;0EcOIOG- zkI%b{UBqS9r2B5K{D)bzQ0GB)`5RmWl6`U3_G$A(1e=hZwPWb*WQN_X$8PpyUT!v6ty?baxP)AFez;fnnEGjNxZt^zA1e7L_RXCgQ^LIZWQ~-E~pStzySK zbzvOHXz4BjV%V0#;r-0m9v`tJNalX4?<`+D1ZwhjuP5WjC+`{=k;!CZY^ogWmpe`Z z-^`#hZ-;UUZ6msg8Ab0kdPwr>zM*~(jZ)8TW!uQEhP*OPbbbA7(DlaN-A9|lVV)2X z56e$In*?cX8*trkQB>c~BfEd?&R)DmS-$evqOK5X8vM)Em_>_EBaLr2O_*uP*f7ZJ8kR_GFhJobWJ>arPs>lDN0tu+ zDAEP!6PUg+2zWA@zE&kcGHFhS&4D&Dqse5W zuwWv=a1He!zFvs6J3WgCyRoPzZR#ECMzXj6kumk4+jqo>gdxYMM~9wxj?P5SA4{GC znqlwx&W0eU2U3FTv1Ay*F0<1U&~^!XVKCxcIVf71=9bPnh&LDu!u~q%U0bTjM&LjP zHeCe!tLzv*^Vr0LjW$a{_y~L?pNtZZq9>1jz&Y7hJ7SD$M$wi=CLe{((P8EB5?iG? z@f5iB7X}tT`Dzm=F(gD(EQM8pLiG@%Mx{Yzn$gKp3N5@K7&y&;t=xE*Z0|i|2K&MR zUcoI#_J6JXA0FeThT_p=e$0UEOVg=NrDL<`h1R5HfsZi-^sx}FSVh_d8{VKZtAvQh z*fa^A#w80_ZX3_1aF5V%G)YUQw)n4B;a!NX^(96-5SFdIr0Yi`gTr_+nPiSZ*Z1ET z!O#+3CpxT3&jcz0EIfihe8O0;bZm}iZHf@&MyR7AGHF zderPG>~N%1b-vgldI$5sNEauc0^v{hj-FLom^4G3K3LPPFf_!O3&q*xw z@oRAMz_wuaRuTDsJyRmSwL$cGkFjfq2`C>yfil_se5|;SK6u(u-?jZr%f4Z>qIKh= zct~YrTW6H;VLGJ~;CVW=OvR3sMf|j6ISh|KqV_+lPdb|Q+O-b2C^04p@ox0wg7)%y zscR~t;KiG!#9y@eI5H#;AmzjGvucnd?i)Gv7>R2%#jZRFSkHo&Tvv zKyiy{D?`2zG9=h3S-3e}k~`aIZ5?HcU1UorEQ&=IifVc6ymU(ZPD%oh zO9L58gJnzoWzj+-OC!olqay9XM@r+6|2e128V^eQc+1iv%QDK#C=Z~eU)sy^kjo1) z%W_W23T?_uBFlezmu4Lnmz|W?AXiMbmfH|jG}%u` z8OV$g30{}=-iCnokZZ0p%Tv4sx`(_s4=N5#Yev$mof&K1k!!;;S*=g1B|#vOw5Z3I zDqo^nw9{H~nVN#fq~px+u;5xYty<*QTH?{V@)2Tk_^PkYwP!?WzqHkRSLzrl>QOT) z58G?2hm&4pYjxhWzGdKih=iIY#96^ODLBxGzG(c2n0@#_U&cm(BA ztFSAjfK93>5m>9`H8M@w6-~vmHIgH>x+u-YDEa!fMTWp;%cy4QC^!17X1mkoK$&I- zV2jIXISdSd;u#JGAMg%f0s#6yzyR<8C4m1w1`G@gEG#S>92^1y0xBvh78VvhKK|#= zpUKF`$jQkmC@3f?DXFNasHv%GXlQ6@Y3b!Hm2?+^FNl7UwDQRhG85tQ_Sy?$bIeB?`1qB5~MaA#mzbh#zDJv_h zsHmu_s;a4}sjI7NXlQ6^YHDd|X=`ii=;-L`>gws~>Feto7#J8D8X6fH85V#-QC^8!^6|l)62`t+uPg6$H&*#*U!(--`_tVAmHcEpMimaK|w*m!NDORA)%q6 zVPRq6;o%?gt-Bn%dghy1Kgh`uc{3hQ`LmrlzLm=H`}`me$tRwzjtR z_V$jBj?T``U%!5Jb#--jcmMwV`_G?0Jv}|Wy}f;Xef|CY0|NttgM&juL&L+vBO@cD zqoZSEW8>rF6B84Ylao_ZQ`6JaGcz-@v$Jz^bMy1_3kwU2i;GK3OUuj4D=RCjtE+2k zYwPRl8yg#&o10r(Tie^)J3BkOySsaPd;9zQ2L}g-hlfW;N5{vAFUXXoeV z7Z(?omzP&pSJ&6qH#ax8x3_n9clY=A4-XHIkB?7JPtVWKFE1~zudi=!Z-4*(g+ih1 z0|5L0fHVN02mt8A0xUlO++hLX06-c5PzC_B0svkA4NM0BCk#NN z1jEP$!w7_7B!go_!e@l}3h8 zkzRq3P8~>M0fe^!0{#nIAmBe>0yy#myyXDyasVGWK%g8TT>k$OtOPJ|1!#o<^b!D; zc>vo&fPEprB@MyfizvjDHcW#d>^ozaJkVDT_(Kk8D+jcZ1DZ>5C^3=amLNs#NKM^vOG8fweH$M`ogfp%ICIf_V^**l z5NyK;v869^B&m&uY0U$4bppD&{)1m#fZ8rVb{8P73y{)=(2&a01(NFum;Vny@=YLl zNVq&CR303rkQbqm8eyFevH^o^!I8GbX|_#ywq4-=1Y-No9o*Fs+|?D{)dl)*szJYs zKur)(B?MFpiRdUv=_)JeDu#45K)SmAHx>T^^nXSTZ(SoS7>ra^sasc+^9xec1u5+U zH+O-%eu29>|MU3oyeszqPScfAUta(zN&y!{f^#AYAmQNVFz~McaMurTm+k*xQ_y7u z>QV{slK&s%!n-8GyU5~NKIT=!R#m~Y*1^}6)8~MtBMap~1@hrw`5>@rFxWZ-Y~u(1 zk9G(KDfqME(2y6SEbSDvM%JcD zk1h$@vg+8lb5CWOwDxI^w_CfO>w9JKgo2NYHcE9dP~|Zn$DRJ1^6a0%Qw}eiJva95 zC$Ii1h3>ul_@|u}HwTYgJWui@;r~WRe)@XX)!ENXPQCxwwQ4zboqG$(XP!<3E|p+T z270#OasUpLo_!KBr&)v*T3D1vmpP~3gTU!`nuZxh)fjalVo2eLysa47e8OD>U{x4q z7-NYn`ZZx@B@&g^jD-DYR%UPA6xoV4w%6HaKDM~shCp_eACo-3n4*zR;-^)5P-aPD zh=Y-MB6Bby31g1;eTn3b8rFE&l1K8`rE)LI*&&BP4hSNYZmk(7l~uwi=bTXPsMG=V6WZ`A4W+D4v;Pp-wL6DWtt+`KgqFez_^0s3K=Y_f!811eSEqf=kt>PLc zr)ydJpN^GctEFntS^AZuyOo;lv5{6QZj$P0hv0B`j!3MgXOfBTxJO0F>bJ^*%P*_W zwrlK_?xNPDx&?HnNVW-_%FF_wh}m zY`pnI0-gT&w<+ztYig$hAmI9^JLc`Hcg69aw(v*3UDeNJh)df3E;O(5ea~Lh(_8}! zM?jL=dCN233t7k*?lEkE5u~Dw*rPKMT5g35j2PrL7{o2Q zu!vn$qYURJHZtN3b*-V{zio$Y|zUj_iyUe7=AlO1KT9J>#l;jidHbPPPGMTCSo zGm7$7(zMv1{M0!>P79t3b0!^&bi-q|(xCJVC8fMrJdN@SjwsA0!Wd~lmHEq!{!D2A z6Nb=H9g1gy^IWv7rJ$JNFnUw0<=P;MO3L*#cbr_6Pd^3IC=e%v zRLv3xvmEq^W2-t^^U&3^p+&7~n@ZTlwidKof&T4k_0n0&iq^H%lC53|Iol5Q_P4+d zu5gEo+S1O`CRik{a+k~8<~sMe(2cHir%T=HTKBrx&8~L0%M#;Wgb>VNh8CjhUG6p( zx8_YRT6C*k&!RWB?8OLp#hViYa3j3<9q)PL>z&iC2DEf7Z-5xY-|!IT58}YDFi=s0 z0v@)urV(&X_Rx=P=yxUWpl@~GYZVSxWWE=siGA@K-VndX!?E%2e<3{9EJmlmg@N&9 zLo;6z=Yj_gelS=loQ?4Mq6i0Zz#_f@g*6TY4~vjSc!d#(24h6XL^gxXOd3hy%z>VrJ07&JHQ`p#^P_8sqoI8Og9Q`s@-fyO%)kxUpXr z{b+(@xYPp~F^Ru%27-*(#G%G@avF|^MjpeZ;wbE*TsH%L&V-_IR~8W1MfEv@Gf^p z*FfzT<~xb~PWQ1$9O_c%dD-hOB7XBC(fs!J+rz8*az7mF)V4h4H!paqgFfS0F1O0# zT#%@vI8P6B2E`b>cjhb-OHZm7$Lge75#gL5MAgLiTdnW;%Tr<{tx63 z2rOJ(?>R*OA6NE>eQEwNgMR$O5)>drHjEMCyAa*odx^TxDX?^L{KFJ^!b65T&kXoS z1m1tLHZug0?_b~8`U97Jc2{fyL4O5kZ((6=0>KRZ_jfl2ebQG1|AA!EAP`no1BCH) z@-z?`Mg|y20eCP6tbl-%2N7pCdl5kh@3$8v2oZHa4mRh2l=p%$2qh|Le@7v3D|mk> zS7m4Lfk>7Lgd#~J#tRZi0dvq}H`js`K!fWC5sC19#dCuIZ-ZS?kl z*9Qv{$bsOtfThO~l!#xKc#8i(2ux>(az+9Apmn#`Vpk%3PgZ;jaefz(VaO+g&=+2& zXb}46W4=}ppBP@3*L;KqilW#M+t+Ien*7i@7tbOlj^;z*7N7;%j@5S^!x zbtfTFIFNCe3*Sf(ucw0)iGfl^X5~jAAJ-Noc!K`OGE^uRY`AeU*bydagFBdm+`x~s zXomzr{&cx;gajoPGC78uh+`!Qk5CeY;1@9?`4l(V5jkmJF6oZ~A#wC*k8*gD0@QSP z2oYj8Ui8R`U9poY*MbOfl>excQAq()>6CrglHnGTb{K3RwkQ}^cRtB1jTn*}7Q8E2Q_H4yHWl#dpEZkPzT=!--(B8fPR zI47Awwhug65%#rwf!S!ihnOUWe2NEc1L2n>wtNX;U*^bb>BxIdCYtyahvAiMNjPlx z^$!g84`;`dS62jfX$mut4r&-G|G<~yR(g<$V-Nvexv0&$y|7Y_Oc5lN_ZzL#sn<9N(q zg!M9cAQ=@K*M_q8juCl~>_?YHk&?e=oz$6~$+?*0)F1C4g$d(nYw6DM|7x$f8j@8&?$yYHHrvohwxaH2)GmJsi7>o7!KN)XX%yF2@$MUqr@_zhR379 z)}yTvXD5oI8-i;uIV>d8kxW5rXAlt~n28GkUa#k(`lWno(1|_zp7A+;iPnj~2Ov-? zrE_qKi)MfCV1J7inX2hXNnxe)cA2WFYQ{hY7~y(zs%o|grUM~%-MMA8hHL(`0Av(~ zm&ZAN%jf_^$`HR9oWqG}fXbeN>Yn3?3bE&i0wBVN)VXl05$iM^kxdUc5{!XITgx|F3NG6Iu>hLo|tJPOqi4p%A@coaH!xBxd|Mph}!L7PY9zt5KPVi#d4&;j^TAq9+%sB7<@_CX0?>b36-qKbecgmaHrZ zf67;6xB4<2yP$?=wtt!p8K7 zT91i(s>P{(zL$1i2}f*rq!@Uy+R1NL*KmP{b$Sb?Im)71{=0b?TaT*CbQRjPV3#7` zHE`%>Q^vG0PP!NKWo1dgVmJtl$$6KYr=!~0u@S*_H<7-skOT#xv#JVzxK^ArYnGPu zj#*m~N2_kJy0oYpuFl%P8b_VHD7E87cn(*z*IQ~PH*PmJxzmYid`Pxqfpuuh4UL(> zY&%kpCupJe1NEr09QcwR+GseNw**`ReG3$Sd%EY=t%F;*&5F1otGFonps1&ju~%%8 zYs7HcDpM9-5%~id*11ISxf~I?7S}JwW^pOOyV{$ekH)%$OL^TJq!lHmvkR|mr^O}G zmf&KpAndy~mwR=&e-O%}FUO#42vYxGl?E%gGMdKz)0oEvv4tdR!|H0m`^&>;V}I9a z!$kRmREV=D({t1N)E* z{@|v-=TcF~U@!z#J^62sw-xN_wm4s3hEAChWDp9Jq?yv5lLk2v@=} zc*4B2bZU@tZR!RV2Fj_3pK*X_D&cfyYza3!6*;WD&+M}t@x$S)$m8}8=m)qvJjxdq z#YupHM?1Lz^%UQH$p5fqGdaceCne9!76rYf%SZ6WZqX9f-vzs#WVYc@ulSf!- z1I?{?-OKI4#W)CFhb?PSICT#lyB%?p5;DS^_!}3!y9*qJA{@qYJe{i@k8&B<0!z}n zO=+JTGU=Jf02~@y=-bk8$YZg$4F1d~;vA1v_S~{IUxLjiJMB&J5;dj#lH(HA4zY

1hXRAQ!oLO6|-}k<2Frb8}qKkz?i%P{(jvAeXi;+yt zkWLjhzGR6YS-un!QK;Nj%^a^H3MxEfxGZrcw$j){rP!e$A{TU}tSHWq^(Xx@ z*)vs1WFibY1TBuWnW5m!8d23Ag;+iXSyT&HoDJ5fjM!g2(SnuJp4Hde%vTfpS;b7) zqFq>qRao7Ux1o(%Vf|Q%T}-gBSSN{$sQ63Pa0;##K2wX2 zu*I#lm##g^H?vEq=nrNaFx;3Ps?>_N0xhtWIgNEb2pX>(r8NFQOv)$`Nj=3^7{S2_ zi!4@Qt;l^`d~8E$;=(g^w$wLj)Q6wwZ;@#Dim9Yp^An}nb>5eyf4|PN) zM%>Y6DJ6?dr)>cMm&jJUDz!|)jxp?9&0XF!98$@pTBdX@XMEJgb-~+pC!DIPm&{ze zoL}1|UEHP9p0yvvWnK8y*?VJLoSNO_OKGCMKPtU1C&|;zm?s0#+T+Q6or`W1b<}Z3Q7W z&0C@XAQ!4$qqP%GT7-3Dj9f?z9y3CH0X+jM!3w&pQ@S_AZN#~g-PFz5rWN3ZJ>u7e zzTRzO-Ze5YzRQ=4Va6L}GWKIt9=9X?-))}`Hmr%2Em+p&SoUBFhD-aU<)!?~ zL^U<^b+qjn-sw=L`BTcqYmpmLLPR#!ZQBlN{xu?c$P?N!BJJ%D06VO4biC5YR37?g>ucKFec zBWRzM=OAWdh$hQ>zUDK&Rhzh}Eyg85b>^o@tRzY|C1P3AI7wULWU7U+fNT=Ib30qGsP3 zAXC!zD?u0H7g2>WD%j_RELX;Bah9IpXtRQm z>nSE>x+swb*t+z(j-M$9ShYiZ^J~27EOplG%FbZWwo~3V>{XuUFcxTBF6KKPYoNYt zF1zmM-fntp?bOcIT2^SEc5K3y?(?4Nn~iR$p6=CL?d;}m!0|b=#@v2#Lg0-lmKeRJ zJ1WVEh{~hAov=OnTP*W_nqo1gPSwznc1zll*LHDh2e!9kDr+RY@5GiBU_RjSE@l6X zW99?vSZ-|KEv&}&?8sK)MrHnE^EB)ACh@4&aAf}QorU0}{^Nn}WAiRnhDKeONKtG) zVi9-oTIOo`7Hj%Oo8rlf3d7wl>YNmeLLm$hJcJ1=Jc&m+IU!+Z>d8LyO-Dq#nK9zQ zGc27TD`;*h49=2~(^+Vard-60^Yw*pBA;^`Kk*5^Z~nbyBUke8erT{>;LoPk|Iu>R`vK#%P^SKy>h0w} z!n9jNjm^G<*T?&XS9R0&ME80BSBLKR9zX3wo@gO0ZGgu&nmu^WRMXgUP2il*pH}$V z{A!6m^e0?agQw4kuXw`zO?~Hh#XQb;6crP_Pksk^rv7({-*|1eVuCMtibr{wpLv?E zd7BUMo6mWj-+7+zd7uAzpbvVXA9|uMdZRyjq)&RKUwWo*dZ(Xvq;1xik67of;;8pk zLKW?&-+Hd^`k}9Lu%FsVn|gsa;uf#k*!FWoMq|kJdbfXjxCeP|7k9Kbd$RXgt37)z zPJ7YbZBCc-{+Ew?!5@6WSI-0fVL&eLj5p6-=4ri`?qe6;&n|q*uYAk5PjXk~$6tJ> zy?UOdV6@C!rqxl-zkJg_ebmQ#(ywYWo^jUiYP#q1$k%ZpYhBR(U2wO3UUt~j?|t9@ zebsbhl^^u`&Ge1d^zs&Fz8~_c2Y%;&e&|j3{v;#fla$V$7&Tkm z%#m{#aeeUP%o2ER(GE!;58d~-?~2BS+m0@MI`!(-uL~tBe7Hp9$(d``zH|9=-sRB(E-QF5 z#nk7q!;de2KK=Uk{l35Nwy<~o{{I6QpnwA=l^=mjakt%W2Qt{8gAYP@UvCi-)!+Vv z6k?d6h8uF&p@$!W7@~+Hl31dNC!(05iYv0%qKhxW7^93c5=SG96139}CN?&OqmDe@ z=i`pB4fA6{MGjdJlJ;Fl5DeMyQ-?+3F@=FNIkrO&C}#l4k&sS8DW!)?<~0(MSba$p znHoMBWk*dq7hIaJt$9$L6W!?$5(Zc^2to>glOsKya5>Nu1_YWVp$TD74nBT{1gAi4 zirLqFiir2axK<&+93 zK}b0BX{Z9B`)NC?40~?6>#_xFMv{6|Bq@a=;Xu4kdFn2`0Jsb9Ku8q%=_d2p+ab6q zy>zBi4;LgZx$V$U$qQoC@J0BJrykFsq5J4p zx`{=lZm5ZtHc5?=g3^=tu=HN9k?-S^jC_w3BN#{HC*)+RB>S=fV& zo%q>ZBaSx8j~C9`N=s@5b7^PYEU(oUb^edfKnrc|Kt&(@&!K-D{@nD_|3ux+CT?c~ z_egVpj-F+j6Q^>RHD=~ANW5#rw9`;ay{)b}bGw>i5|^FcNsH&!X!GY0Oo~B`(jvI& zSBG?XoWkqA-eqD@AJgMqo6q-D(VH11N{!MCz`E%Z{m<;Z``tg_f{|o#INMI-b|XIc zC1@o0+Z}k^_c!(>(1Fq`&gE=1!05e+bIogr05=jk#d)tF)?40SI0Jxxw5=rcI|E7V z_dRD}t$YP(81XPznHUZwd&$ApKkz||VUa`ySNexP27$Se2=O27C}NQ+cBLHAf_13ENgegy>LStKdNh`8N|vjY=RcdOGa->8oO)YSb>Z1jBasorXq7gxP(inLm zJ1a=QQ9B|HXin0oThWeQ!{F4)1cHHonCyH5ks}>3Hpqcoa%Anupc ztsbeVf-EkOy3!PuOhbr>^wEk#lBMbpHL`#Fu$RAMSGwkjL}>_wiIohPK;+kwYYrqwZVI9y*XS~N zLhvg16G-+h1)7SMPUis)+Kla72^i-N~Zp3 zeO;SqZ!H=W1*U6uD8Z~|NvM#t0#}~}i&t_5>&%6okY<2&D?zHO+?|B7Ah`>#g3y`` z*&6h~(Zy0M`_?;Zjs^zQXvB028eD3wLW;al;wamd;+T3;tBryiyYw~KbiG)PxuW2B zxaz&IEUukf5+06dW`#!0Zi~aQaE^wof(sk}w+;$sK*7eK*nxqM|idzxV-zrdKEJjIVcoUo{5G-%^Q`wt1^ zF0phr2#w_yD4xEr&P&8wzv3q8{vqp`&#%gc677h)jRvrcc%kN`k8Ee+Xf0r;dUBc( zQeP0}4$oZ5^x)>qx>FWcaE}Pe6WVO(vJGU)0;zIGqiKatFAc}6)A9B0%g8C;t{kk~ zr&qbq)@MbXj(^M%{7YAE+o z*m9G0rL1>11!}pcq4lzp^i6C5i#gjgF|!tJyzX7oq}SzSAH}=I?SOfjZf8ZePT+l* z^MG=vm9hfna71X5Yqd@*q>0JP3tP|nm4PVv@mg~cSkPi7YX0aby1c05EN=RWL1{UD z)Xf(zhbfdG!y!RhPAen+sk|H}qb4WRHZ8NtIbC9oNs&5iV~q|3Ug$b`DIxcyC=)~l zLQB-LxC~4zEh0>Y{z}(h`@DDA{U2ZFG$>~4ZIld-HAS^M1+9?k3+syL2dOXG7C4Z) zbH?F;Lm}aB+>WYG*4dUD%Sw!H?@)`4CdYf#1TbzwV=PnnB+VR2mw{!~0~%cys}`z}gK|MKFU@ASvVw^r9( zd9^w5#YpP}k3sMIy7j7gj+aFEkjtttU}#0uS$LOd^x)9por!5o3C3P~ zjamp@#^LQ&4!YV`HQtZ$pc9&45K7YDafXlhkRS9|ciHad$!Ve7D9vJzoyme>Ni%&C1_Ijvb)FxJ)p&pxK@d#axl%2~A}NKR+yw;_ zR$Em$lW!Pa?U2ePLc}flqAn^_M+Fi-XbZ}~nPODoOfcRQ!V3xxgbF$Xp_x(Fu+4C+ zi68>cXMxNPW*6f1n7r)aq2XOBqS73iqo{qL5_S|cHlNV#gwc^;K!zd}GUOBu5yl*g zIr&&DlGj3h6*1{g8E()%@}o3vS~IcX^XXUX=}H`y7jTRqH>MZK>5m>xqV9o((TSBQ zIigM+BjJ_A5z!;Pog6f3U?eJ^MLH8cTw~=$qx%WOEcV5k@D(Wj6Q~@EE;DEnZ+y)Sn+RPyWGHP{o`UIfGxo)OZy{7>STFRuwaD zk~6B1BR-#4vQR|gRGYj(-K`(jJbVUee1!2D0>iuIj&cq)DD%6ZRuNPNF}iqgF~`5spm)_FpybmewHT>Cs*hCZuQCBbQWRYtY1F z=7<+@VN)*ASb7y0N(p|^UblRtafBsub`U^fU;Y^<32~eMHJ{j6W&EMt^Ub6Up$}V< ziD>QwMxEmCpd<1b1h+wBbk15C{U9Ym$zej@8y;tTYT`*=XL6bgcAJHLHiHlJmLr|yyLY?eH#L5BacE*_qvL*KI(cW#QS9Rt&ITZz>nm)Rhk($$t zZPZti-hJL3Htro;og-|jk8B=kZ5k+E_K>*a7ddabS{As3f+hUv`_F^kPl8X+v6M^5Tm#AG#I@3qO&(HDSv93z+k=Za>!4sq^35jKK zoxqmSrj)=aL|D(T9^1tX39Z^Hu3{MmjM(cSL5bF5`H^E|%9`k;YM*Il3JU4)!B6BF zE94YOqp6*Z65k?-LGY1F3ax8i9;X6bYm(aAV8-i#289@^<-#h^6YdS?nJ2TxjRHJt zeu)kNIMQ{&*0Q8)GA=BYaBsCz80l( z+D=T7N}(c$r>qLpY-}$AZIbw#2lh;8AB;Wpc5YMpo?kWhGyc zA5F;BKy(kcw2(m{7GG^DmYSNtESKw&))zvq%L*Ys{@tuVOm5gMLjeDx_LkN^)NT+K z*!$`V=5iS5X6Z_bMf;MB@7~h`3UER6ZlE6Fd7;-R*&YWEOX_m3J{iQ)-7A><12`0f z?4Hi{J}!fKZ$S|3%4{oYfyx4#%x}Gm1QXRKu1hhxQA#?FN`5MWifZBl;X!<7QXyhA z!9Y@y!~xKeshj~!Suw_J3G~F#9G#SpXF--Z!Q0h`ZT1lx?B?r38cWURxfeAmn z0pgZ4-HbbTApPs1Q~+@8D)$~*^(GLz#P?)G;txtS|QfH5NB-D zE?F81hFtRwX+5q`g6P@B0AjrCNw7Qu^{EE_Eh&)?L9!KG(m-_6VufLXo<*uS5p>W!8|_x^}>k5Y}lW-n5hw|b`xWz@IxB)5ArcV)lFfeW~LJNSJ^ z_eu~<{_>$1X>`$j=yp_iL7?GHQ8rEmhuP>a1VT4rlQ=bBHWZ^@h~pzUx=e|`qljk_ z@c>Ybk9da~baTLI=DgW+c$kaNxUU*?k@Mx`tay3YwuCeJd=Wq%{@PEt5JL*2aAa0w z#<05>@rfh3ebF|Hr+Bj*@t8w*`TU0K%GcGVxr&qdl5ZS<9{Dq0_DQi`L7+Y{-&Qs#i8G91~@h9I4{qpP$7DZd-|sH7@za_V(&Puf8Vm6QzYNI zk^^~!4?0~Jx}l$_MfMyem(WD*L?b~uKOTB>mwJw(H;u=oc=kB9-}-5fdW!=(wHK_f z*CY5nP-$LBTwePxz7IVuxO0O$m{)qc+q$UdI?%DZlj8f)4g0>I47i}i`)wlz(aDm71(xiwuEE0(iGJfh>^yWKAUOKv` zzxw{CJ-j!){g=OJQG6r=gq42-trR3!P~bm=1_w4gn9$)uhYckvthf*&!ig9+R-capK364;ij>`4VPKnKNnDw0RR}PMte>_VoD^XwaSjCbsieCt*P(&i>&W zL~`R&rw*5{Y}XExLZTCoHpEcwYS?!8vaS^Q5#!0UP)(wg84~JRj&fVJg)5h)M2&js z_N|-pVqCU#BNAqrHt$}8f!7wsixx3pwue#neR=jQWs#O0|AjnPu;<5|J9<7W6m@FV zt68^p{Tg=coE4 zv-QW4-NwADo%8nVgBvGad|s{J@-Rt$A1_+Gc<+iqhR$r5bZ4{cKbv-Z-6i?@!w#(g z%X5#r?=maUz{zBL5W)y0oRGo_ExgdY{rtm_!wwm=$-xTM3(>;|Ni0#s?oeEj#TH$B z5ylw*Q|Ut)ZB%W+`3OvL#2Z~Z(Z|&y3zEnpjXV;`7U@$l$tKwY^0Ez`oU%bGQOnWF zEVbN{%O?5ja!M@09Fxp4%{&v$G}T;_%{JY96V5p0oRiKv?YtAuJoVg@&p!S96VN~f z9hA^Q4LuamL>1*xC;_kh(nCjKlXTHaExi;|KcT#d(w_`N@lz8!&6Lzq{!Kk~%uRI? z(gyHxGW*2YHc(b$Y8a}d{DpNucO zU@ePwz`BOT7TG1a1IpJO&)gM6X;(cq!6?nWklY{9U6EF8!yU4_cY|t|!fIPmFtTB@ z{Z(0Cn|)W`Wes-gT7i)T@LX&0D>z_V|8##*oy&Xa$}Z!CYEM~guPX49l;W=yUfhY6w@*@GegXb zF~`j8IA&&MW@h#>bIgn}GeeA7zS;Zkb9CQs>r-nqYH9kRq@Jm%`hNmRC+Tj>%l3oG zjpiGDcPvF4xwtVbLfX-^9rOWWraH%y{Cs9T>k9XomjkEIA8$7Q)Zp1Q>Gkg^-qpd?w=*unR zzbXpm=Kh}YM5Svon@yVQIG!!ldv1Pp{GmPMUN>*Eu8F6vRXi1&X=}qkCh*isjYe#p z7I~6++Xa)~WBRjsMBrRCSo{6OV>uh4aV#7}dbrbBwtjy#6xZWf3`HyGHq}gPHOD7s0sY*I-(#U;Q6M5_sWvXu{FP;Eoh36@H1vJrM;|8Amhiegr~E?#+!5| z{9CNgZz|m`W_+%Dh^qj2zwJ+@;D(;BjOIv_n`?7W{e396R+d8rRax!acVKTv_mT5; zXftVXbdR|(qT!vLw_+;Pu&-X_w!~0G(&Vs{U*%_gjAvx=Kr1k;KDxeJxOlW3%{X`d zNMB5=4P-cLE9+zGqRF1*%lhyK>wVEm2;cm82f5CbL>3-Q&Jwhn8LFlovdk#AeQ>%@ z0%w0pKpVm1MRFG|D@7bm?IM+rw++iR`Y94qk$f(4k7`DST-X*u)}D$3RA-Vj>{fdVSsVl#W;K!+i8c!Nf6X5>BwYe0|KrUj`3>($2TkuIy zFlO@nBTgZHpGC{R1v~v`%my5r{=k3mu{Fvf#oy>S4wb}Cf-q{D3SJ2O=iqcREH!|5 z+!!#}ZS}17=a-tpLo68k^doIzBJfBl+zqLey)u%^^q))4Z;4}xPQE6-yyhY(l;SCJ znn{Bs_Oyy28noKT;h4$BNEkvIei9pI#kAzys1IDmV!A#LFlqtc-irKJZlw&<#sX;K zd`0zQ)*`OCG_)LQm0+KF!z8TYM89oB7NDlq21eFpGMU&FzOp*3h7EB0WYo!v&u$~U zICj{W^O;XAdVeuN{_-5{8IC(y?dibDBE_j867^lhYc|8zLjLA`-NkmwEn+&uZuy7CX8-b$3x|hJ)($2fUAvD%H=@(!X8z`& zKB+5rp@{Y9UDW`Jp7{_s{^vRq}%j!Er`B*J*<7l~KI*OWqnXUfocq}hOzu3o=L^B}YaS5pj3os| z`8Sh=CuWW&7#khLgU^Y`wT+P@y5HVWb*ea! z8R3%0_CC)r9NlX!0=)4Ey|3y1m9QlCc@Z`;@L;ombEe}A#EADD_M684#4vl0{Q7nZ zF#|$^%?jU^Tg8GpN!7ce&+tv!nkqV1rGR=YKwzp$BjuCxXKo3>?)^?KK)8^2eUbAb0Tx8hwxJ9E z^3|r4aDXw*kNF5()y;MK(I%-v#*L^|=#6o(D#~!}U)!QC6{A7Wq%URx}rh_{^%NG@SkK-sstvm7?>p}lKk*Hr99G@<`GxH;k= zL9>zP_3uG&QyC8{ocxjkiW^;1Hg-2c9Mm969Z9gzmMnSq>?Koa`cU;L1l$XmZ`ngU z;oCJwws+5s`A!ekj}!O&Zkx2Gs3v7-fb{E-D7H#mB`d$AfhScgGpZIG&0?GA#M@|Q zEOtRPQGg`|YLzWBapwu5tRtM}*1YFKPuq@>ME+6-#Pu8MI(X<2_3<~%tmi5=_!foj zhXiKdqmC5lA-ntGWMa#4uH5or@fzH7LrZ2lFEB)3Vs&%7id4GPE}&L(Bm4vt?Q{2& z;69Lr`CYBxh!2te~PMF4)`{AapRfvlEAui38Az^YY$uH^jnh z4nV!zKRoV3m+bKx4eXH?!KOpOkrYAH2GEhS9>5l@lSA&a_J3|b;8qRs^Ul!`ib1(E z928vvV;pI;SfK+^w94kVQ?AJfZ^?>o;Q#fdJs&~B4U)l%J#{p|W0)e>7a_ClBY#pr zh1c5q*oCjeRE9A3_s|vYfU7gA6i0T)@4<8EwebUK^wZ=uDow{N(3}mq(GjD6pW8*1Kdlk(^$h>YiA}4KV#DN&*om)d{)Lbg z-qVa+EfHSmhA5K>f~E+!*A$P-VR94$uX>KAgp#0I6<<3DDSe)#Qwe!up14<)0#rm- z5{n|FOkTkRAzg<*Qb#sbNH|2vaBBDG6rtZ{>SR3XJSL`vZsvLPtXn3jF2Xw7#(rLbVDhd5CnH>zB??$rKlQP+`21c{!1Fwb{go;9*wJl$SlV#wy~AoP)+HIyKu zD>QwXk_QL%&_7bv^!ck(B+ZZzLBbYLY~b#3Y@4mCQDWzQRa~pZ^@QGco5w#hdxS0$ z#1nriV*OmGrma|wKQ|MQSzX7kH6uj^QhUQtU zXfPBWM@oXF3jH-E6(YwQV-ag|lOhy06%95Sj5|5u616Ut0{g zVV0q5rP*;cXMN%*Ze(P4*CSgd6w_3bYBiyMq#Ab9$50Y>e4MAL#f(i^aMIugBhpMr zBk)hnYKAXrNpb&5a09(S1_>0_*X!K>Qw5v|+bI_EB&-xTLY1 zyuQ;fdND{Bv%=iEY$d?WfZoPg@(7GerCF=}?rA2%w`f(f@@rUwyh_{%#ohR78S&QL z8bw3Ipv6Q))f9mn(e(yjszvR|&1ArXlH5ZwSj~ZGU;TngW6uK!YTLRG zmCz@bO6wB@11oLmv=vLW@HG3Y4W6Zknc}rYr@I zT>LcN0`WYB92D#>Nhvh*9v`|_T9SDNi zhjuE2W-Fi_2{?Oe5}GaI;pGmS2;wapq;l~JuPq3lVvmdC;TVA23X)(AFOJ&Wqxsy! z%YszCLG#%RQZ0963TC7DzQ*T(|8d#oyFT=2qa_W2yGNcu@ds?!J5@|OEzHPcJS;=|38ZwV*gSKXzN#(!h;Q-UCv zb2V|gNC6H~dfu6gD?>m^orVNbT5KQBd!En%3i78jr7%uB++$iX3R%q_dEzQ@x>$UD zJJO9Cxe^})3O5JlEQP-}Ik}3-g=yLqhNHra31iMi1P3HqJzw1YnFnv84S&S)LU z)YcQbiUBP3l)A9ILf&$Tc35I4+ElQKaOQ;)Ec`+X+TbIGNNLYv6G#MNNVr-k1jt+9 z=^h5UOI*bj%3Bg2sTdP0FLyWA4=Qy6T^9uymlz=({tAh5?-fK;QHnbVY_EQ`W*+|W zRNRE7cnl{%G^Sf^!5wT+MeVZiQ<^BM3Pm{-{j8iB{lAm^pD48{Ts>te3}Hoda1N6P z@PQzg1hR6>wDL8L{fUsajF0y8pB2Ir#{E1Olr}{|7k$4yKA=mACCw+E4Ic}YF(s=q z(<_jky(pBS?~o@^M6U=6|0mMRG;@~)!i0>gyZ0Z5n~<0rNpBC?*CtwX4M%hOt*14$ zqPC$YK0K!O&_jPNi@(PXKkv*t%4?y&cD=8}WlJp)807j=j&~cn6UEEJ^jd55PBU8uW_R;3x#-t|6r_5zp=%~u zqo+43OC>7BI2Zm9)x&(OMQ!$B84Td%3=nM%kP#1384S{H^+mI&Fn*|wrVsMu3@v}* ziH*DAZ2oC7`vs|JtEaY4n@Zz1dl&r4urt*NZHWV!Km4EiG ztU=DL0Jfvx=lIw9-4lRWAAaC#Dn@$16s~$X_aIu zU%oVvjih^?kMTsd3sv^5RD>+6`{y z?S|an-PoJ#p+UqwwjKNZy<(I#u-klkaC>il&g4~Z>O}9{-8u!(pM5>|h_xL@oJr!yK%wb%)<`?V#PnOB55o{R$lf*4baY}g2p6s+ z%t`&-h*OM0IT){v#9UDQ)#0yj6N0$ZgF7$$GJ)Ou;oTp&y_{$TO~37bzcxsk-}9J~ zv`v?Lc*!|vH8|C#_C;dn=P=r?R7pASlCQP%hrDSx6h)S~aGX^0i|=f9zUl&V?bjb? zSI@ofrhZVTfNKXF3n+-dn`QdWy+$4y2@4dE^Jwn3o$~2(ynGP;L&p7=1OvpKx`-hD-CcypD_`GNz~t2@{ou(Fg4-0QB|Djn z9E?CL+dwYH0AGv$5k5=+5<`IFwhOQPr)XL|18?`@R45ZXv|$g#Z=#H`yHcxCoTx_? ziwnk8GFY!G9!O>qQL6c_63UtS!f*W{+fp%KESn58oNTFFELSO(&y{bjTCUbR9$sA{w!9lOvy{<>I z)yaLQ8|H9?`YrZV&hpVSW^i+)ISeLr#qeT~H#HufA$)3SuK087fie{&{al>u zdIT+|cf29(zBiV=i)qwVEiaY%XV1uLycRFutGweL9+m4k&f^!l`oC)G!6(#DUxL)s z=vCYbBG|xl2pu0Lgy}?kp}SZ{`|1`RXg1PBV)!bH5n0IIa)sd`xHhMS5j0h&MOvfo zr3rCCp<1rc)8z{yEteDf`iUU;%9yD26UAicRw&f31p!a#(gzs0CFMS9z=Tqu#YTy^ zB~x3us8Lb+Huwhd#Dt(PM6$2d&FDH0@Om!qn{zo+NDNgx6H z9{TBSEb;fe(<>3U6m_ihbT$ja00bs;#+NT|KjN9#>x4lkkpLeXor=NcZz%jq_yPlz3j*ET)!M7$S}Virf3^&ZKhe(y&mUy?(iLV?OnW{=F7-;g%)UQK8IH4lWLwD zWnRBsCVASltu&n|w2jt!rVCiQS}nha$1l`zUXIeTbVQFh3gJBz(LM>Nwf$BSx>rYW z%=v?(mYeC`_FKT?p~vL6(6d`Iig3j8MV{~bbvB62W8Qey;eGk!XW!dnvWUo=1z6ws zWdo-A;|HQNG&VU1yxItJ3>P59MppRcd%}$&g3rq0)MH$bSh>or`{5=!bmT#A$Q6qZ zE%FSU9K7gD=&35KA~~#uRX_G9il_f?ya~`f5;ZM+&IfbRR zkfKv(PLPXZ#Djc`iKFQxMR1)0lr(mc+`~syEHP649PCpbW%TP_I|TE&fzyG1Wu{c3 zn8O4PcVWU2#?_eF3!a5sC)U{N;bZbMt~PPI*Y`zNJt<2SeRkw@DoFzmaQ|M~SDT0uuq znbIZUa*0~iv3*ht)SQ!$GKrX9wrp197Mo)Zba^ZvZ2{sGYHb&TVOTb%%Cwr3V@gWY zuke;~W^n3grO2tn2?ram>(W&0t@TLc)boK)WxTl*dDsw&nk^-sZCnbm&Wy7n!#O3xo2+l=6hAL4NZT_8K2ITt)q2cr@7iqF6o@4h%Eb(U9G%{JvL0^kLKep+`ID2~JKPu{WlDW%CAe7_4ACq}9+JQ7K~CY14ui z`?3t{xu~O-P=?yu(;gc`RT+Cox;2O4QH^~>>}Ia{(>p_sYE@C}HYFgv2livxak&)d z;D7V9RzKCf222c-J*0QiJ~>4$W?JqQwRVx$IKi6nAH7MhwR7UqDF2Mv*oa%~iJ<04 zv5!`sBj_5-M`_fHpPbNf2yM~QD#=D8UPE$pEl>kDF(MhP%lc|J7-K&?3JV!A(LT37 z7`m!2!;gLWtrH}dL!bPquy@n+Xs^D-XxB@uE&lA?7k$O$=FYg(HNQT}^LSZ=fNW_) zxIW9IR2*X{croFVIFugBTt&aFClt(GnMvCA&y5jfUtd|TofnlW6rs zUC3M!FC~IP$hM)>&>?j}JD&HWK!1Ds!lt^basF?`z{A=30p@yQiG!`JE0b<88UHwf z@_k6{^m!Z>*W@AYpUPMLb2!(>t%*=i%?o5@XAZyq^O}2iT|;NHd-o|+|BLbHE6bUE zza2ij6XIe9x5|yDUmYHn9wybRs>RB4l8&uaEIY=WK!M+JKkm4$47E5%Tf*@i93@W- zEbE)wFJ3@z`HR91QF(J`3Z4z)WByaUar5VCxqR;7I@XA*xfjy$^JoeBgCB;Chh)bD+N~5!vmMHvUDsZGCgV}V_j}IJb>a!?_Rk< zmyM;Ri4sQk>k6cOx_Er1R~?>s<(W@DFv3@VnJ+i{NLDUD*DFvz9|n%}yyxOUkMYkR zlyHl-f834!l+XUX_U%*oLW+tOUO#wcRr~f^x$kYYPw3$Ua z{5<;!e*gRg;0HkR20-fsz`pR{1K6)b(VXtRHQEUOx|qW824d?3ZsCzIBx0ey1bkuy z>RJYp;|Edd@RhJ(%kBas3Vq8o1?f3ls9u6t@q?qVXbSPH&~>P9X@mJYf(7ZgI4gn} z=;)a;f`xQKq`g9-#Ifk-Nhj{nz+}xKl)<#_1q|2onD_t`NC>2#b8Nzim|#};^g?4< z-Y|2Wu!EuyfqSavCd{kCFbs8;$V32)7{#tQ77j(2Wk$G9NB9X9+q){Bz6&g^8ZBEQ z0~8xjJ_%F$0B}T3h}DRw-@$GP8RDlCndTK4PXqk#}>jS*vX(x7%~D9G<49Xi=V? zy)x5%I@A5u)BRu50|+vL_%cFtGs3(xA~G|gIx}L{GvZz|5(qMr_%c&;Gt;~?Gcq%? zIx};r3SrwW8#7whl*0btfvli{b@Tst=f7m;zjfw+tmlJY^8thf zko*PEdIhjP1@Kt~h+PH98wIFu1?Yr@nEZv9|s z^onSFis-V6fL%q58%4}-MXZFy?EJ-?dd1v6#k^U?{9VO@8^ywJ#iE2I;`}9&dL`06 zC9+v1VEL{R#f=iBw-Ob?QZ@ck4ZTt=pHiKyQoXKHgN;(7x6*HfWv2XP=6Yq8K4sst z%51vI>^90A-pZT^%U$@(-So;me9FDD%6+=Z{Wi+|-^v3BD}wkdLi8%ad@3TcDx$h7 zVm2z`-YOCZE0g#uQ}im+d@3`tDzmyOb2cjT-YN?StBUxmO7yDAe5xw4s;auGYBs9s z-l`f1tDE?%TlA{ie5yOLs=K;Z`J*THG}*$!+JHNJ~iW6HIrR6zcy-S-fHFu zYZv%ym-K2^d}`OSYB#!Sw>D~b-fDLV>-PEU4)yAeed

    dw3BE;s6~-|B7&>+ku& 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

    )1t&Jp6^`xweZc_gGM)(>u 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�x57O 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�O6- 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

    w|@7RNy-J)pbY0OLbfu0FfjGd6+2lhGL^B zf4)0GIL6FGck6q{y{$tI6m;MJYE1H$Td}wNonrk?FFSC5Qe3kCV_h)>tWJ~sO>1pH zApKkTJ@x$F(1Oq+qoXD~)E11zm3&o8%YaiZ0Qi8oiNlRj=aFMZ%pZ!fq-^jLb_v~>*NO;@K^CMMqzGcQa-m=I#&nJG|IWTjmCfFxc-b-g3CJ|T=Qh&b;X)hK0$ zVnj&BMgu<;zG#Ada*pmYU1ixQZ#k-KAI;JEw}=t5poK8zD-+s%;0WhNeaIA!3=Lcv zzcegEY;n^9W-6s9vR`77qV^%SLm9O>J8jrt78%{Kr>y61hsZzRp(FIeRzV|uyUZTj zqFdOC0b6p$fB*e|A9OF9Re3`V&VDLo#@CuA6-Q6TASYKbE7CXbSl z#QnHsBGA|-A{D8U#8_9rd|3?^-ohO#5AHV|c~$^^7;w2{ke7Q|92S+8o=r_q z0AWRid$lXe*IWwjS;M=4B_$f)-dIO_!?y&!_EL3F;)x%_*){-m zwE?HN(t^lm5lg3TIMn)=V0Ca6h6$Xs?|sOe`O=qRO6Rs6d3fjk+K%DP z;`JD6j4P8Mpj}y)2XSF2_|8?~`;9dpB}NC2;d?>Pu-bZiRb3?hSKYRbcK(DB)<(K_RdXnw1djNP2u>22;e*!c=jW$# zg*G9ydCinc`DglCbv+;r=VWrup9GbvDomu!A(3Rwny9OSC)kx{w_%zeC^ol}=H81E zwyr%kKd%&Al9%wzJ*#@F4QUh8dLFYH2*916E77qp)p6uDg^w>)(Wsf_t2+)}ZV@WF zNI2$cUl00Nu4PgE(sm$6Ths1ij&&}X%Vqr|6694!cWPou-VT(XLFxL&;s7ALx{kK?(x2tdn2UT9w WKZMLe|rwxFRavEWQg%eTfE_@MdKZ`{J#J_K*GP=@wq!o?EhB#=5O~o zf#+*^kb*t*Ok%l+p;h+M$2#h+U%kF@*LK0@{p3AQ`Aazpbxf-}xzp}_C|?YCo$nsZ zF!nd^cdT5^+MTD?hE;+cNd4+3X!_xT#|NG#-8R_FvM|pG6`!m9R_}9<= z*Qh^H@4r6x+fV=c+yDOf&%gfn&;S1W|Nj8!6Tgxqxif$Pcz}umeHRvRZJ{RNB7f%B z5tkx4I^lqDV-W^e7lu$dSCI|xa58YQftK@uKCuc&(im4kfC#vP2=X|O(JKkz3Cti6 z<{$(717xLQf$2AXGBJUVp@KG{gBOv3bMY&X@qj~NgpYxQI$?r9_zy(Lf>KBzE_fBa zk_RUE7;4iiiPSD9B7`ymRW`vXPe>DBm>MP+4=0lcjsSu~k%nv7h9!7{Q&@*JvLJ3q z5VTpo;p4g#HMS z)gX`t@sS1@k*wH~4^xR8!Tyd40WKHVKMsfs1@V9rNsF^_5cJ>>7TA-th>_Yj5JOoW zis3JbXc@Fo5TeLNYGM#WDJkfY7!>F$Nf|kRXb~5whyGF=Ug6R|p zm^&dhi?NF+VS?Qt0|@~MRuL|*G=U^I97AG{Mk9^_AT$q{Equ5TdGIs#*q4rBGAQ8( zp(zlgd4ZRrhW{{(Mfn%&@d9fhCmoqwun9D>nG8sXHm9i+Num^$i8E=qj)+(g*+PO! zQy6ih7}B{ky`h7x{+WlXNs?>QAwt6*wTUjc$&we*h|!5I)5#vjNhiq35*}lb&q-BAymmUbW)yAc!m>bpW;azw#lE4S)e!pnH2e&CYd%W(3d`!5tmXo13{D1VJ0T% znwVjMmoSTYcoY%h5EN=12Z<4!;whVlB4qw|3w1d$#?8V{&5 zqJHu#Ss^U`wwDswh$;BlrBmUdgz=S37!olWqfoevlDeH3DGql!l>!5$mwJI+S))n1 zls{smQCbj|s;DyYqz`zJ@+pe6kuXErpPbsN1PH3JI;Oa~fPeZAu!Rr7aPu^EsiE zTCTpbj2OAB>dK?D3Zqnps5pau&ySA2{Ei#Y7RCajzB`E$tn&NFr#;3f*7lwAOo<#5~hmLA!*G<&ppi=_!OvqhS;%4((Nh_io zrYS6v(g-%#uaoh&s5v&%I=fgQq5qJcqnVVQYaNDQG)N;5w5zGHv7|rwjo3-Nbp9J1 zzw!>jkr0h=0>25V=vutish-#=A?Yb8<;%PI39*tZxm|g_LKC@8dbH=ep7_bQ72z?l zD=D0Sm+o7x*#aN9D8Jo_xlvo4TZ%668>XJyz(~ohTZ$5c`LNjvBA4Qf1Mv*nuzbq7$RDwEGX)z?%huy7lP;egKd|IgCl^IRz{j{)9n`cB~b7 z%(I@L7~Sv=4YHN(p*ekQj7c{TsQV9utj9XcI1jn!L-8{wLk9=bs~!Z31;Wh&;mxUwIOP0|-+ayN z>=W6n%|Q{yOE}Hp9Dz3?&sX8hgoDrG+Rpwwipp#ne7qPWm^}l{%1uf*2kp!M+|UmF z&=4Kb5 zu>*&)~5m1w+G0K zab-=%cYuMl!8VRD+fjt~vSWj+Q>T5kNMJ}+KScCLg{Ni9w%B)L-4lc8Dj^PtDaPV>skopmNN5hZNH%xLlW#l>4?*9- zdfNt(Qb$B*C=vN79#D5lu*9QQu>`+5uTV_YFeTaSFwx44z_F3nF5-V zKF~Jt&>$ldbO;%&sSLpYDj|aXu-$kIY7^5>^`Qn~y!LzNjmn4On+dmsaA1MtPbZX_Pi@UP$C49_sq# zd@J^E5+ri{7D^9FW-oqN^aOnPMO+Hc{z?USn^Tv{&N?ywIi0RDaC-Tn|DOA$3{-!h+Y zB|(!C5s6TbBog7G6T!GZ0-^j)AB>)#F0hG%##-3%a>~_swa#;?Enp-sXOpE{IUVB` zA7SxkdfZlSq}NoNj(ZFRTKA?=3WsF9hfQ%WZLF=_(PwqaLEHZkJg|NPMUA8&nXeVO4|SyD6QZ1Cs>7As3Nw16o>jR z%@T`fKiHumsKEly$hGS~_3`rlcK35{-FdHFtX5NSM(dpo`SJyDRA=cGFZY7iC&DLG zv-WX~4|t%r{3B0hjz?dpk5y)b@qpj+nA{MUulk!$OOAFB)lR4FJNf{D?!doG)#wSx zQ%l?g0SyKGg9y>#!-y3v`Wd#+VZv%nEPkvgV3om;BRzsd8F6Ami47BWBSJAEM~@B( zRulLSVJ(;wL$0(LaU?yREKNqNmbBVGr7B(WjJfh3N2N(&wq%KMVbO;ZY08YKsMpeJ z-Bb+x7}P0Ci$JmZ#JYAZ*pw*Y&gDw?Cs43=+p^`G_b*God*9kDoKkIF#vuLryjz$r z#mGS)BVG)7v0%=2H|PGH9M^E;&ZXZD4!l<{Uev8kpT^9V^lQnMKhI{3yEEL&gm?Dr z>QL*1nYB7X9KO+b6Uvi)Ki9kUX~&1dD;i3+6=KeU2NP=CoEW5aoeBS)BrUR9ypqRt zw^k0kB2BJ0bN(jcS@y?~>}?)>DZjwt%TKV8%&}ph0OhhSww>H_tdU!iVlS=zL{kkg zw?NxayxD4N?n2cRyRAMBgS*f+5k*U_LNzVO~1iD zoKeIcQKZX5+QQ3G#^+wEE3qDdj4?OdDx*=y<^qHcqpKh)$i3tq`sy&Zc-u_72buea zJcvG7uOjXY+WtwpB4_imz?-OxNV}4^Zwn z^@!rIr3LeHb5l+;V#vWloy2a?(MFt0tqz^@(a_S+T#?EbVN_MB-dc4sRa_Z!(bZS8 zv~pG)ftBl5nR*L0$Wxs>wpUa!e0JC*T@(*lS@GKO%G<1kQa2?@tT9Ji5sfM@j)=;G z6QxcX^G`mHtaU#>&0`azYRr)VB1)1%@1HrnQ;0ZQ{o+z0LXGoI-KFXUwJ7sc!j7bW zAOVJ{exro-IWE~)e<`RoW(fHW@GKP+ajF?Em>%9%oRkpNNxUs;r(5H&e5wCx6=Z z##k-8MQRVf8p+g7^nU5?K@>aeNcV30{cuBL|Niyuj}~mQH_V^>bY&wZaqoTo8{mHa z`1Yi46%I9bYvA|@7bLY^CUHIinN?m;sN^iqYu$6rya2^8aa15=)yT#RJ|epBT<%04 zIUQRvSe6Ysu1(X^i$gq-jN^IiD02fKfezJ(UPJ_6fbksyowCCo9$*z~QN%5hVU>2s zAW5EJ21HP3gosdLiq&X`5BvZOoS>yB9h^(`CMLzDbR&!z0^ke1*1i`7P=Ne{ycIZImB(w4WxWiEB;Doa9gm$-E0FNOX&Ok&0; zn8jSBn~;ghV=mK~&xB?)r8!M%4zrhctfnDHnN4nXla$-^W@D5Y&ZuFNoaaPmI@P&O zc3$g~?JOre<(bZA!gHMPtmi!Sxlexf)1RNrCp!cBPl6WIpa(^0LKV7DhBnlp4~1w% zB|1@xR@9;w#b`z~x>1gH6rbSqXh=mmQf7jbq$l;KNdqUCftKu;-jkn7OX^FPf)l2{ zY~W2ri8Y*N>oBZr=|&;wQ=k%ca6J7cO;M_?p;D5m=9FYdO&Uj?zOt%76r4;?SD_{*P%fH@Du1ZCzV_BNkzrB>OwG>}L19~UJZIh8$T`V_)O31lYma@XK zY+{ErSk=aJv^$OIWlalNSpGGT#yo8}Ut7D`LKUm24QwvyX3%_!D^@BUZElIV+uI(s zw}+K2YMrIrp0>8I%=PM9LyIlyJ{3w@#ja?(D zCkYm}>m{%IKpQ^#F;c#uOrUQ+*x5;5@{lT`T-^!?-#?OXTmQ`~tm4|o&)OA#5k_z! zU86|-Q8h($d$52>n?Neviopl&FN!NX&=7~Hy*X6z2PG@v{sqQ2v-b7sTKl`&Mgr1) z9mbN0T5PDG^3|rma?q;8Ctn+XwzQAcF;}I0;U*6V$DwH4ruUs^{^?G$ zmaPf~dPRT!sbm!!X7!c0%#wa`XT$4ir73I1SpKxNb6wW-5xa2PPIdkG9Osq(K6%->G4cFxTvcVy64R{~@_2pC zHgBtYlTQWqnB&GrYO}h*46OHKq0R0}_HDieUlR8U2wM>=d)VrIWK^pi8e79#-#Hfd z?>x@%g)h>*+-3K@!Da4qhy2}kOm@fZJ>^LP+L{~>__Ol7UN4XNs}7cy$RCd7%9Wg# z`Yzp_A?;`wOB~qThV6SV4&96gkdrvC`N(lyat}ZHd?yEMoBiGClq1*cR4e#39m%$` z3B9fOt+$hHne?1%J)V>vcU;D{d({wM;N3%QX6<&{?Y&2N+e0~d2SWUoX)n>vcTaWYJKyoV4gJ|^Mf$IA z|3|?8IFF-l{6kY;)6sH%`PW_QIUecnd*{uud0jHj^IpHxzkY%vUwGxCs(b^N8oBB< zlQSE-jO zYo-fans4jCYfCf0>blQUK`Vp3q4Tc{v%35Hu@0l07!)wMfjR42GoPEfI)XAp8bS@D zGXm^6`insZthf`zq-!F;=|eS&bN(|UVKIiQu@rkj50oUHLOk~)!6KA3n(IOKLqG2O zyi60lCS1GI)4&r8!!lej$^*PP3`3~Hvmn$yJVUcHEIY@NJHjJFAe%zX(>^EcHA+*m z#LGP@9Kj^?IUG~C42(lLTq`fsxb%a;&6253JVGR-z~)N8EF-z4LPc*v!Bm8%%?qh4 zJjGQUDOqI2TC~M}3dLKzIo+#8Pb@N8d_`c?#bG2y-EzfZ%syU3#azTeqeI4ad&X## z#%ZL+X%xn4#KvsY#%<)rZuG`)1jld`$8jXbax}+tB&jgDnD<-{?o2t!ienQms3vP?J;R5oh^F(x3xQ=o}O}i`}!Wl)%V! zX+TVy5`@Gd%7e(9T$zp>N<;BTVVWV@Arww<20g(Ip;XFjN|&a550Lzbqr^#7BFd!L z$CC6)b99I&iU&$T2uDDRo4hWUjLMXtimHg7>0-&X_=-A{J3-8rpTWX!Q6q#JiEeP2 zicka-_#)(~lD&+kz#L4cBn_)fCapvXotdJf`O3-sMslef^lG4&WQ;tx1r>OifAAuS zL9F1aow<~~D)giN))AP|gCxUjj3nwNI1z`DERJlbB48lQ7;#N!N(kGO0o+tfadJ#q zV$850BTS*pON}HAIH{1)G_*=#4ycNtgTtBzfg~l_&ANciY{HJ*G#yBB zmG6Y6@T`mCJSFyg9P(7o_>4xV#2$&!2_jO8BT~)c5ED=_1Tv}ycJP6|5DSPf2O{`K zE^`R!{IQ6@4)Ew5sQ8(nu}-!aj{i&w0o4$(P>MI252)bKqKwIzbR$Yp&HrQy4`oP| zbRihBp@sxu)s$!qRohagdKGT71fQQ*i7>@l)c2yq`;ShfzO0M z2U$|jtX%#G3=Pm8#Ziz5QG7Xy3k6UCO$i2-&oGrn`XmeFY#yb+luofBt(XMQF%<#8 z4vQ#CHuDNV2{73p((6bD_L$HY{ZQIrQ#U34>iCBG2KeZlWRgj&@kM3}ntx#7eHBvm;)Mahf z;JhJUwU@E{2WidKjhz{0EmejE)|EY})49|#dRaczN)Fl_&|y+NDTtL!&>92HWH1L8 zqP9^<*pGFgZuL`pc?TiV36q$Jp?#F~Aj`1X6ni;|ll%u?C0a^#*m@n#oBhb)d`YL} z2p2e|f}mHFP+9PF*hSISIKd8?J%OvZgnd2Fj9tu{Ee`k`r<`rkZT+0Q_1GE3SC%DQ zl1d!@yqIi7R(6@$7nRPH*x5vERl9pgNBIXhVO$YfOK;^?8#0d?y;{-{R*U%2{;K#A z@@R+$&C#qy+pUGsuKg3bRi?J|96t#YH?jd&G24cv+ajf%>QUTb5Qs|m8|r`P0NLqs8UdQ5g!zg^(J9ldgnAu02*&^4@#x zmp<)Jf;1jYfr<^G-A~<5hfv**u-Eb&T#jT|Wg^o^ZP5@di<)Fd%VkTueUG34-ZE;T zRX~RXs0H?bV1->J=6zl2)nBl+Pr>zw^#uv*#oiI-DA;UZfmmMGA+|V>1c}`O;Z8Wsj@8}Y?UmBi4dSnrQ4E&;5DJMAr%mAA zRomZn*lhiWRp6KaJdB^n? zfXQ8x<>OmKypRX2fPi^jIu=#LZQfAH;~6cS(Ir~Iz2Am_;X>Bh{)OHDH3nY~xy9C~^Ubj)_>2 zahHTymocu|lhFy48Q&5aNH)p089d{5K;Uyh2!+|)qn#diL63s?hreuyn4wKYJ{N-B z8OFUAa@`j)hTVgaWaT~MeawUL7|xdY%zw~kp&^>j%%Dtej6D9G;=n~!ht=h&kXSIO z24~m`jBtkBv=?;VXDTjaLf&9s?Pq3PnN^O6N4DjPjws7q3{^E#<5``|P2=$m9;85r z;X!5(v1Z;&jN4Vr=J|(?URY_?2+Tp|%l!ymzFEIG({6a4?%h<+v00QrXx9YEP+iA+ zQq?cH9@9l-lo-$8tlvdl;H}l@*L4(*0NKq!=mf^qL6%ine%`LdROp$VSk~ZFQfP}t z>wm)N3rW&&o{tmih8pV6vepSE@=GVm999bx?8%<#+&hjqTYuIdqXks2mJNzz3OD-K zo8FAj3AU76tWAe6zX#R2P{&GY~Z3^Rbq;yqW;BRqrnu?_mItled=G1>a}d^ zC1vQ#MPP=^>ek)r!Ch!`{%Ymjp|W@f2~Je1vhX z#wA*gs1%2&6~}Sh;BiB#aTLmLVG`k73d)}T{_ztZM<2KCvdz>Sjd6L}Yfi0*DR0c# zCU7UWZ(6Ey{&uD#$E751NG6|0F}J1uK#M#u%ZgHSLTU48(sB1j^JRMTsfcrAs`F(+ zPc!evJulC*erZ83CQjB(1x88*p7ZtwbW_#m3r2K1e{y|&bXMwfKi|eiXXLsibYe2} zsP6Pwg3U$0ZcX>vTKe=fpY%YlbVy%y0S^!YChL#(Xe#y6SK`tPrOn|WW);PV2%Zoc zZq_dUhY_VBGg{>=MbKoma_PlYEoamkO;aWJ)lZgQV!!9DmeJN0ZQ-o#X|IZEukJJM z^8M!2T(8oPAYfk?-UJACf*AH#;&xX4mvvS`_gg30Uf=b0fA>P=8Qn1UvS*_`NLMqzKZ3CGM9{)L%~F zjA+wF#dVbz)Yid;+Pxf%Fb4oNV!Yzh1b|`k9J=L?1_%;Q^I%w zMtW%W2E%;%@Rd8;0g^zN3S8~tUXs0K8PbGGrS8aIr9OSwBneY4R26`m62vx=Q z>!k{Fn3;=Bd1XD>j%|6&pBVnlkNVFU2zhmsgZ6>Ni3bUW_BLTxh;UcMFY9NG)(MG9 z|Bdv7uJn7d7ox~tQAhNCHr7^WbtX3A&C&fLK6LW@*33tqaV3<1C4JLJeTI)>h!t#S zH4b!r*vQXH&PQ1x-c*|r{R(-03WZZ85+6o1NYSFhVb$I-q}Yv!OOX$E_RI+M-_VN;FI9{9@aI3K z=nhb<$6-L#PWGiv()P`f@t+XrD z?AvN_=Uye;a41i%P{oopXee3Ur$D7rt!0(&KfE#-^W_S2Gv=~H6=&7y^{dliP$^eE ztCFo-&t92c9(y|H<)Vv2i}cG-vtF1*Kf9!T);8nQkMrt2TGBUe*J!)Gbiw;N_UziX zyM&GuuhhTlzUWM>U*ByFGRm0qXq2Y(#f9oyu5Qy)! zrqX;I-d7-l{uA=|TVo9U*Bp01zI2;|=V7SQex31n(M=r+c3Fxw)^}ujBWlg1${Fc#zRmVuMJbfJ$~onukV;r6LyFL6p9-Lb`7E^2(lutNN~L+- zwJow)>Q^#aW+g~tnPWpiuvN>WlChRGtF9@1x+i0TrJJ3tJ$}U;qEr%i>{#-Wc;vMy zTH0;?rnTOBucz&*cy5&qkvcG@sG1}$xkl0%mYsX`>ffS523aqWo$~3D#(C1}9mVD9 z3NNw}HFAr;(#kwD&2_D;nsabj%P?=*E}CRcZ%W)&q&M!SGei5~yXl`E3#f3@xHggu zp4y=-GP-?1-7rW}OHA_BunBLtaBPaFk+^W5xa=vpl=Ez_WC3gpH zs<+3!lpr0gRMU-8m#>w%>1*N%NuZsxJk~p&I$F}6q%zevUA+5ld+%$xPJBr3cKrU2 z@UIt(lJPdFX(wFo=)h1TCwv6)sdDGkXiAUmRPOT54epZ9p^yGg>7tsg`gC}<{(9^c zVXiqt<|l}I?e=A*>aArv-Z5YD@{m5Kt;Bx@0U%kjw>^V&?<2uUUI916y5*gzaZEGB zKqjcbyiu-%CNyBXC?uG6Na}OgX&*B>lo+^$kA4kN;p?0sn7rVSg*|c|htOdQ-91l7 z9XeCurnfHF*kwO9bO{a{6GgD)ONj!+$ZnhnF2XtKBG)qFs(=E%)SYE0PYlTvVYR-N zz)*&en%@?0xGEirtcSM(Vts^2#A8JfiG4~TrPR2!lHhTNL&TetFw{pd+Wv=*fa6;8 z4rabp`SFC7yrkCjHNw}uAV*(ZmqhU8v&4~jB8Gy=h7mGpMPs=JaT|IhZ+clDU^b)?%W~h-nD--N-UOK@QRXj$`N@AM z;ufsb()-4kN;AfBB+jgl=&(3U%(QKkzcl6P2sX5mta62~j3xT))5(L`@^!h~Be<|x z4QA3yVdoS~IsvrKlk^jp2hgQKy7|p^yiXzmB`Ew@=}K6V5RxEa+CjW&A6H_sq$WM- zml}uCm9n&@E;R{7toc&l6>+9Ey(vy}s?(j)Or<>iDNuu|mdC(K{;0$>DpHfG)TJ`j zgg$L5RHNF`hhT82Pn9ZGv#Qmt3iYa7{VG_)njNo-wX9}6D_Ya4*0r*=t!{lQT;nR& zxze?+cD*ZJ^Qzaq@)fB9_^SZ=x>LXgR8v3f;pVhQV5!%_~i2C*z( zCrdNU{sXgK;;dag`%}>l_OFXIZDUcp64G{7vW2~@YhMcz)=rMLIE}4pONiUa#&))n z#VTfPTUXFZi?hPT4slDu+TJn*x4!)?CXZ`V>9)kVUrKIkWn10cnuNIx*==*d`&{mt zkh(5~EOuqKTh)p;yRHqZdEuJgFwGZC^$jm{ziVChz8Am#{k3F#&AQ&}l2^alWyyW{ zYh1=U7QLX&FMt!w(g0VMy$o*fg$t}(39E#{A@ML!Im{gngIFX9-miaQ`&tKE7_}wt z(u=vu;sa|3yCRmzjXfLR1;;o@JwD-&qlMuXt5~)-rtguvn`8siSgK3D4vC+PV+|`; zvpa6_im6<)Aj4P7;}vat70lcJ`WM0}(Xp4GJ7qIh8O35g@O~{TXYZCdxMVJ}dDn|& zGJChTB_1=8-OJ?F(pk)PwsU(2{AMQqcg}m}^PLrq=O{Ni%#)UIoQJGk@w!>hj3%$8 zQG(_sk3`e>J+r0VyyzmQ_|kAjaiLc&YC20gC@207v!rtk>rkHr(WL&cmG9i2aMrH`HN?T3%cP7XLGLs zjc-<;`pSrHH^mulYF}skx7j{+tFwz>;=VW957+a-2R`s%yExA*F7wGR&hjRg9Mlpw z?Tka7aYi#-!6J9~wOcN9#U>o$CI&gsx!rS}Go9i^_pq;pUGF**TIN{p_{&+%@uU+y z=Uhj&OQIgw7ylXDD&Bd95f13>-doy;-v0Tt-A!||e>uGvKlRU@F6HHt_U%?Ty17>_ zcEFD}-|qhUx{q#mi4XejO?P^v1KK0FOp7LuSdD{y$*cn&}rr!ag zU-`XW3fdeEy59qGnvDtD1lnK)%39UQ9SAC30Kyy$+8_e%->>N)5O$vBty{s};EY8d z?+qWkp&w<;vyj~-zWm(B|>5TDz2d=TAnGoAu1AM+UcS0VIrj=qTYeq#|>Q<2HF;8BhPK0 zEgD=ncH^G0pZuvK4RT>P*5Ei|V>5nP%taqF4x&2No+ZLu7bU zy&+M?TU;8QR2KfCR(_&R8fE?Mo+eggB#Pu7dSqaR9*A`sO+FsKHDXr=r7w!5nbB4j z7G^a*n;!aEs;Qb})+O_`rDMJ&RT`#EvKd__=E5CcV+vqYaw9>0q6~5+WhGxfUee^n zrfuFPZi3=%Nm*`+Rc*o;B=)9o4kvM9#&7yqa2Drq@g|a`rE)$ebPnfnj@V>Ir&>+t zc2uWzZYOsh7IWH{b9SeAjwgARr+Jzqr%AX0Kk!2( z+2>2efj{VHUEwEyYSkIYXG_4Rf%2zm;jD^mOcK#%j73h3gU`Qb7i?&1@6li>sK^!cocEmw^<|tHA zLI`}o2XsINM2^k`G%!3YSco+@ectlzK^^ zij@^`DT6vFN*yYh;%1?0)nC7-`rq>_O|6et;p=3lAlNq#3oz~>rB zM5QuBe4>P>hJ>cZr=?!%t7Wmu1ti~!ztg1xVX+y*Trcx@e+A5`r#IW9| z{;{4aNbu+x1naFWNJO4)z>9RNo|fy9a_a{yX+w;F zxJm>ch(M4IsRk?ryN(E+YJfqIz>s2qO;o^$=OuFC4HZfdYjY8<$tsCpoFc)_z8M6{}^7n}r-YAeakszD^{tk&wuYHG;p z>cy&ruNuV3%IV5hY{sH2L$GYE{sWKxY(o^NoZf1tK5Nj11kq;f8PqAx&P})e=|3Rp z2ed1?maCqgYqz#5L)2?epzfy)E_{M~28=-22Fanu(V)Wqt)iZl z!SozUZ-1>p#e7%1)|d zt?J`aD$c^EkDfuu7AVP{#NvW1NYpIQ)@kDY1LC?W=NbfpRx9d0?&^+2&E71k#^;O@ zZsL}1%!)+P_H2SS#IcGjtokVL=4`I&s?c64r#h`la4QFV0Kewz28aOHGDIMVt=S6c zw{|Vp;_1G63JH9xzN)SEh5*0n>-W~h2xve8xGnl_2Y!-A97sWa<^vJTEzsg`enNo- z0quWEN8f@({WdEW{OA7$aE6}6-WmkN-tUz%L|E`Fi7Zt1xGd@9Id>(Ge%Iry)F6we}8=Ee+dco>utF_kbC%0)z_$ux; zM7BPyt3K-|H)|xbt|)8ri(0NoEbb`hDxBsh^ri&2YJdo6K>oRmKn8eiLu_yRI)n&x zK#~fqGV5#hO2qb7FZ&*;l8W#Af&|$z0G__>c36QATdM+ZsaFhf7duCTI%%-_!##)u zIXep%cdSr1g0d!;GAV-u z<#uXSsU-~x-QN(w$1Lftip0zhyVth@6?6>11Pih za<7k^t-czwL3k}UuWbl?tN6An35aVrGe97aYmr*B`mTlidWjp4a6Wv*29K%D{^tt+ zLxaXM>~=J01afiT28r%AL+C(oBlJ-3bN=$SKb*#)b~JUL33O96a~p(n>+uLHG?$WS za1Zwl|0fj4gc%QgSFcK3ugpaU<`=@s2@kX2Qem{zV6F3kHb?$Pt(FHbaIdW$OFYK;rn*Md13IKe5 zssJ=LV$CwFHbgK>GPAz*$<8%N2szN!vLtUZ(7rNA0C{1DIc482nCI-P{%nsDc9)-o zmJ@kMz`0$=tf>mGVf!_mQ})Wn?3AAbw_*U2ervsY_K||NGiQMKReiHChS1uZNxKi-1e_nKn`$MQhaHu!vs)P4@D>ZP8)=O@u)>P4sjIqr8+ZOgFnESS0UcX($7uwJE`|-f+@$WC^(_W3C{@0A;`oO(P-yu4k@DV&PDWsk(4aH8ANYkUg|@qNaUVDrpZ-bMM|UMbw+OR)im&u`FELBgxZS&bg#UCxO9Zr!G~OF* z+l%@fzp({l_(qpAe!8=?p9P6lyL6v%9-qC2Ry1@!{;?}Dm;SxxKMLiC=vL(Yh>L`P zBJqirs^E7p8(;naXa23{JKT#Xga5mm-?eA~d8j7&U$tprQEtLB@4`2{fu;3peR7@7 z=vxap;(GZk`?Z{^^5qh1&Wri+f4t0YYO!{5$+qe#M|{fHe5u~DVuOV0Zu#$4e@T@8 zwNCcM#_6{HyuNb4(YppSJNoyI_5pY;l4kGH7liz>D?n5bk-?7$4FB?s_;B!F!$2W6 zO!)WkLq&@fJ1}Ut{*hzHe^%}th@*vH$&ybzTFH07BT1ATNj7OX#bnKr5;xK$GLs+9 zjw)Gpq$$&5&Ym2t@FTi0>CU1Jn?4nKl;cpT|7iOBsPt*lr95q##Obx88-6RXQiaMj zCEB8Kq||g0bZuCtSkan&nN(s{j&b~{MatG_*qc|UY6UDfYEiNr&AR=`?`~SdRIMW3 zTDc=!xpa|A?i|hK>DI=Enj3=-O)f)HL*=*5N#0+FJNEXoK!tX}#j z4lGK70@yOr^<#%%EyPGR+}QPE!XNxu*I}u3QseSJngU42II_8DI+-!@vVH(blAki3Q>T+X}a!kcc5 z>hAty&kJ4uF|eUwrJL{{>u?*-zN>Dna6V_RdT-Zcl{ApsNUsHUxC_nY?=J+iEpWbG zar0=nTYKd-z5mAb4_yomYA8j2L4L~;e{D; z=wVG!Y?xg9fGSE$(H@HpF-G}vOtdNMluD8_YR-AYQ6pTe2e zKkw8tWZD38>(09jWvR=p6xB-0QYZU)){iCKXzIyA{YPk)scx0!B#Zj`s!reXXXT?c zOFAeuw-%eVSBuuV<%Z(OjJEyAh-0@n-qp?9?!x=$Zv+LTP5?KolNLJNj77E~UH-Gv zu32!QtqojxH|L0q!YM2~-=YTZXt=(kwRiL*ogHuA#?QD=!0e3|QJQNBOQ+L!AdCn^fLX$1fAaqM_)pclEA5Jn{rj7_-DU{=-_{A37|=O zHYX@GNq!5gAKn7vBtVtKDRnbd&){N&3VQ8sNqNag2AGpW?d2#m$wvcqkU}tFih}dI zAbwm3Lm4`%Ym3n!32P>|3GyR;HdJ5&{nrvAYAS>yG}{D0Clsi4FpjzM?RvLZA~|@4_`7VNHmP#UVp;c=Nc$Db6~RTTbPUb2YN-r5>4<)%`+9SpJd}&NBTLleuizF?!=(}VaoK(E;^Ja0d3Mi z511HF5z{2b6r)FU1IXe8GFJj9o#xQB9N#F%q{KM`8Ql;^GC+=w_qpS;@)*gDWNssC zXxtl3=d1qM=6L3c*Xk0qNZ*}~k4UA>xNfztI5du_4l1gI;^kA9lJY^D%p^%E=}4)R z@<^xbNGfeP%T^XlV6kinA4CuWjBMZn4QbJd?i!-Bb^v@*`DHMr@};Y&A&gF%O@Ocv zMj|$FG7N>{$r4LV1#U2f)@-H_UG^%xMYc(k1tM3(sm{)DcCj64pGl&?SXgZoW*_B~ zVxi#Ke}J*G|A@;xSC}YR2{0c$6YXC}3kB6?vnRa$)HVKROB#Np_H4~u5^RV2T*-n_l& z{O*^(?7eS)H40#lXtTZq7VuO4i!}ou_)Lvr@Pi>7VF^!|!WEvdmVC=!3|pAP58iNu z7u??vuQv`x2+GKE7U2)uSF;CZU{IEnzYfos#x=I_jd5IH#|n4~JI?Ws?dxL^w-~@9 zRxdLlNaG%(*U0-7piLYMWGPRX%2l@Vm9d;^PAxuXF1QA&ULo)o$;J!J@1*%eV*}RGXCsmH}g!;g*Nn|5uIp7(-+Wurb$f# z4PcUxSxh$ZEunv`h)|S*k7B;WC_-`7MUR@)r8YH%8@=a8CmGfLFzDPM9oQY(I1igH z1*h43iCdRKtf%(%uYnzGVMi*o44(A)icRHBj{>Y~rh~0TF>Gm1o7x>dubq*5?foWO zGup-vU|xMBZr9h_R{=#SMj>ka<^kR6Uaul0gaAsR9wv&BwSSUT)go^BLMs3mOMa&1<3 zr!uq9t0wZKzh&uKq<9oOi*&JkY}3SRxF~8}3gGB^6ab=wC3X$!qF_Q4yB0;LH)88u zr@bSJX#1_<&Jl&j!S1{6^gqts>xd7Y@NQ0u5fn=pHzeMlg()Uz3MzBMgnTMT0QqDP zAM0%zhHNY^3*&1RdCE?H^p}?o=$V!eum74(O6qU6 z?(erm4uM1v0m0(sXvlt3xldipXLy= z$VJx#?;nt_KXfhHc(5q05Fz6J4KX&6BQ~u;YEbWPZ4!$j6tyrFRnf-K2K`8Hew3^6 ze11i%-Q9dy0L?srRNf<9fv$X3{#O{I5M#z*lzBU&l_(I)QZrT9F7#L?;J_791#N*S8*QcQNqw> z)l9D!ZGveA4x2t^Rgw|^{*X=xv1ah`8v9Wofw9tj5igu(R*n%hT1=d*Q5Lh&@$!)= zhDmR_jT-6Z8F2y|{ZSivjT@KG9KjLY?5Z8%@gMr`91}quTapsn(H)0y9plmZ>TxG| za@+O|xdLTS{ITB@l3e}(@-=dih6<8X3T_rVG8iulxrz}YTL>8^5>JAXP?|9+o3gcz zD&+XIZ+5V%?DR)_7c{7;M27X3}eiX=r@J4`^ z;shB;i8k&`nkk1CXx55yQqByBaN1?-obbsl7Rn>e2~L`GxxR@P z5sLHZ5SoCmp`r;zDN06JjYffwJar48T9js_ghb^D@@_PtI7Pos^gaWOBaDd2{aR_FYWHm1`n?K%FZLQ)bBPTOw%qyaZ~wX^F!72Ly_z0RExGs?zZUS z>6mVus%yB=&r-7DyIjq?cAj z%vu?2#Sks*Ztd^1jQb>%TFv!bZH!w#2FcPh&D530giO%rQe3m_)A9~o@ikv5>|G-T z%+Axz_*Gv8c3=s%U=8+Q5jJ5Jc3~N|VIB5iA-2MpWj7}_VlCD~^Pm>!0m~|O-j<_d z)eB_D$Z{U+V@bBZOjbAM>tyXnWiR$+|55<*fD@9TA+n(zWXoh}Ok}4mWpir1cs4lx zSQfy1_Gj^{Xjj%{b7N>>wrN*U09L^x&><+0w!?z9+O8Iovev?wg=y)lYn2whyw+*S zb|(!X8N|T`H1;1FAqA+`a<*2$;&#~PmR#yK!tPdV$5wBRwru^D9xtI9=pkb_c4@$T&)0iDSSrq!gR3`u z@gs&67<)aqdr??@E4GE>SAOX?h~Z2C{NQ*6_h)(df=L%={{a$W_urgn7^*=WeBcvE zHy#q87C={oTefy9xEjpC2L#}3eYbdzLwJe8b9a}Co%nW-Lw#|$i;o13-rBM(^j zAKn2pT3C(WVF()-ieG6MZg(xKVQMpWi-VSdt05i^AZ#VLBP`f+Ir)r7`HhuVmkAlL z0NIdtIgeTPm+@GRNtls~`H^!AU?M!(8 z!5p-LhG*HXDmcHl zSJu~=mDzeX*Lksdn5nsMOL%Ax`i7I4kRe)DDH@Vr*q~RqsFApr z5ks1f+GQnIqLG=7otmMI_NSvds2zHvu^PsjxlIjN}$d$p<8qPJO?7y6>BTDP4#wR!un9Xq(MtQAy12MCuEK>BTYIgcvaf-xj@St7Gl zx{_D8vqg4hcXxM**PToHA4nUTjTyFUSiEnWk`o*Lu<<&d#hZ`yda|F|s8u$u<+^VV zxx7uAdE=YCf1AATy05udzJ)u$Z)_E`dn25?e487ci5I2GT8nX_e9yX)J)#|I!Mk+> zrd|2FbC`z#9KWk}uX7rNr<#R3IEhhvk+WHc3mK_znyycK#p(OQ;Txz6`@MHr#RWXa zaf}k2p&`JyGD0}P!}@iPc)B+{d%2p6^Pm-Ww;NsnjW1lSGu*{fe6?Ggso%MvVSKU+ zo3G8=xBdIbU);mzyS07UpWAoFX?(M*99(hx=%Yinx&s;YMT*FJ2#p_FtRlV9?J-$X=!A*VF>nzb%eavy&)h!%v zW&LYgJJb*D*5NDH6OI#{A&buTvp;5LpWP$qfD@R3bhAMP{_`o8{D8ZmlX*R>wKr*j zov>B*)z4kNP<__hoz#?l%@o0aNmts*r-JRBHs<|+tHIudw|^11+e>700bZQP-Pcy3 zt@W-JLi!&Fyy4Xt;GN+GqL|bjUg7r(*+JO7m?hq0eccCJl=B_kL4L-PoLtmcN)n#( zG{fVyx)yF$27qDY8^VhFos<_o=Kg1%Gc>ul8-fxJxNwi;;q6BeDmWev{?tBUK8qbK#Yvn5OA~z!m%z+4^R@V(Dcl)>Ya|#l4mvo&0@q2ovjkh7#L1-JH7dFBiWWZ$! zoOFGhbZI)Lkzf0lUx6?j{;Zup^{avTXJ7R_V*2~n`tSXAiJx?dBKxP_>hUAu@&4kq zg8fO?{p&9I0m2-SRn?mOJNQpguWAh2`9KIUqQp-OD|RCy5z<12&Kyeoc+gNXaT6lu zsddpLN{kXuqD!z6q)dn>Q_lQHG2YFHIU^FJw=<~Fp+t)sJ&H7`(xptBIu+_?n7Bz5 z8KOIIFse9QRjZNAI?Nm}hTTjgJ9t%qS^)^xvi*0d8a=h2{>4*!$>zVP@wAo%`!(dq zzX!7=ySR4MSGSDSLY#WAVp;)OxmFE)Q0&37Xa7xhe9-OC$`MJjjVhL`S*uugsulUs z;LuCSDsCq77H3!fhO$F9Ub|Q7q=;AB)|EK-AVG;<|NhR6kfLqgfG4ay39)k5z}hbp z*1a1j!kViq$|ktGIn-f>^(rPTy{mY^>3h@es#j=yvMi(5C;C%FBI%@3e$ic2Q-4M! zc+*L80r((9Jv~KXg%)0jVTKxRcvMskJp{>NEO}VXJ6I_)Of>|0D2@-(#RHRR!1)H+ zfC4yZ+9#OBWe`EV`Grti#UT_AMU%bvPh&~Wh)^{S2@oP;l%-hWi7Bp_Vv8@vXdRQH ztyj%ICLT15U8iN~B116Nf?0#LRD+HW0w{6|bwY{MjSOn#LC{?X)${^FbU^YDjgB!E z+=u@}*`NMMRo>W2H8$+tTkw%e!b~Wuw>K*_?%G=WtP+9Uw$1fN3Y+uYPH{iY zHoJlkPI%#lCj}(aqDu9hNc9erR$SbIZ0VQS!Bv)ACk-utp@xNe6xP z!`YQhh{FTPPmD*wnSgFP-%*G~RA4RW?Mq+SIhhAt_m*%`N_)`Z-u4b+#V~aPi`BVK z>#EbcB!aLc_bV3!6{s!w9pr}gd!xqMmo|o_%^*|s4pJPLMoF=eC>=vz6T9W8^u#YH zccjRej1nLTnQDWa?4&0@nXB@B5su~yA?<>PJCT|26WyReEgZ(CMkHf#%9Gt!C?TvG zR_{&pz#(*WSQ1JV1Y@E^qA6=P!c-Emdqym#?|_IERQ}J2DuQAHWpc6pGJ>QL#~PXz z&xDz{@i2^l93yU+S;WwAQ%$5~oykZkn8(d=lz$x9`?A%c6*8@teT-tb$hJR&-0_h2 zM94ZfNfe3z#daToWNjpwM@kk{e@3BbAVG=IjB3=A9gN!%Cj?DoGO>i9LFNgP0Tfo6 zz$OAr4^R?E5d-T=kx9kz~`Z35}+M0&d+no*n0G>w1!1kEJ|wTU0um1FKV zlP3}tBsDXd(K_nKv;{3~I&mWzKax&S;QiKU(*RBR9d=s>d<(Vg(+X*CTS zAooY0U19A!5pv2~k!Zo0IIaR91Ib(eIui#@?I`pE%Op1n*~tD%Rzp}NpR8nX5L}Wk zh)WfXl9D76XRNFm&gf&{YSuxDv}km>SvqABYIWYSV zTvG3M(M;wvKjJ8eL1HXXbXkdXV9*m3$`HGd0d#K_sUdv{QPTV3TYd$pT)KrICfXBN zbw^$6?kT&#;^mDv!I0tl7Py+F9Kh1U3IS;tibxW9SDVAT>C3w{u=guQ5&&{+X|h_&`z$1==SJR2~!x+UAZPm<{D_skeMM2^Ri^Z%x8#(c+qf;<8IPiK>i#p zJ~R)lXcuC=XiEk#j!R4NtlayFs`7S0N9%7{vmgIrCZ z7e+KENBl>m0yEPjUE&`|F4~fL+G~dVIy+I$F|orc5v}z4AJzDE^tSBnp?IP;-7wMd zf-)k$?PF{*?moM4_``gfbQl68Qd}zV|Ds7wlRb z*)BJ*(O2}odDuP#@rL;1K^UzgRp z4)(B%eeAu}I@H0Pb*`i9>tydb+t1o|b16awtt7H1*vo$Qw6DGGZ;$({3((R2x$nL2F$j4XQ^`C*dH3Oh|7gt@lJ|!<{_pR; z`-~c5Bjrx|;GF;b>~9eHh#S7*{mXp8ao_1`Uw-JZuYIvcAC!qF^7X}>{`ePe{7ZrA zN6UqmVzo+P=$kpd&fA2z+CL0Z+@X*PEv)ClK^$HP={fJ zh~{XWBO%?83muj?bU+Z?K_&hzhJ!;Wg$zN3TQ>n$=n=uTg%3g-pav$r(Jd!eTkynz zGocX`(Gi{!g;RKQ4@P|{2Y2)|f*+Aa0)d29$Xs=ZM~P%Be#nS^@rGC!5p=)_PDXFm z!iklbi2a9Rf|OKgM;H?~ho&eIkthSllOUKVD51za1{jG0;d0bxi9&%M{_`E0_<2DA zilW#K2Iz)}7>mAGC=f(2XylC9Vv9lHJBrpHiS&zbRgDQoeTC?N3^7f_D2JUGhekn; zGL&d#M-t|ki0KFsyZCO}c#1c1jJcQ*-?)v~R8TIFc2x0Yt1nE_ zK;>~;-sh6^0hLm-lcFXwq$X+W2qs;TkP-2dV5v3tfo3d$HhKkVW?5#6CYAr!fqf+y zL&KI@`7CdlX;+yj9XS!}IFoQWn|QdnE5 z6WCK=uYwUX{)ThVA}E9+LmrWt^wBE3xs+mdKg6P9$D)*@GMgh$_)(lu`6I!^V!S$dpvFnM30t186LYH=VRHOWa9!33fhAQ!I31CwKx} ze9~b;0YTTPghtk#_Q`+42_mtXEd5C~sH7gXf<(%4D>@jT)j5(3h%NlNEFD&%5Sl%} zHZA1WHv-z5R6?8zdMCAUoF}$|VrilYsuv`RpUt_Shryu#NiqexDEIlH!C8+V;hC;9ue#xCF$1&i7Zf9#9|A;gI~!nEp|UKS zQk1u*6KhIJ1+h_uLKL?`QQ<-`M4MgFtmaCY2avA#TD0(Vt;EH(w+SIcca-h(vqF(b zYow9=YP5Aruez3!g?cT56tD-2o|ELW&UBwAYZF>KJoeWUF%)2Y>$caJNdbkkqjr}2 zL%7I7gE5P#Kj*i}8e)t&xox|b9Vcpxu;vLM|-)Unz}^^pd72P2$8poBvB;6y5I_>5lc^w3%6Xh6RhM)u(Y!CdAumg zJGeB10`@R#OSJ2%xLb?8Ls60qTTcc{u;|!LD2XkJOSvC=t4Rx&=UYmL8&URaxYuG1 zHqc&;o4$`5xDo0~11g8;E3m~onYWuZ16;rr`JYPrtG_9_{)DUkMZut&s3x1iFXT#B zt3s1Aa~Z6Xc-U8eg@Ol#fz}GZ@#`iWEUPNav#3kF7re0yEE5Fr!FL410MbgeV8Sg+ zy{?E>Od7Wb8W$&(Qf0wXJNHuM6H^W;U^Hb@OG>|sqgGgwt?wF`{&ER4V`D00tAoI$w{15nz~7n95<9ab@{qztb7v`0m_(T7GIdPDUx#a#l-6?Sjiw-(n?yUH8-dw zN~&duYzVp~TfN3iUsD;zOI1;1j70xsU>NZ=c>rJEw-f1wVeHk$#tAIQS_OZj&jbDb&+fdV@Y#>N6wrHSJ`r+- zvcX^u24O$?!~bSJ&Ufr-Ax*oS9Gc>coHIRy1S_NAEFKpP(;6LN5)~mOP0=B7VLaWzF4NM%@zS(x zS%rowP}a>|dzp^|NMbmGL-sf=#v)wY&P_IG$*isH3(nwyn2c5tf408@l9goP#X>EZ zcHIyO3{{q96_^GlUR|yr+?O!V3}oepvC;%+7{knjmr8l*NWJ2G~s2?V#gm*bNSZFj)>EX=yAakaWa{} zE7xvni`*Co-jXU4@W>bXX>k&vFdq_YcDq6pu5shZd^Niu`z>+l8Q&Ey5eoheFtMx@ zcHvl<;Z}p<3~no(_dUfZ6d|W=MgS4;I20}J5HEh&?aaIlM{oA_Hx@76YRGn;DR?gDd(P*_Cxng{=Y5XNW9Of(-7Xpk3H3?RbrQpZ?&y!6fqH&; zfez{FI(983>FWV_!N`}D?&+VdE|lJOq7Le$u2BNCk8ZAkNp5|h?&_}&>#;8Dvrg-^ zZtJ&>>$$G$yUy!KA$d8&OhfVOy$%w?PVC2?ef(B9!468wzCph}GS2=y%nonVt}e#z z8oz;c&~EM1E_FkN?BQN|J7zfD9(Bcb?b^;s+`c{1ektY-?BAa5MT70%HdPvg?d*Q< z#ZK*1Chq^fc-tlK=mPKdKJXk;{_p3K@ce%8ONZ{?rW6aW@cw=i5-${JNAUo!@oi`E z7*g;8-|!mJ@fkAm;C>V(Kk@CZ?!I2|>*DU&9`X@y?kKhhPF~96OAM{1P@8@pwO%HZ!p%4i1B)`O4B*kOouJjLY6d(Uh=w3uR^YSZi zC{@4mYj*Bo742eg@UTVkYH#l+fAALn^`ABOOV9E~KlTs*@&>>5@$U40e|ELg83=(G zLse{6pZ9u?^>B~(-;_Eguk>f1WQ*VTmA_`ol<|)*`6`d~VK42JfAQ8X_ubR^Y`RRsDu2=5BXYu{>ktE)ejK=1P&BXP{2Th0u3Ha_-|pugbxuK zoJi53MTi+8V$>*6qYNd%1WlNl3yRzhpwI;4Ron3`-I)Gx+sbSk^leVFJmq@b%QoavymrT;t-CU3+OvVrHlRvithQ|A#)lpEObqhmR=12%r;b}Vwq)CDNq$Y-`|jV=S@-Idof3F(pMx3a zHYs^%>y5XgFQz{vLx*^^BcI)py=%#aSHlUQl>b2$u6skbLkV9}X$JUEbJPb3`a6=9|3~!Zc=%G)i z1{+(?LgTVa(J%x76mY)9TpQ6u0S#2lITszoNyQ6y3eZ6rt0R#t27yeF$Gj#)?lcr7 z^zcb2qyCg~N+~ai>Kz>zYUBhTBD1bY;aZd~D<6>za=-X;98x~h+EY?J{fI2ixBl?k z%0{@{jPpS3bTkvsHd)MXM+k3pk4*xF{IbM1DWvjINF$YWQp!FNEvoWND=R$iK_w)tk9bJlrho_qHBXP|=?dT64H zHu`8}FCJLsqf}O!L#D&CvYIB0eLCR8rmlKAowY8vL$3)AyXLDYwKXWvsv*r>UYY(1 zw6(vZ`QFQ-Mrdp*;kK&mNzcv*?|;&sYU_anmx}OK?dD1E)szB!T)hoOdziREdi>wZ zk?vbIm7l5xodeizn{SO6mwRr-lOz4^s1Tph^ojk32ynw&PpEdPMNhpY*x5@ebN?dW zy>QB{QVDo|k=Oju)iVMyo^qStsdw)5D_QzusfQT*ggkfMDX6}Olh34j=e{WZ#)lV3 z`{l)3rSgHE0v#a`=OsWyE`c>Wuj;$TSMxu6P$rNeK5h!uDkG}L=yAWw z`7dc7%#NjQXh0NxjVbC|pu8+-EE5tBen3g$%y{Ua4Qeoa9OR4#$)_!zG%;`^G?^A9 zh%~(!0vJ(YN0(?=6-bP+8tpLS7SWM_TZBjemqaEoiB z1BfaYm3S;fho>4yRm4a}ABaS6X^aXRiTB1^{6j=^>_*j^)U1D0qZ|HgTnimI!3=?n zGIVF0fEWc*M%h@&bplvLM%G3%&|oq||KKD-Ov#LAt&)`k{M;%FqKIA$gp_N-$uEPM z5Jv*zm62o!h(xrIT!v0LgPZ^**VsmfJP?@z$(=zO(Ti#b#2nG0Atp6B$2xjaaG|UU zM<9XDs5rxt2tlS)_K6TkAVigB1Brct%a1dEhlxzIi<2rnursh85EuXEM-4z zji(mn*~>}i`HyTD2In>w<6C^_*pu3KhuK9_7Byx^3 z1Wi0(2RpHLH5+v_PeB&RNTg1JqQxvoUiV5vzos&QY6NiwJ!nN+dskzI7dr+`NJYc--l^b~a=3tI zSN)19-2T>6Akw2xKN`BmZc(KZ_{vMWH$~!7gun$s{w!e={0~b>Wgw{)Dqx+JR&G-G zz%WYBgbi$A7tWT!G64}n+&W0RPV~3*VsU$|DvlUS1*o-KVunQ{K8;v2Au)X6d8d+I z>VDXEzP%LTc>GojAGD7k5u7Ctp%!pKULM^?@E60s-bQb16V%UvIlk|Ckl1Qa5Es#|6 zwT7hhbo|0+kf+2AOk2Ftmb;9>YM7%-G4y2qqX(UbR)`XUqE2*~S8R};9)vvl69^q3 z(Z*M^GY_-w@C&Tt?MQ0McV66emwN3GTjRNr#sl_HD=VkmaQYwb7PPSq%~V8_+S+6? zjA8%bxq&d-B@%Qn2E`W^!;%y#^;CEatD$9*Mtg>yOZKvpv9-vt8sD>t_?oSvaBLQj zF)}@&Su;IDt~@xsZM8C%TR7ICa{C|X<_W8ny0vhRhulJytH-yt?Sb(8=5Mw5vo-!{ zDu?DBzGfl+SZ7tDvO3t;KJ!38mo}oV!hST3p?*n|2TC|=%8B*dH7|=MnOyuLGPU|Z ztb}z4YTerFspWCc6T-B;quw(wSg8Jok@aG3-KF-{C>@UrXR1-8?8dCo;;Sz8!9zXD zr8PKl?q}YL5ZApZI}qlgL{%6(IY*g1Hh<* zAMaBtK`NafilW|$EH}b4gWJ06c#1g#tPpvM7viJ+BR0{{KZHo6S2K^dQ$K;wGl`2l z=&KwG%%(YdCkz}D4V)#kxc;Xj6F!x*KL|@8w2;9|puvH|wVjeSC2EB8BR!706c!Yc zfzUyzxV-UtsnjzM#gmp3fl)xHH?#w zV7Iu5B7=}ZOxZmj%oN{ClNaOvMih}p^d6eEU-3I!~|gSfL4{wx(14q_SyxpP-H-y4{M8XjB!CEAsH+(=Z*}|?G#7{I2FqAzp{4I6N$7qzKGn9$45+xO2 ztr~K|f$Yd`_{fo?L}7GD>f4$YL@zy*I6f?q27w(3+(?L=A47b?$JjctBQxj`J7J2% zC0a?8tVL9*ik_^6M3OCYw7cKZA{z2X-Xg`};K?^qN;n%uZ0kY!bH#G3$8C|nr6bC* zYzUJ4$ey@DZtBL*3c-vxO9Wg?vUJMFjKq zoct-MGdn4HIJ3(cY!&1VeK36M_4Djv@{E^FeJ z$$(NMtv90t5obs<1Hp*i8PV4K57x9SL(3)#JyGLq2m=(duQ5OpO3nSGMIajp7Ro%; zV34ce&N{`e9}Q28#L>pE6cyb*4~s>H1ItOY7lc5pLVdr$+M50xi15=-hn&*y^PPqu z)MPN!NWCboG|>6$tpxoDm|##2wafM#vL);Zv8sR~B*3);Lr}~JICW6SqtXaXMiAYq zx%vmi#LFff&PC&t7;=W=bB434g~yvb*s&BaV@v`>s)2k?YTZ%E42@q6R>K6+K>lUN ziczOH%!5Xlw8nG@I?%WfO;SZQ4iFi%gX5se{MNSXHg)YSOm)hO%aViG5;GbUim2C} zyVrw+MK=Ag?-{nV+14e~J+e@Urdy>}c&KS3O}=zJGh8%7urz*!w%?i>EP*R783>Nm z37~?GcU`4C7^YM`*MSu!wMbd}LyehKM!a;iXb}KP2&GE`REZPRUa=BoWiZe{R?UMq zE?PXJY|us#TB~vfbaWP{Tg>HT9868W7+J2Ng+8MNRqsp)nT^-AEYpY}>azxVS|?wv}4hd^(lj)2#xg{;43rdBxaj z<&-Z=s9`v;>zh^Y3DeL^tm2AX91YjVEU>geT&Yl8iygvmg(;mtEEfwThVU^=afa3E zsT;haiD2D^4UT#JS*xJkZg5@RGM#*7GU0+cUC~|M1y0)hp5Kj^;tUPYy^^jR6xvOv z?Hb*6e2CVwI2jWq#ED*mY&7ADMF)xAsxe%LAl}@Z^1+HsFnH6+HbA%ffj*1sPp<%UO%p$aAd6sk&h_o{+Kln$Kdd1jv4^IHy zY%l^wMbn%#o+mJN{B6%iY~_B>D1W|gJUaZi%3RdFV@qP>(xPG z;ZSIFrJ_`(uw4~^KK|7TRn>ZvTzXl_=EB^WSW|)6WEb{g zBYmm483 zvOJgu0uLf$W^!)lqcP`W5obws=P4PtUGfQdz8=|)lyz1~dj992$!D|S8-WJs?|9Ln zOo@W-j(%3>bjDSKj_8|NXnrQ>d6sAmnHp$boQuZjI7Oe1_GpnFX_78!lRjybPHB~1 zX_jtjmwsuOj%k^mX_~HSo4#qB&S{# zr+#Xi!Kkb{WT>uctG?=)#xEUyUwKy1r|?&g+1&YrXDkzy9mIQDMLyZ2rP7Yz(n$_zUTns0?8yOT>QijT zo@~mlY=3@b43cci-fYh9Y|s8|&<<_U9&OStZPPw&)J|>HUTxNHZP$Kn*p6-4o^9G@ zn1-%xnYOq(br;LNZGQ3X40#&h?&&zw4BXl6hcSem$_9Aln#!0krqFG_Naxx*3W`RO z;|4X!@sQ)*=hN|S7+UV;{uJ;Apz{7`Qw>+3F78JbitMHs^%fwac+nR#7t3I8rI79; zIU=#x?w?p_GkI@&jPEGvZgehh`WDEZpajIt2DG$o{w50R8EX9A7o$*8%Mjv*WQym} zraW*2uGZA0sBnoVD^$B-1q{t%_<@bLigo!CdsZVFHd7tLG|I2%fuqSP4^ z!L@>6{?Q2?s)_#o(mkP>a82WC_HG8U<8yhB+QL&u3Cpj5?mQvy2#F~kT@*W(sx)!# z3D?4<$WA^Ham;A(2U&4Dk7hj22pQ!zIv82b z$QS0w@*u%5P`ofSTTCFIiavVWnke#%NEu;)7aT|BMsG{8Kp-J*mnq*v;gt`7Z3ryi z81g1DFE>Xo&(R8|5A-H*qA>GBmvl;9^OPa+h`Aa#Kk}c@bIZ%&KKF?W-3(yg@1{AT zV*d#J_6(_prR7Bxgqw9fk4~2QS3kRCTs)dAE!kS# zUdW^a$%oABC8sC0ZvF*d^_7DLJ#APuYmxFpR%e+(JV|8NTo(zTS7!R9w%TAep~IeV z#N`H^{&c-r78yzJnMVX}wxL&&eSK*Nk$2!3gw$T;F%(;K%<1+Oe7cJU>59zynwWSf5*(o|z|E#`)hdo^*F z#Iv{dh@r0j= z6TS1Fe=Tt)lU!y=1fX0N3G`Ti#tCInOG>SRmp~TDmJD8))kMic^yE~aO)x1KlcO!Y zlarQH6(_)@TxBZKrU!J&6>>yIWN0f-2B?VEYuP5B}S*{=Lf?ck zqAsJEuAZv$>{@G5!<<*w>wZ0?#0PR++LI4Q2Ju@ZY_y`vH)0L3U(jZT^irOtis>+@ z$^~n&=w?{#CEb{yl0d$N#OVeobzlM-U zF02Wkmlz18pY*LSw!zN{8B)CqhOLHFiAe|@vZVs9&<6X`pzEM_Ca(x@Zh$)0RA~1V z(zuOr@;jR8z*a@nVGD68DNpN4w2F}Er2?Fj2u$*lqw|#pa||&UZvF~%kh>fJbbJxr z4X-1VXhCf}S-i;V7RN*wzK0XCQ%M!^XFHSl?v5KwB=EW-JhO>}iB?0>P?DD!w!lhJ zIP*!PAc>z!md}X%`UfZhSiF>suq2A$oL zwnS-t@HZgAm=b;Il55#$maTk~q&ldv>df$O@4O+{`jSi=W>A46k!Li+^G|r@35PgI zqBqa!w^`*(k4BSXFVhATRvA)}#z~|^w5T|(7^|W=`9wEp{!oi}bgB`_pv^yd#}!KS zC!3|2l^iXq$lI|La6gi0NBKxdKf(-<5P_*nt*B8fYBWt|!DUGvSwe_SQid(V4|O!z z7EXG}nY%ogD6eNc3EImXHb@Qp6eW{J3@0(tnJV3Of>wqw?`U?+C8D%C#R9EWCADH7 zUy7+#-1v{JMJ$nJoO#x?ZY_#x6DwI;<4tt=Or#N;+rz;5B}p-{hbWk1(5SQ{mQ5W&-7D0>EhB6r0(L zjxM9Dk_rDp<&?y6F{Gu%ja*KU3|NuW1cOnbOICvZQH=noE;*4)H<)olo92$QNqr-g zdRoAh0Cl?YA`z>Ccp7l zoL?Oa%#&2%MZ#2bUD2qhHeIR>Pj)RXUe!`wkR2$%R7!AOX>(vlLFTnAYt4{4OxT;I z)?8=oEFp>K;|)cY!WZOPCT*E9WbyT=pk>-u`y$~fdhLBQjv{jM8I%_*7PfCIBXTP| zWl$AO!*sjx+jMC!xiwU>LD2|I@|d!FuJ*O~Nv{Xz2OI6c6nBU7DSSaX=0=6Z8Jenw zGnQJ5l)*?;I%RKF#QQdc&T-C*hHXpCVW<8)=Tvn+_4A*78NTq)VKsDtXdXDhk*Qev zAecrqo{5u_J@MykWlbAfK2wwXdd67?X~YRCbDB&-LRs1(vt3pA4jmwb*X*&LPK=H0 zk|_H(nG7{+l4gkS=$b$5D$KJ55N+mQTSlU8Tf|`9Cn?u zvEpB$`H$bdA9*iL&B%qfA`DeVnf|mSS^_ewO&^6v;I(9s4T;oJG~MR_a&jtgX$f5_ zXRFO%l+oB4%f=?6x3H(3eOccK*PZ)b)-BT~ompppH`0#M5k~8UX?ryU?-@a%WFwip z*l`noYWAXXORJ#>I&3jY#g5qVBJ|M1aLE_VTk|X+aRx)s@otcW4fOpvefNe$G(3~gL>qPpPLMZxuc#>;I;J~mGKwh_b+1p)*r|HS?)^i zCn$W?1_gIj1ftm9wLFjZ{v8dSVI8zoz~niRIC&l3O&w%ujkGAn7eOC;#Y5VC#cFJY z8?_IlVHJf1j@&Vz1JVZs@|grq9f{BZCoJExNRxF;-g(&3TQnd;&`t%NpbmzJSv3MQ zS=#Z8kfV5l)@6ecK!k7O}Cp&;SY68j7JECe%((L zIjUnjdKd?e1U$OqJkn!5+T%UqV?IulKHlMR@uNKQV?YWdnGNLe6{LsxV?ZY4K~7fH zQPD!;0(h_&h>c`RBBVny z;$zLS|%2=44W4Wm@KC zVkSn4WoB~bn04l7f@Wxn=4g_pWNxNq{-sOGWNL2MT%KlOzGi94=4{d?Urf0V0 zbTVc*)@FE$=Xfq9=&|HH!iVDNqav6<6Q&z1QiM5tBucht=q+J=uHJg$=aik$d5R+w zv8Q_i1yue*T2|U+S0W~OerIfwXM;NEgWhAN*oj~$XF6)ca{PmaemFnpP} z1c%l{WG#5841j2D3B-w}D1z#we6T2g-a@me+N&6-nZ#(iVM4R0(nQ1_apGk(UL=Pe z*+?>|J02;7D(R9kDK;)lfAOI@Mh}}^VLB3!=ZI63qNiY?n~PQ{foW;qCDwo1lvaTX zm9`_17M*4WY2B!%nwDddHtC$wse=X!!tfI)h9xE85r&1w2p;J6!4E|Emx^(jUjAZF zY$A{qnEKhIR{n`98iap2DvSkHr1qgkgpHnBDld5_L8d08CMqb(=|1Wy#wjSN_M!Z& z;{K=#X`RAqtdb{qy+Emb+-7-a^l4mgft{;1q&22Xk?9wk=&JfbVi6L_B(3VBPUnna zOa#r!7qX^qE!otS+Fvber|zjmQLCI4>j*9@S9&X;R;r}NSh14oJ%wtU%4)m1>t!Zh zY`o67!kK5Xg@qi2>;&SPKBTic(7jj-_|=G5#*nfKDzd(6X3d1bPS~(WE7f_aaWHIW zbi>rd8MlfQ-$X2#q3Q&VYoKl{pdQC&x#>Ro!l}!mZQ26nTd+qN%4fK$YYVByLReZNb?r-z)*~ia z0sU-|2JONo?aoGN*7^>ZqD6yQ*#Jn(kUA%wdFvqvC2OA;%-V>aT9qe{E4;G#9Jtq~SiI&~mA%cCGF{ zm`1Ri)2b`f`m3iFP_OJ?neXE5>}nv7wOPjIF49h!;1+H9Qg7aFNTDK24817uBCmb^QSSb&rv1v7 z>}DC9TJ8RF?#N;+?)ok0;w{L6?*vn@NK%UKJSpWyZ;fDS=B_Wpdd}u#-`y4$0qO3> z3b6dv*7-=C(gLmJ=Ix~#gx!{;)nY9Hd+VbA|1sm}Z-{ZYP zVbk@Pad>0KHQYfcLJE{z8OD{^&F9BfYnhEGv6jRWH*nnyZ5JXe7DI5xjPV6mZvnP& zmC|p3Kmv*^$wJTwi|iN)V;l;bY{wE$x2CBKD=@@H@z(b6S4^PMFlZ4Y@gg(wIVKZ` zeevxvs|4L&>Cw}p7$E!(kxQ_YvJhf9MRF!s!FGt5ijd9@bV(y^~PqYHu5qv^Eu9~50cw(Npjpm zY^gox3s6ivPV?2i-#Zn@GgDzS!!j?gvN~}xCgYLz{;M|wQA)6#6W^Wz%Q8jK1|~og zbOwkcMla|REDozP$)+$c2Xnm+GwXWp?4>OK4skOxbVG-vL=GfG^Cjt;iGNBjJxVl5 zBCSOer6N0~Kqsg&JM>7Cv^nymK%TVb+G9%Zj7W-0_| z*Kp?JS4L+r*CSB>vjjWxF!=P4MsiXkB}G?ePIqTb^ZxWyQ*}~GH9|YJTV8clb9GmH z^;d&+Sc~;olXY2}^;x5JTC4S1AEXMo9$UMmTf=o=p2l16^j6QcTV~_z45wVvqZL-9 zTIwS#*>&mq^<$o;Vam~!?Q1>)b~)B{V=ne$`f6T3CV}qjVY}mFw_{>=b}1FM+G=)V zdiG$#^iKV#V_)7KM)qQ!c4DHdWj|(bXrdzobv<(SPYSj`+L3H;WN8cLWE)sxt9EE} zrf|ddg=MukB6miA*w?_4Go&D|4EKDpWxLoMYGtOG24rqWj57hZJNC9Ya(6wJciNt} zq!BkTDrb6cP3u){q6~S7Q(^*+6GOm+8Ue zmlITyTd9>_$#t&K*RTZ<*&;OAIYji3GX#2{TM}zaRF_IIpi`oj5R|qIdZ3f}M@qR| znmL-6qn7VE*Z6r+0*;(xy4v`;p+gYb95LS;g6NTF6TU z?3&x^#T}kg(P?049>lR*xJi#B`qzs`n6?(?bD-si{g*_@VWgFlD>^2tc;~|ibnu3D zi{pbQ3FYsrRsqSK{Ks_DNj;$>?5YiI#Quz25NsI5i-5?LtjFK%YvL;f=li|DPd=QG zV}^G|lAAsjviH)V2H^Wf@E=6&yG)oKJAQOOVU&LI&)d=ECxiq?=+{Z=kE!fc3GEO6 zOD_cZ%UX;4{z^>+z5YzdYJb0oLyEIf_k96`xC#FVb|dodQZ;l3^3)P20HOeb1S3i$ zxX{nAe+C7tT1c?rM?=Xz{>%6<52a+)=uIRTuOUl_s|5b5IPs>*Vb$JEY-o^R#%fJm zCajqeXu^dJYr1s$RH%w!O$n}2c)+FAcsi-ZB>EI=)vIB_{yeCYr_WkI$%ZxCmg~TY zLVJQ-dlq3es{gEhh3oRIQ@U!|@*V1OWXZoyy}}Jl7;o0Y6BA?o7t@8~yNk=#n*6V_ zSihi2TE6T#o@v0IGygp)ccN9rhPMv3TbMKB&8u|}*S_vYT{`|Es;?kXQD_`zZy5y~PtEC2OJ@#j{&A+#I|Gs!lh>hcFr}{A=JpoK7 zICQ|AE4^LB1GZ?{wq?ZS)Var7ob0ZF_sbH&*Jik6E4?Gz)>kY^kzlzDm2lv|1 zv(YA^(Z=9*TdheaVLP##c5HC#%Jvc(@1G%;^ejugVB>K`2fO@|EEkn@ip3nGY>&zZ ztweG$J7Hw=w#ef9aU`m^^b)@6jBHa%KhK1b#WIP!?!`2p43thc5&cfbyh;L;I!ZH@ zGSO20O$}?q`D*#635nz^6t)rdm5B+Vjt1zDmSWkk%lCx888(tL5EccYRPj&Nk zm^XQ&1z6x4B|f(n_SP%dQFDtL%PMz8tM}h~4R#9RfeQ|o-Zno4x!oeA3~A?6jXpKi z{i1YLUDEEuDnF$ka`r!F1^A>J8ft;bp+=Hvm1Y}5e29`8>>a<96Y``iox0geA-E=SZE8Ce52ia}JIrZBx!3lSmN6B4k z32^FkLntRqy1HnXMA#roD4T4 z#Q-i|Jz89P@|Gwa*=b{7iP?8TGduVcsseS3UIsZ+!U;CbFa;!1?b-rDe*OW?H4oH{ z1flmf|B=Oo_)1yP?7|+yEl@1uv7l+_GeRNqkRU;X3leE#!lx{8B8mXl%C6T%Q^8MF ztYTU<%pn7UlubS0qg77WI1*=YBq7c~$q=1V88Avp96l({v1URL{4uL)7IB+U%6LW; z{cmn93E*-Ds2!dVt`%l`ks>+qAP9nGBxHnB9vWfBNfLw(k?h7-XxKa`zRhr%R1hS9 zamepjk8zt& zL^AS^KiX7(?-YtlZ4@DDCDK~$X{1YrlqGjn^+D~R++VP2BQkaMM$T{$-`@GSQ&Lce z6N#ja&|!-Nf(5LHaa~+J`ZySYwHsp1sHB=Cq%^T5lT8}s6|;27uy9FUbS(^^0$U|` zg_EyMQjj^rf>*uHCa#86TtQ`&S*Lh*sV{Y;U`Z7dBoU4NEU48WXGcRS<`6;gf4aMi#5E)vbO}ElP>&PVp&?f8waXTC?$jr>L=RH60&vhZ>Wiu41?4 z0qQ>@DUgf|H6oWVDu(jcwzQsPxejXX3jwG?0UBs`C9@|+Z}b8T!bK6cAZeE-dQXzJ z!v}t7C0SXEva>d=cAi*CH)1)x?|6c#)yRes<^`kt?zbJD>?NsG;vfJEc(4C}@Pj7o zk_&4}!~cMUel^u!myB4w6rNl)v&iBbWw^ItSuuuPyxI6ZXugyUONXoR;Q<#6#uAos z4$J!D2$$F?NiH#Znd@Aq?6}39sjH#{x~SSULcabfCWwM>)L`|T_{L(kB13J=U!O`4 z%s>`1;>gV41YF6a#ntn7#`m`N)N0RxMimSNU1&oe8qtYX^r9KvXh#HBaP6@3H7hr<7#3b8`;TL_OhAnXk(Y^yEWw1uTNwn%`W=4Vv|d>n{B;klV#Z5 z9`vQeU2b!q8{O$<_P5myA2iR`)M#cf5!+pFd*2)1`PTQo`Q2}S{~O=|7x=&lUT}jS z9N`H+tSc4X=o4Mr;S6v1c_e=7hx0q!6aLru#yReui-*M!CCf%UGrcfhulnPU?sNMf z{vDIIe2ORct;}CWb8qj&+GI(&qgQ^kjCUO9K^MBB7FBI6b^7Jy-g%=}zI3A{{ZtNq zkJNMH^gu(M;x;dC&yDu;J^$S6Z3(q>Z7S@V4jt_q*NQA1LGMQ2H|=5J`kvwbO05g6 z*>x}V+`BDZaEJXVes>Ak0ht@Z#~tzO4))|uDfhw;e!7ttd?1y?_k1G{)Q>l`-g6^$ zz&mc)82r3b06jj;TYlMO|2yhQKY7Y8tL%%p$>hYK%Ab z5Bi5>O(B-`qYTTpO-Wh{^N62i`>2E8^9l+wk3Zfk{rg|cxQx1?I%z+4|2O#Q~8}d|bjosBjMd z;a3oXr1s@MuxbKjLLylHq#|G~e$qri^lxbj?-KIRP0r%?EMgFyVlp1F5A6_;e!>J4 zu>pkw4$TlOI-(9AkOLzt=d_Tfio+$QCO#&?DOAQOI;fUh;<$8VB%UG?6VWNy2c*)( zFES7Zt1u2-LKR)2BpQ*=!l+dMsi-y)5f!nn#9d_qZ z2p>Jk5Vr@A;t?e1u@u?pCtg4z1b_}8A^$SzALk<_QDA0}}X<>ln)pBErcaFQaihEDBkY2#nG!N^x0Ct1AJ?BssAo zd$0Slkt)4${2`LvRv{qE(Y^7gAYw=W+Gx!F%M`1?Lv%dM#cMqj>Ze zsV_XKCQ45x3)2!yb7Dlr2rZDb=aO&mR>2OzLySz00-dNrNpU)vMKiGkY&MimkMKf? z{&1^o1+9WqM9E7-RmDWDCPq{AIipiCGtW@H4^K02MisP0s|F2m)Kby0JD(Io8+A(w zm1BYg8zG`Xw8k3e1W%n}DnF_>z4LUI2W{-LQSp;c!c;{Av{S2(cgUn08}c@fOGjOX zJ{EOBK}}5`R83puE4{CHnr|H`uTHgvSACB|pVUM5LUQnDQ2Ueec9l0zCF6vZ`o45e zS=7`Sk^#JIB0P#xJyX>%Tya(3 z^+O&rF=JJm;PP30^HxD_I3Y8TM)Qa=D%1ccSk8~CZiiLcrRQ!GBIx_GZ~tX!*=t=d>#K(?>_v znvSWzG>IQOX=DS-OeOM5_M?+1wekSzp{_}yoRlmrs+(HDUTuPE=L2eGm1Ag?KRq#? z_Jdi#7NdqyQ;qUyd-RU>ksww=aGq8Ms!vCLDGw@1W1r$zSZODT?v|LPYsG1mS}79e zmisso0#8F^>9+dz)@u8<`|e9eZE9dO!M`T=7Vm<5^}MY3paBujW%cllt!mj zQESykf7Vg0bZB$8RC-bUfTI3Ta&vbxCuoZz8nj6qG+JLoFat45kT?Dd8IvH0S7OO_ zC2sL625}A_WT+O_S&`OU3)9+UlNr^iauu^ce^I3l)DasL5+BrMinmEh@F~Pr7=vpf zs_GW;0=CA=e%H}_&-d|0^l`BfE5A=3kkVqOIVUu?{x(Y_Y5tACt2CPHIjiYlQkKX+4YmV zXdYX3?>ae@RgII8IPGROm0vlONBL-~jod6vmSGvyR=JYVE|GEBmr3}RPvu0i_>@`s zmx)c6?GhZ1nVFl}nV%V&qgk4#nVPHFny(p~vss(BnVVlZn7bLA(e0aU7w}NodPaF? z4cXw#Ih@a#or$ZL5$&DZSq;aTlFQkc0}Y*JcZ3ISp6Pja|GA6YSf2A4pfA;)SM+rS zI#KqSl@r?B82X^?tt^?&pb?Kp#4wOsH(4*(MUky%{xc1tZ8uy+x@JFbq{Z!@Q+lEo zjiup3q7g2mZ?|;=Iaw*Vb(3vZclqmL8g@(CmQQ;4UYglf+NWFk(1^M@c{-vY)sZ8D zMkeqAEh5`O)K=(#6PT(?Dzk`*fC2rrdDUc)huW#jIw9qfhcQ@@aW-e?)`Q1zddGE< zQQD0i*?)0bSP9s!JvuGpv`*n;u(sU`JT1Wun#+*_xi476tMG}pb1&7f6%V= z8XN~ZvK5+#;~A3Q+OrW`omrQI>6)fB8~cdSRtj?xkI^uiv==8(FmK}$bIuc8`+qAL zwR0O$8I^7^*l5?9x4{y%w{d2_u`M$jkwM%3vTyLId6BVk_EgPPk%#-PH(R(1Td?~% zxoG9pH@@G{yDl!>cH3O8-i9(hV5`!g?}G`L&1zv0`yKN>PewuRaHugCkWffmEP z_FQ-R!`u2~JA8FJ9CulD!b6-zDVVpX8^s@)yBqbfaT;G)RV_t$kXhHU4;#cEyIHLi zzmxaH`x?jnm%~%mW*0fgV|;B#yvI!M*(#aqKExnPx?QJXwyr}t6$ku?Z-rVX)F z%QH1Pv@h|xx23zrFSsPTTZA{-!qfixke58mb2_g5y2NqYIm`7_zue9NUC(LOn7y1i zqkG3CyE-8pxY=B;)wRwY9bn<|K9jf4GuhB<`jLNHp&vcPuQN2GoX786zoXkZ|BTL; zn#()A%_&^~0MtLmJWq!BI57py%bZf*yvPY%&UL*;1)aEETrFE1##=nk8=YGn{l_^y zje$EpZmRy9j*Ni^{Cy=ZzWd;9B5!?a2))P(;Phe65;dP z<ab=Uu;5UgKB3f+6?FIT+h>oZ@-i+;vvk`&!#C+Rn}Xq2nIj zT^W(N{AOkOM0@_qnVi|78|))p;Ul%!3z^90zTBDIHbK48CEb#K0?}b0fgrg-qQ#385gsJiuwqAq88tqX7}4X#k{nNd1lbXzOOzm4 zo>ch~X2_ZrM|xa|@}^3fJ4xbnN%JN}n;0DmB{@@}PL4x;N)#IPsZ6IzQ)Y#_6X({e zTDyA1Dwb$alN(1GN>;7yzqZ|)K>hcrt=(!(3f6rK*V$Wi2L$G+)r|Cs8uUk7GVm&dlo6SfPa@?X~Q))+jJ7bXIXkAQs<$GBKD>th7p>#9E#j&r=f|}(HLBatZi50 zh%bVN-ELx~=iPIw8Cjf;AHC>YiaW9hWt1P57@d+*o;YKc-yP+nj6i-V=9pxb*&c>w zrm6nsnrybY-H~p_Stgug(pjRMc;>0+o_zM{=bwNED(Ijc5^89gb{?weqKL-GXq<_D z3Fmu{R%+>`m}aW!rksL_W~YQk3hJnWib^VUj@B6?ho`pc>Z`EEDr=jj&bnr;w&v<1 zuCk8C=A=C8D(tYt7HjOW$R?}ovdlK??6c5DEA6z@R%`9G*k-Hkw%m5h<|S?AA z+eNh2+l4)J(Oh@^bwMx3JhMeiqpWk+UQZqJ-FWAXEUSGYY(jwHLUak>a4`&Z*MLow z7|--%nouzCowCmsZ<`zPiM6iK8quuaa z@RFUCP=wXkAWo__zr&>rTnro`+-gw`7LsX&IEkPL`NupS%Fu*5te_H?$V5GzM^Go^ zq3-5qw!#&$buWn`-9pGN``BQISj31B4=6t}er_!}B%(#S*p4rXiH&X?q5&;ZMVT3J zjOj~a6Zgo+KJLmze~O^&PIpC~@y~`s!Q)U?1{W1f50N!dB!6{jew@gh4jhYe^3vEji_l&>8AQzLHC7X8^WhD4Ji4%2}$)2^#_ji0C0SeGsMHM44yNeuk5hQ8P#PD4{xxRzsudGp0wG z7gBT9bEY6QkWDi>y*ymep%9IWNjvz`o(A-&NCla6Najw~@y~MIa7J5b$2$Efu4}h^ z3HA(GIl5VupEHc-;bLZ&cVHxS$RiwFvZ__JM)V?R)r&)QMPDct;s$oSpkSvBOBs#31mO( zpMuB-X_yVpX&WnAvP!lfhs_#+>YCY?jP|vB&8=>CtFO)S_P4+du5jbz+u<7bxX4ZJ zJC)1a<~mom#eJ@Hr%T=HTKBrx&8~L0%iZpJ_q&{8WkAJCF7j5&yr)7hc%8H<_0r3| zrQ&9Ji!?I7T2Q`?!k}^XlqmRi%D?M1N~Qn|F9Q3?z|Mk@lU$6A6iv^<>TJ~4T}O`g+}J+{;?r;RUl zn}{ZhHjpZgjUcb%%h#C0lb&=4M@I&Zsj##nF15r;c0QAZl2f57EhxvoL2`FewbUP3 z=QDfej+0nC<2*0ADJY`z$UFt-@eIdKRCywnYaC@1*LO=c>Jpw8teZl=S?^y*kkE2@Q=>{>>u3Q5x0H=25iI{S)alTRo(y_LAn^W7@=< zLKj>%rKoi83n|z&>((~9Ej?*-%SOmGI&_`EeI0}2xk<>*%EEw?yzVt`o&pHpK*)z5 zmQ38w5Z5=92OgP_Yg*Y}GC74H{w5l~J9zyT&$Xqj@|hFl*eplR&GWr;oAcz|tPc8} zYfhwk3tcoUhq;iv-E*5?=tqQZI(o89^`pZZ(mxOMoykJ;Y7c!%IWKvw8lC6|3mw0G zo=%@FM50&^+UuQGd%ipJafNu$lF3M1#(C%hvLvMLGjFqRQZ8zxH;L;LHoDTs?s9np ziQxzbySLju_pggO>6z{};u&53^<)#>Ok`iWkZ^VEwI4p)C&s$fS1v~eVWPk2xK?&HtLyd{`+ z6tthz^4Z&@>_h62?0qHh?0|>sNUHqq!w&GKSDn<{X65bK?`oPC-TdEYd-gB=b{Nsy z{^ACIf%j;V(taS~b`8gU={F)cw|dida9(n9RCXk$$9k={Z~caR2Qf&n(-5BINHXCt z;l^U(7kAcodOf#(y7y=p$avn@Zz!m40=Q}|LV0gzd6(CKqsML+8hCtw zwGqt}51s*dPX~Kjcy?ome&CmTlxBS{Xn!z>c$imiRVEeqM}Ooed^*T`JP3$r(r$`( zhggVchA1Y!_j@R)f_f%+ttW|h=x>dvf|W@fGIJQRL5rB*MDH~jNulPKxu+q_!)aaIUwOw3bGbp zwpLSzR>(MYhcS6C*^?3}kH_dDMfiY`xOpTec%~+W1ecE9M}+^Ek~Mjhv=WxP#~Tm9xf<wjL1cv0fsl|87u4QM`xLgNY$R{`7!e8D)q@k!x@ho)`#<%O81#w{0Ur&DSXHE zpZ$5D2%4Y@x}Xf&pbq+=3wkdQI-wL=p@Jfz7Mh_Nx}j=`Xwt`qAvQP-E>#R(xL$bSZYF}Fq)(O>2Mj8AexjiW9C@@&^9<@Q-OtAWJ7HJ zVOBOxGd32%Sfp7%KN>$B7(Z5nHJGKOkV8dHnp!xarJoa|7hz^-^EkVsqi70H0mmnr zgF6MmYoug2QIkUE#5&*vrt>ottkYFpGmC91H}q3%W;8lgil=x*H*Dn+hWe&zrAB+| zI8&6Sk~&_sNl@+c564pw6~{cz13l7XTGnGX=c6_1Q&_cCqumf%LrOrH$`sp-?HcEzi#YFBeKsmPj5*U6?vWTesbL3!t_nZ-`+ z1Wn3k7b?VeEks*L6hqQVOelp#ID|>o1Vm;ML3d|N(RxKbltnh0tniAT*y#QzS`?`e zQAhmqOTc8Uqcl4l1V><$sKz=JwHi;yq^lSKu;3F+*D9!QiZgNaOvf6p6uV0E8lw}- zfezcShZHpeJFsN(fsf>|`#P}}QLtweszX%}BI~RAG^c7aKP|hm6D72sTDmDOaRKS5)OyaD`Qg>sCT_s9p0_l2owOKvwm0R=C@$ zU9-DBl2`I{yjQ8ax1_wR8@&_bx&ivNH36meQCP8+Slo)eUdkY@Ra&ZbSwecGtc9?X zi&EmyS&^lx7txvbO1@+Qzn_U(g*BR$g%R{Cz5Lt1ixOS_8^8h_F#tTk27JK%Qosnj zzzhs83f#aD9KjMi!4zD<7JR`NoWaXtpc>r4x>CJK$-xa4o_PYo)tO)>%x>@*Et5Gb zE$qR6lESCfI!a7XCEa9oX;$MhKA12e1Iejgy78n%TCyrJY34CJjs_yZ6RFGx~a>% zjLolEjpdxmh%9ic*@Hl58(FuMLr9zVcy0w<(B|Bon^~!Anb2j~kW{>vn24KOH-?hg zikG~UG--n&Oo@6N7U;;6FlWm$=aF6V&mB#UU0l(Imy|yyjf)9#(K*asS<{5Lj6f~Y zCx~+1325AW$Hg~yYN=zie0?#f$PK+|+vt9NnVKW*)K^`O|2Je4jcp};V!%m)Olg^o zJk-SKc_)2sBiV{Et)KX4g=lP>Wew2MiPnu5VK{BqG98p(?Z{QA*X)6_>Sux&O~cCk z#McOkCW(r$Ie@7aiM$wxiME^s=*&ue+5P@!g`T{TU`*K5_Qy~sb1;3Guol;>_?T^& zo%zSk3f^;2)mHF4LE!wTz+tV4HdJNZY@|Vhqgv0%8 zZWhb6t(sGv+Lg@F$a#c{eUcQ&&&(XvZ%x{8>D{$G%HjRbiI~~O&DD^3CnR`sXFY!T ztcu{>-lzTBsLjr}E!@Cu-t{fpzO89;8PIqujbFTq$DPD&(ocSeLN+|eJjvuj|3j# z=e^sSxr&wg;k`%PfxO``?%;cj;Qmb4X0dU}y9kw%9e9-e9WPFikqmp;n1$Mib|jg@ zTdmpKE#f%{iA1@J4DR5xvMStEoK>D*piP}W-qJt4&*bdm)j8&39b?&z(tI4rAP#{w zj?^|nmuU&-B`MxrP2*EukrAod+J=tEM&wPY(QGN^MJZtV2+tGQ(4{5p{@3;$?r+?d=Ln8jvf0VL)c&mE-k$F6*y6OU&O&au)t=knY4AVz$_a1S^M2P^R&eev=uR2L%x2-Xy&%+k z)M3pb6u<8BnCjozdEuVy5^vO?UEiV{UxLiWH@{;kp7Sv5#6qm|{66dG;`4+#&<5<$ zKR;zW-|Fc?^v-GY1DwT4Utv&B@Z93`Ojz{+9K=)K^d(o*xyU-)Oe9^u_MprEk^#6`Y-3Eja4>$%^W~p5e1kux0dbw~zZcX~rRT#&n|f zuoC>jKdAyhq=OY0nyRwMg#B-m5QC&^BXa!S-wqr^LxzB*j#UxMzZqhhyNiE|bHAk* zQU2db*yxWn>`Hi? zBPT#=SuOr(#8pa_GM$+fW36f%wSEN~R_s`^WzC*Nn^x^wwr$+iJyGc(O8&xCUBBL4gvXhGe=d*?qzBug!}&Ke7>8yPUFDz&i)G~28=uKqE{htrZ#F0;pK3<^gg z${Om0i0FVsr@*Rd5+g`P@2)UQrE@5D1tJ@@3ZPxnj{ zU?@79yDqTllx(lTmBbaS79&ck)uqN;)lX@s zrM6mYuf;Z7xB#^2qc{mPu{uZpsY$6gD{@fRMrrD{D>_@OD6mQ!^E6Pd(vuM^{%|W2 zccx`8D%YquXJiy!dyo3}A9-Ijs4oH+qE$v)o7)J`Psj}M;+MT z<(ok1%CJBcwqUsg`+poe8CzWoXgT9Dx!znI$-Y2o5_fn-JZ)4qaf)PmlaSpKMnAbZ&w&qwU<4&NpN#y29u}cPE4nhW zs2@M7FT34@_i|VF1fljU90YEpwV+9`(3KKJKkL66uCBTyp*>0{vrP*%6o^3#6ze z$^?ZHLF7*q$(N+aBa4X71BwGwJSv)4bs zQw?UgL@%jIi4-B0K37@{bH4mXC#8Zm03vZFUkZ(*B59O24NrXvluRv^g3F66Q;wbD zO6vN!O>TD6oA#lEPyUe;KeXgf6^w`UA`(uQkkg!fDP>k3DG_$ssGPwmNIZBlkZinw zMl}qHItRj&WPk)HYgAng|B=qvl#)30bZ3DQ+DnRLO_QOjfCm53&&cR9Y~Q13k`TwJ zJZP{hFOVPfuK5*6^yFhc9H>jXG8Hx|3!37{s7pAS75-01vl`hj!ddY6O`;ans7IyG z#N?vXq>jx#Om&aJCWq9tB#f$8#cEcynkT2urK|P%YEuO&AE|CtEmk#aTGhH%wx$KD zZ+UBc;tHR+)+K9WZ7cEYmRG*^)vtdAY@g5?SRoSDu!lu#Vimhs#x~ZmkA-YxB|BNl zR@Sl)^q(;=OS8IeR(YNEZ1O-G+N$n#EtyTARWwV$m6F!0uB=^HO*K`w$`-D$ee7tp zrQ4Rt*0yc=tvrL9t>Hd!uxUYUYm~CuIWpI^Y@ujuY3sh}Qn$LdZ6#!Ri>>W)x4Oku z3wW!DSD1;{dB?3wufUS2=h}rh=AA8hVFTar{?fO-T(z&Ye0yED4IFwWdP0(B zOnj|ek*xp>R;MobW!e1$tX2+x=ZeeRVkeK-k+?OpuEso;kS6KL zZC*2;(cI)Y>)Fj1esiAdJl+PwdC(ITXqsW%VnG`k&V-h8ba5Q!J|kJuaegnKFYV_X z$5q6frf{AytQ5+YNzrgk!& z$NcI#|C!A(2K9m4JZVMa7S<^q_M@L&X-h|U+IO~YqAv~WO>djpKGwGMy6tU8qgv9> zhIYBJ4Hj-k+uEyMH<_y~-)2jD-E$tds9BwE7~^~2$M#!xGu_a!(NRMjs{yykiac+m+Q>XwUp=7Iih z)`4DiJTqF}BsV#EDedyBow@$rNe?>Ob^dhkx?Je$qS1>f;;L6->?nXLE0R8h7`j&k z%wYd>v!%}Fs*k+Ua5uZ#%f92F^L+91_W8$Ij$^Dle&|16`Ha`T^|xoZyMjly)E7N? zaNoSups%gw*)Dn2)BDt%Cw+unk9froKJ2XyebgPVd&&n}-j(-#P$jPG>qJD%;SFFNM! zW-5fuzkcnTnf#>3HgDq{HeJ(YrBl1HheAIaN!%e{(wXT0rs3y$6IqzOlZ` zi#3qi98=nzHp?0(+y1+WSOp8h6uIj>F(W?PTe=w2zt%)?MAySV;CzwL`WMU$@H zo58S)w-)R^_j|p2D>eB$K~r0^x5~k&TR`svzXoJK{4=uG6TTuGzxFG@@LM(n#J(bY zKU6Ed|BFA>1Hk`c!Rw2NbHLq0Ju9@q@@qWo>OS4eLOoQ%)C)aN3oZc^Lr8-`enUj~Lc$@VI@rTHKQy|j z1HPuS!t6V};=;s~Q^GC`w;B|!Fr2(Gv_Sf)wf=!3G-SR5Tf;M}j>7;bNpZXCV@29i zwjlJlFBC?@{-do4oJ2&EK|;(!|BFIq3_jqZz)DoHr;EhY8@pvx#yiYLB)q>xd^~EL zz4Y6<`-?+Bn?e|*!T@AIo4N7@~D>}ey#zB-qXq?D~#JK?M#b|8DjC8_@=(?WM zIMWl!Y&%4wL&XvN#INJSIt0Gad#{g7M8t^6->b)zRK*Fq$Ub~XP{cuxG{LkZv`zFn z2UNOp{49kOHKn+v##p9yFff1=#d@I#ladZw5W%9{MxazT6lB0^R5vZ0H()9@Z+ym{ z>_bTmOPN#0{(nnL`olv|8$p>YwN%?gvy4Xt>_G#B$-F!~0qn^{Ji?_5OmnMAbWBIi z>o;<{OCw}8Nc6$!^0(C^E~cCqeM*Rp@+W#Rsct~2sYDm}>A5LsB~S2)Zpe@i+(#Ac z%95PJfE+-;WJ|W2O#0Kvcf3R>+`eKA#n0z>zsn5VEQ2j*E1no+}(YkBlO*=Wa0VUA(bTtZ9 z&P-jFc=){u;&Cm}8(GV5U5hc+QHPI7A(X=|y6m7|~NG|4CQA1?W8Ku$p#IykA z(7%!@PLzljWefK5#I>+Q3oX4;tkEN7(UmmL`|!}d+R@XR#UE|02pmR>ln>sFQ6$w; z(qhLx$x=Q-vHSqi>l9K6#g8xD(ljM38becQoGNEpt1!inG2KZMSG%Lp?k8dz9(zSx4c)c&Ss5Z2 z!Vi2L%%PmI6Wg?cTfC85K}E7Q{M?QW-A^mjk1X8<&C{VANB{Fx)`i|HeOa-@E8p5( z(tt4&!d=!%5d_>_vy!U16{SHbr19ch#K^_hcqC-}#v$cC*j3EsrN%8}LamM7`>ogM ztzPRS$=lHt9MU0*;30v?B8oU7g9Q^C7#}rqvZ~mTKp9-2l?;5;{znkv41csa?NJ?q z1Q1~0*pFpNk_<}HMav@XMEE_zVDrYATv_~eVK1e&uLVzRTU$;t3QrP^KZ=Mz0tw21 z)*zw?=&M%eBC0E!rs0UnsncN9X@zP<2dzvKa~;nnRm&1y*Vk29O-sgjwci)^;v(BO z8NOn5s$qd5D1&MTgn}p^xTop()J=scis&i504h_}Or6q_;V7w}$YTOq;uJ&8u2@Z3 zebnE))f=?U$23yFEI#r3!RP(rNS@FxmgGvdS@9Vj_WG39 z*jZC9=!ll+7W*Bm;qqT7~t4K9KHjI9NM8Cnx2CV8O~tf zp{DAprbl$n)`6*^Yn}+Kwxx=}4(oUmt0wERX43vMo+*UVV}`|MnK~#t>t>*UDYK^Q zy2g|9wd=grYdui}3JE5O+Uvj;Y-#bI2{*yh@a z>)C$o-d1LIPUmWFXFCJ#@r5L(glCBM?d3jYd&cJ=(z|_ji03wue;%JPQEukeZcjdF zgFTdzjuVE)*@xcl@($*T_9Sh^Xkf9KjV_6fHt+bpWs%kklHTe;IcfK1m6ew7{*GRl zRy~g1|2A+}*6GRRX`QAKpg!;iU;gEy7GS5Qp`@OOOIYdv7J#GfY&4Q;wTAEz z$K-RCiO5}8t|swp^%mL<>%tgo5r^?grqrH5V-TN+nMRD=h9R8W?YWNeA3tTh2J#_y z<-UH6^d<5n7v{q5A|-cn*p?~Ae)1`&@+!CTE64II*YYjr@-FxCF9-857xUg;(bgXG zGta9sw_G%5^S-(^yPRSwZu2>xEciQDy3B4m*Yh=n+2%CKJqPsX`dXiJME(x+Ls!x5 zJiGWs^hU39MF-qabo5Do^h`v*Kd1CeXRJXF$G_C{PxmVpK1yUONiGESQxB~Ci_jdD zb5wVAs!CU0RZ>HL^;);}TgUZW{@3+g=k;Fq^Ejb-()xN0xxib5?k~5b_0Ik zhs>_zIPiyO&#Gpp_6IrxWJe2Q*Y<5P^Dou{e#n=I2zO{li*O(JJF#|i7mF!y_IGD@ zyFm9narbw>_L-6Pd$*Q(w~uv)plna}v*7lCM~gVf_G2f5IFOldzm_;Sc7>@lc}%y zwz7H%GWcWn0y5C~e*k*^uP1x2CxeT~_Olm@o2L(BUxSMP`-nJp+e-VHDEng%d$GU! zvRC_oIQXw8_<`8_ydR6X_l%&Ih&UMguP6M7sQZ~%e1vy=FL-;IaQHJw{J#f#h0pdi zppnbJ2%bm$vG4;C_<#(!2%_JBS26vfcYTg8{SR3Bh!}y@zX(1Mfr+np4Je7)ANQfx zfPo-^ipKzqsDN=Fex-*GnRj}smkZ{Xdgs3n=)ZdDC#tDOpn~^@kI$pOCwt6~{Jrn{ ze{lHG{|dIBkDQ-;$rpStkgf9Xd70SzV;_j{zk9WZ|L>QG`S*gdFno#th&W!n#QA5? zAen&*2c9`-P~iT+f({Wb^g`yKz>5?AogsLzV?{3wGYTjv;G;*3A`?p7=<=T*5g$4* zI2b6zhYb^8%KYH-=ZBgxbM8DiLg&FeBY^(Q@Q(ydmoc5*4EoaHO${TWUhV32qZNKd zuWI4f-H^Nw_(r5t?PBI-Mnw->h0_IZ`!a#0OJL0`0!PbXC%g1vu5KO zFOOeF?$~f+oP-wRbaZ3TqJWNT1h^UK`E$jR4hIUzJdjMwf2HG;JaeYD7lQ&=o9sQY zvdE3ROS+z{TR`N|st>-VO?u$u-ClYZ|JVEaN#@guM_m3-vm29*jT;1h`5<Lqi?t&{0JxH4_F07?cMIPLW{M zMmGU?A%a~gr9lE))r8nYZkUCc6#Vd$4-sY2^-zi`Lg52O{)hz@KZ9*#;)@tzVWW&R z8Z^a?2l3^QU~$BFqLDc&sUnmA5D8_G6UFf(lrtVgBwI(~*dsCc&I^1F4<$D zY@+Fq8dR#NqeF^9`p=a>E_zT|nnKA|rF1e{Vw4A^TBoBy;z)#|FHU*tL~6#^CW8=1c1j@wYY=v}9tySMcg*=fVp*X}=+U5Btk zkrlLGTQO-Mf(8;Ql|h3O1+rj*B6JV}SO0YU6j3jI3?Rw~213(=BX$K914@-lVx)Xp zDJqpOy210Nr2e_{Jug|IGp42vJ!F;tco``_M)2HYSW@@ArKW5dl&PtJGTmjXNQND# zshs}9wWeN6$>?${L%7c(1pb6NF0fFdA2IOWC4gI5oI6DZOOqUNDT}efB zfnC&uRy6qa%^|_sQP^O(LRVdCZD0daSXRVBe^AX=L+l)vb|yp~V(tEiM$4g%dRUej zg33lv&{L^&G$k$Rz($8d;n=(s2OTg<3P#XV7ppWSA8_p+2f)h~B@_oDQPFf@f}s@o zQAfndNRD(g-4bE$~D_p2i7saNf9OpeG zV947@{Qy z_I1TFs!=C?&J#?u81RB7(+LAd=s<%^@yiJT86`|)qT9(h{s%cMinjS$aHaGH7Ya>-@6UEj!l!8g4 zRYclLZKy}4K|ySjbQ(!f>IAtUa&3b#k^iD6q!Fn{Oa&WDHI~&mFk+OI!ol8GY-c4{ekUaj3ywo> z37Y3jrg+%#B`&YyN_nl5n0+l*VyTB7fhdP~`bu6!qEjusT8nzsWR_+%QxR_Bl6Tos zi868X8kHDlp6D~@aUf!nj?e}*3riF@X?u`wHP5f~{uBWQl(K;e0Qa6+`&ftgDFUjH ztR@}Hirg0Zfs6@v0xw%ia7W-2gR*QW9opbSZ-$o5K|u%q&;m(Qn6y3KFo;SUi;1Y1 zsm`g_scJQ8*aV{%vffu~Cxxp_p9sXv73ri%^&5WaD?6r+$|aRDq?B}KBCjcxEie=u zO#%7dCYg$=O}p@14+*9NAJS~@Ra}O@qTkzP>5^#xb?;d3UPQnQmmU zdF5+h{Yo!`h{l%VQzkt7`r48p_Fao59{QZ zj&?ESJZCSb(-CqO^IYOvEs=$sW#hpXeF+)77)CDLxUeTHF|iQb7rFIa6s_Ont*!p_pk} zZ0e~uvey0vIK*8=3n{V2V;|NUQKigWQ4CzeT&H+(L4^^OoFKvzLy1#)lhA~rwi9B5 z*w=R3aHBqKBN_{sRmWa&>aacQvDR2o{7^RBjt#0Mof~i3#&3;F8CNHURn>Mi@_CE} zWXx6sCHa=0v$zFI!>0MJ)w1kqLc>jdNrtzPJ+1$k61Dc71Jq>ELs;z~F0%?7@x?`xt8+3q*HV!-YUwQYM>-+8c*X-C8 zVvoJpX1|KCb;kCwW!=H6q~b_@peJxYTQ*CpaHqB{V$-4BE7TUeB)iSlZ<7_=gI6(s z?XIFd`hC}ry!(we3U6FDb?z@p^;7RnOX#5G;>!#4WFo`n#SS*fyaYL9n~5GD2D9wmjI zslf#Z>R95r!~`-@iRn}cF5p|)n*V_nl3-xqY2bPh9_P(luj!xM%#r8?*=Aq_n3Ncnzr?;Mwh<5;@X8z#`PhBIhU`U6tY^oucM-QjQ^#1+rqIn2~vf71D%-*NmDA z?FqDb;IysCrRYF3KHe`bV=f9~w*AT@Wn&6r1|fx2mY845S*fH%4#6NMfzc8W3z z&F6gLx)}jCZWWP$V=js#I<8&kC0HUofrO+{5DMXF37<4kRx4qTAHIfQA=$t|mVLOH z?rD>lSx0`f2WP|v%@qVg_L%id;rY-{7*Y?QEkwSV;qR3sYP{C4NQ5?p#6^VU?l|OV zF-*Sn3-CSuPZ zX_edf$%|}Gvt86VZe{){jeKbe6r5B7>R?N41X!XVd9~ety=76orP>^0NVQ_@e5I-2 z$*^@Gg?%8Kpe5Xm4P6!<)A(hU%*s{RWnmu9VLFbfP##zgQs@MrUS4Km5+++3UO>{D zIYLQ3c;#DghDs99#a$W9od?4;L_`W)Va1+FRGE_zi+3Q0W;oAjedP5BVr5*UP?p3= zp5dEW#QfmW@ll-dAty}M933tM8RU+j6-;@EmcdYuHeDy0nWjRR*-c(2Aoi6YUIn3T z1VH}vL{cuA$28?Z@PP>6#7u0!1^gU>Jcy!w(5HpaRdk|Z*yG#)$rV8rmdHpXHHirN z=R*u=gN5cCO_t)h^`8PhN!3<3YXAm3$`WM z;n>yy=o{JS2~8=LR;iVG#d2P$mToDRcIlS(otNf{4TdS1mgy*sX_XQinX0LkvZ6K)3aXj9X_q3ZVZ^~1fli!uss5qX zg`#pPBDi6Eh7s-}L0o^GnAe(If00j4JEsDi4gx`n9P>7;7us`>?k^`f7qs$R6} zm6Dq3oGPwz2aK3*J}Vu-Lu6X&wY@ zDG2PeUP8x~!oM{v$(F3io-E3?McajGzShOco@&63f_F|U9dN8Dq%6+n{;baS=~{|w z&qAn~zAU)`2F2Qi&{pZsx&sN zilo5mjm}Adg5?)^$|d!vo7igU6l377o8EF@pA5~*@1T2`vttf14DLe+qjzY1}fhB~j!MX${h(gGU!oeN{$A+x$ zPJ|)|Z^ss|L%3}mEN{pT>_05+$kr|PW-qle&c$Y~;ryEGh>&Cch9>NKCh6R&*zk=w zjxXqZFD+4y*|0CI_@q3`<| z@Y=La0KabJR*c*xNGUKc(_+H#@)PoIutO|u2YakR9B&7YfVNIF7z?pifb8|Ya6y3V&GxZNU~&mntyfsHLj>&n z*zxmr?De_?H*YdImvg56EVD6iF0xxui7hj~#Nln8HqsE|nHYfu+d+D5&!)5e_8r&( z-i*z&tFZGI?ejf{-5T%LuBj@8wR9vt@fb3&Xvq1ze^1kgsps>Lja{X0s zQiO2wjxs{;a(+Fh4t6K69;{`u^|+t}%(xF#t#IxXJR8F0i*FN;u=7l$7^&M|DH3#e;6LMKQ1i*qbCyF#^ORYBVr)k4A zYqvJp{!|1itF4jpPrthn4FwwM-nir)6=^4c;7_tM$$aNxjHY4?A~+7IDW@FO;| zl7l{DsSu8WUlcHQBcs@3fvYiKv$2M|w~$zNhS$Y-_gq$UHg`+%WYjFv7K;rC!ti82p%`=-s< zT8;xdxm!YcS@Nr78n8c8i8*W=P zGW*ajc3(7iS8oY3?;Wpg2Akv!olY8jbp;`8ti!X?(ojfXrpx~ zfV5hB1=VIZrKh{PKkKj>M!VzcyC3SKc5BSethB;-RoGg?V>hnHo)SDZDbNSKP_lN^=Y`N0J=PC>9&kc3R6{jnLp!+GUnsr3yoJ-3y_r^h%&UFY zx4qlP#VUBc+*boSI4hO1eR5*y)xSO8_r2fqsv#tUIM~3^|3f3BfZb0i-UEFe)Iv89 z!PNgn<3Il2EB@YBKIX&xB~$}FG(OTp{pG&|<2yd&Gksr7K3->jTHw9vx4yn_emr>o zZTfs~_`xuU!vq)tF#JO`u!Eb}KJG)p?pH(DKhQ9sLjv3a=L^6kBttj6$kQ7SB=kZx z7=$wvzd^+P-2U@^HQ@e1&;chfgF$q|KY$eKD+2X<{aFZr_Rqc7lV(kuH%$u2Q|sTmTJ$bT)F@QIKR?67P5O9L9Ik=Y zs)?H*@TfUpP`jB(1{K|bgBgW>s#dUClYy(Cru_$1D%D|Q33es8Gwas0W}l`_+x9C& zhG1i6q$s#(U%@30do)bc;z_`aBX(?TSTSY4kT2(~jFWR`&!0hu7CoADY15}+BJ^{$ z8c>au{x2Sd+Rn$oZbaNdeRn{BqPOvKi}NA&U%Ujh+Imz@_eD_wbRgB9TkG~vqq}5y z{Rb%-Ux7QJnyYOn8D4~RarZU2S$WXZ5!*YAf0(4-i;Cwj+#C}B>-ZSuvu-iT?sJc^ zmLfwTfUu1JrLK#P$=CMfa3Evd8s+{3}W+3p+4ID<{lS z%PqO=(#tQwoasEC{xN4N$&g9n!x~C$o&o9|eSRC`(V(G|W|5 zZPnFRVU4xEHfwpOm1^WV&?7i$Ez7Os5SnwuVeD+JMPMgONReLB>P7_&6(!=-oeWC! zJL=Ngs8MM-rSY+sl*DqeBA+BxQY`1Y63NRT_0e2+#cfyCdFid!-h1(_NuizS;So*u zc&*Y`HIWro&0_IHF3uvCq^J=KtBHruK_5cP92>my_u54{8uVOoDJvJjP8%kaVfExS z_2Y1ROxfI$-;Ft5B2~@T=9_WOS?5(9;#YuGINnpFf#K{+EZ`3I>ds@?Bw7Ak@^amn zTY`#~db*$u@_5r!L6wPRRCUGlYAy5*WjO7|m|p9CA;o#BpK?z!pq453z3(1Bk{ zaMckqs@IeVyn$phM+SuWCYo5Kjm#98Cwgw8p8hy0aI0!$;{|}* zUY-gF5lGx383Or}bPVDNW~^m{Mi>Ys>_VH>^v!CxQ(;=N;X>f~E;A$R8UQmCyLF9? zJ}etzlAHvx*>SChR6^Sl4ah(#PLYaLTnWEwQZ*|^D1Te5UlhFZtNzP)$||zXp+A+ z@)4KT#924(r3kHHMVJKvPccOzPP<{?T`U5&}lw$o`j+n#b`MzlsAFEur(*) zXKfULqk67Xe{byg6~k5|tlCp7 zTp8=ikSr^L;A{l5!XpENaQ3hUF;rTdQCY`MAh6XKY(YMo7Q^lIdV4YGNKOlt)JjK- zZu->(CaYSnf)#}WiEU`ji7nC&3@x?QX+xnR(|;KCAIGi6YzsnKa}WWX%T;Yj#@8&X z=C&HUEs4Rd2GXY{cdYA0iBJa;Rq*naws5^_BAGG?cWQ?zxVWB*tYX4(_Kjsr6M*|9 zW+INoREyCQR#A?U4YX#9x**B#et+d(z3`oE{PtJ<>LpkG{qLDNjFkbu6C|9h zZTP~g7yAn2tk(-#jLS!o3zOJyIEKoMn_K={zkXg`Nt=`6Qa>|Ghiknu$tl_mRwc1L!||D zdIaqiLL-f+!-?*3hHMZ&*XGl?!Jepp6C6`V4Ar;&2zbzeQi$P&lhlN!pVC82(V`A5 zGG)#{pi|tTzJ;=^p720=ow3jfbI!M>P6q{&?BCus9iniSkH7TzMeL>uREUd zq&Foo)wFha8g0~_yV1G+_O8j@js9Whq1a9h+Oe}89h02MZxU7LTcbQ?k<6LkB|-8) z8qQ~|z9oAJ2em^X{@j0*h~SPhTb&Ldn-Z;JeYNO{0HDU-HR*(;IE|^DF_&spQ#@L^ ziC>85Gz^aS4TK`uP|b6CbDdVz(kN0GNpNmZT=KKv^aW?iul1sp{QS*Kr>%6W-7y!z zXd}IK(VH+%snVh4Cm?auNNfZ5(lK$jcic#T8?oEv#Z(ibcw9AW+yUz>zD#P3>K#49kCe( zaHbk}TXO{RU{{gBKyGQc{`P#?M_xR^B;TE3AuP%=*Rz{f`Eaot-MJd?)1PdBlGaBZ zm5nd_Mvf1tf-E2R1c80vpso8xH-GN%eLmn&|7?f~zvy0(FWSx0P9d*;B3Eb znX+{w?1S`~zMtGNzni1C&p3-6509wtj3)1c6s>=NhPyE6^o|0^sskb9&n-qz>P!!5 z-i^~(5Bs)n+p;g`c#rlhOaqaO0JSgn?xgqF&mi*b?lzDh2+pRiOdyuaSwbuXZEs-6 z&-vU7C1%i>s*m|Nklb?a^|UVsyKe{e&#D^A0{dqC{BQWYVg=D}uh#GHkgx}9aM?=a zk1Wpm?4q{X&hV7}@X=l^C8SWJ+$;d~XaF^k&9qM-4Dj-P=+U}?25RB$kfRaSjS9(U z?An5F9uUG#FY4$41G`QHZ;u2$u<}rFwYbgoa&Hl3uMtP0-&oKHjV=t03u4mnuk-}T zFi}VHk0Tx?x`J>7+wl5`uq{II&FT*cmyi&haF@z&x(dw}(+?K?Z49f66H!7eFsr0q zF=)KZ#&{7V80!3f@fOce4c8D6BhSgCD-N4x4nyPwk^v}Q$^;grPt+nU;EGqs@BuL` zeEQKA zu}&9L0_y&VPVAyFzUb?W&hH>Cu?yMm7~Res(eX?ulD_y42yOAsSYplsk0j=#0*-DN zk8u=%&IL6NB~s5VG|?H$hz+l6*b*mxPHt&DPHZ%SJe;9ALc|$Z(d4{BAyQ5p$xt{1 zQM#Hd9SN%-a|63_QhOLN9|>|DyNxQT%qsCQB}Iah>}#@kt=yyy*c|d5CPyF|;RK{3 za%5mFe{CRVPAbW*41W!4GDka7$0Q|(a%c$VeksQa2PeBSr?|3{eOGR-LK76nfXv&Kafj(rA-&RA0kPwLxL zivA|~$R?SI^u&rcF2QrShdy%3u4F?l5Y8~%Bzg{P?4*mRQgHg95$viVH+6%sJ`gNz zP%EKRI&|>^Jq@B5u>!`frybZa zI)<4Lxf(>B+L4KYZAILIJ&(l(~6`1yE5)H)u%-CQ09PBdkkIU6CVhXh?O)OWn-wj4MosjUb@Z zPo#906yZw!BuhCIHnHYR6IIz14>djX%T}|PMszhZ)GWO5dPFofJ0_Y4H49M`k+_hG zN;Nc2H2_aFRpp3PNA*>0##I$aRyl)KuWD7>u#OZVJ2a{^Vf9z<#a59=SZ#t>>j_tX zl#Dj@FoCsMamHAS2U=%BTCE9LPZW&~)h_JRS-G`az4cqcHC)AYT*k62`qf|lv&3G%L}9Z8 zUsDwZH57Rc7GY5WV6|jfU$QhNmSQ=UCLA_btu11YXJb3IUW$z`9YIt>gJcT{19xJd z_K^?E3r=6NuMCP|Z^BPqvJ=^;mKy0}la>4sh-HmQAxpM2Sdue{wvXcM5T%Qzgb8AQ z>_Cf3MR4{eDw5oMHIyg`Xs;C{7ieioB59A-Cdd|RMfPU03bLXSxQL57FUv&GDqc0J zt&lPsE8?Z*D#3p1uJQ`Sm`!35f~N=r_gd?T8%=}&ZIZCMvn z2?`*+(o5}fb(?LpK+ABt2|ZjF*_H`QYf!tm%TTGbOGU!UHq4-4_atanc})U$T?^{Ur!*%l?@S8BnrKp#u6AT@pmf_b~^ zc_CFKt~XI@kbMJKC0`L8e0RjcQ{|fC%2LcvR!n7G(lw3-0&SGRR_=6B?hPYs!UmTw z3U|jEIKv8p!-gTiHcl(lM>~qBH!lwu!@|+t$G$dqdM1}p&MYKy1tEOQb2wONYZWP! z?0v6h%Ei%X&z8I8us_}`=~Jsosk`OvQtl!QU- zBo3L4)!4D#n2MD+j6c+mjd6`@3z8?f5(lP^4KxHj?b-H9+#>QV4(-&ulOx)!MMUJl zfJM@9v2i!J7BP+ge#UB}WYx9}FVAh4!Hp`gLp!(wg}tqulZzG~&PnSM zJHrju_DnX`?ogSvoy5Zp-{hPz^9}1w*A7$I{=Oq?#}*bVvy6StpL01`_ez>MhM zuKFBkD}cf+@K6}3YdJT9N&q@8B?;(2RX_ukCu)9%uQs=ngvw%-U_XOqz8eAL#2_9IUaf8{yo9=oZPu9MV`f?JZY zmoD!FlCvvSHWM2)74M~~ZbP3gwB7LjuZQ6TIBw)XJ8CxD3Kf&JLpu9t8%MGbuYLEn zI?}b3dP6lCW)t$I0cW^1Cb%)11#??#Mf)PT&F^3`8C)B-aYOSkGGE&?5_hjVe>C$p zuV3!)D?V>q1W_#nqV!-{Vp1=xZ&{h8r*o0>`l?fe(Z(C&NBGpbZ|XXJNC`xdZ{faf zbNmki{X1~988j3zsFg4j8(d4N^fM#8on49O;8~@wI2GT}po`aN$*YW&F{CFIjZeEn zpHP-bBE(VqOB>C(7V#3qp%I1wuI{hIo0zyOcF(F9$2Cr<-tRi4nDG+aF554~br8AR zwmn;M#DmX8VEk((T+DnBu*Sb40YRiV(wiV$ zz(5l00&Q79y8Ldvd`5TcSG8KGnT+D70F{3G#`|*+f&qwQYuL9IDn(7 zS>3@|g6OJd)?0ET0$sxyz5J-}$Z0Xjx0^jdvK5g)!Qr9x3i1O#tk72-yS>rv}puyfxrk&Rx7}f~5rS@!IeFiGWehcZttKPQHa$ zcMPHwO`G}3J$wqi-u{8*-fu$Dzt_|aJ<|R0Vlw8b6umuH8m;UQxv9MaITF-4eGDxI zV^o_NedTO(z1Kk+Br<;CTih<;3ux?c%gKE9jCRo#d9eVp&RU)=eUaB&@c#h5vVnby zMRDedy#oWZ)UobNO4At}9Ab%fBk7#6*bV?L4}LEQ?`iMg%#=zsp< zno-ZNF}v#m{_mdt`W&(A;$(JGDH(FqeicyZ2iqrC$72CW-tB$qFS{k{|XvBh%lkTg$Vr& zt7c9{K}rG%8q8Cx8lfo)#4#6Y!TXN&T4k4Fj7(B1dhs=(aHRupK*_ap|XGZB5CH9W= z1lYgN^YwiJpZ)iCU2eBZ|0X2V_Dhm1o{N2x0!@ z+d(D5s1-^uexxLf-8dr)ew19mIk?H9y+#Ah2(bzeOVHf z)pSWxnrrq1XN+#*l_#E0j+hyoQ&!npP~qA5=AV(F(VESTt%O@3-1qS-;Zqi{*SN9t{Tp?XlAN2y8GrF$+UsGRd{dQ_*sF)Ca&pn}(G zu;YnSL7myW;My?i5ryGzFA11eqpN7tB8c(mw_hs-28bY8!~T=4f~5|pV6p`*>tRw8 zR(N48?r9hlhxHwFUn9K~l+r^G*UGt9t87F8cuUoUIvM5=d_Kg>u5}s5Gf3WM*T;K_mAYWXoVe9dn_? zE|~K_S;x4wtBE#h(Ay=&E$PO$(T$MZ3Ul3C(~uwxH^a@2TUjp?bA4#W*^OOt-a$70 zBjkV=L^aX}Tz!z=cxPvJH7}=qu-1k{mobNY>&>x&tiKL>>_CPmyTta!R;sv9e-I=x zz(q&Ot9#FW`|iIFfBf>#e|YcoZ%;n++27B9{`^l`7-88@cK-VZn#@zY|0!^R3~ZnS zALzRRLhyGIMBe@;=)DSJ@F0a*7zMkh5WhiXgCs1W2~UW^6smBAENr0*UkJk(%5a7> ztf38Wh{GJ}aECnXp$~I+!5<27h(s)+5s!$(B$DesN^GJNp9sY$N^y$N3nCS-h{Y^w zaf@7p9yPuQMrw3%jASgM8PABu_Jt9QEVN=8-w4Mz%5jd=TjLko$V58oagTiLqaP<_ zM==&e5sEvT?OKG8f+eI}iDcvw3udrCN^+8vtmGC0S&&Qq@G4S3f+W5iSrAWt$dQn= zk0nou%2cXSi5=;NO2F5dPUbO)x6=^4T=d9BnsSxA?4>V%IYZ77r%Rd1VCvT zZ<=$S^sJ{n1IIdfF4LXt+9?G z>K72|PJ@VLVPlO-*Pac9n7_lTV(IwU{$19Ie|?B~cm~)l6?U_`%j`l7J1NEn)`g}e zYi8WCzV@MZsk41z+x+D?_tlnpyZseuCAtd4VT7`7p=@ZKLA0d&D7dbRtOKE`I-D&H zdIfYYJu}si-%55>I=rpi;@4Z;VYhy<8!vja3(-%kDnPM0T4_QnkR8Ftb<8a*4514s z+;UfW)m7?9&D*;2PS=OtHJ1FsTRQ-oOa8z~LU0scV+gTSgB{O#&2mInVP_>EWiipD zuQoK0Y|-aN-N?m1sMR|A(7`S4agu=UQ(thF3&Ikn@Oc3fmJ|8FL+MGtKRV>$o~(3< zS^KfV6r*BJl;@hikunbmBTzZA$G5N$g_7YbIw-jyO)eC-K-4As z5YiwE%P2#{OeBRpnN$%Lh>g#b-}I>Mw4}PQ2lYz?LLQ|rmOC#xHcXTt3-&08gG3># z;fz1m?a`7ph@+1Z>Cnpal(-@NkH-{vuDZkDYRa%q8N zIy)U1)_8%9VUTGA+r+d}e%Og?gm+HYTR^78B%)_%6u){k0w1qzLzDrv{Y9|!g zuO6i*#kwu|?Fikr&Z*KMiSV`hQ%@LgKUlHKkWyKcXQ85qhcpU4J}6NZBS z`OhaDL*lwai*vnq9;;6kqZZEG4xhRi6F~^P{X1-AR z0W}ARkW?;yHUYH$E*OoZf;Flk+S?xY+#$bmlCdED9KT(yltGPPJ3ICl75JBM&xa`) z6D_Ov7H%_rw*e7r(GeD*8?>QZ)i;0HmtEeL5kx}=knkM+=Mn&@Djev6lcHcw;z8?& z9s+oNz4LyFWq|%y;Uv-*OBHB+ok4$@u^x^R7!jC(rj~13vU&XmExp%+$v_Yj$Vqwe zfKGvg0d{;qvV$+-7(Pf|vesapm4eV0BqykaYoUUkqJbA<5FH3@L`Ymn0fHhSg2B>+ zR){1dsA<8Yg!^S}W`bQPp><(53?^}W3CI?Dh7u;R3fRGWyP|Tokq2gTFD4Tm2Bc*O zg%S`_BUTY1de|=FGHuxMhZrbh3Q=6;hfMU+CYSgSl*oIS0Zs2WicI7Xeke83Voasj zI+{dm!)Hnz!Ed@ISa>*KhbI~0V<-=?hio$x@vvtGRCRdf8Lzkzoj5GP^Aaw=5W=K; z$v@>2qjEYY`*b=fq05}qlX;Chp@;RfEW~>mlP-9hrW?NxQ1(*(u~94j?YMl z%UBR?I4#Ne8n&2>>zEAnc#n$#kC(-bzG#Qim4)4iPh#kTLqUytV=B4`7uM*6#MF;k zGLhogc>1V}u?3OeMLP)RE+H|6p2!v$atZkc6Bywc2bT=>k%|q6cLqU;4I&_|v=Pjw zQT2l#DY7EwvL7a?XTew%50_CkqEPDhXm(+W4wExFg@taiPNw)Q@!~L!b`U-{aN^Ji z*r+zw^dz~55az~7l+zc^n3QClWl&vFv!)LY!QCB#ySo$Y;O_43?(XjHP6+NU2X~j? z5G*(eaF~2|=1$$I>3V+c+H0*}t9Eto?)MetO&v9fuUq1t@Jgq{Pl(l^yEcX*8?k{+ z&GPGFGqjEu0f%P(w6?$YWENc(lD=T1)d{z(vC0Buj-X)vgvMtHcnbZo;R_ zQUtSQO}~Z)p=b8cCKmAJWcXwaTiDy$gf{sI?QsbPb+MU?@qC*IxA0+pv&ic$%Mtw7 zshg8MamXK^li~1(a9tdFNCN^IF86sT|3!s-#ncV<0CG~2$>S{T4JuF4hxDrs8Ym|i zS3R*!GPBP#&1#KX`6*d|%PavuzW0R`a@mcW&v{pre~sH`i5*KH*VvzjCzU+aAC~^` zPvOuXd{woqB%hot7{}dWNc;7yf(L61f@CrB?6HgB5*kM!M|_w~{`IQOaZM^gZa_pe zXQ4_o*fuODk1t6a0*_u7kuf*1iz~lkGwKb23QxR@`&TJET^VmIH$%??j|umL4JNw@~O+fe4naEK8R^J^q{}VMmi8B z@Ydi6+<;%zKD1RLOLAu2$s#hPeO-3EQ^of-S*W?d1Z9o{j6{Tx+I6jR$NPe*^QvIm z>;hlg9R5-R-&C2J#9Z>qw!z$ax_FjuAGR;C0|fQOe7T$6*%uTwVy;YPx%DIT<9fY#ab?Ss^`#j)xQa3u{brpb;UpG@qNwoMH&cn!7-9;8%V{!^aL) z9G;{Uwqmc8#MvE0O6gSI-)t-h$vA;)5{W@8>5P>hDa^4kLg1H+<}boq;?2GzU`dJO z#8-@#P3+7?b38zT0+kmZHXe3=CqoEEj;(6A$Xwr`hJ~TR*^JnfOLf()JFczZ`RD#R z`C|&7c9pg1wc5#6s@|6;ypy68B-*M}9d9GU!%v@^R?+xnh+M)hS<0>=lAu`YSJB#E zgTg5sPJxzJEeIO=mZK>L)2_Dp?xa0}(yLl5`XP*?y9yS0qB&!<_yfG&N(CISY}JQK z06$35nw^nstfI>k)18n)qQ(kqiTvckXx9pgYYDz7o#KTZQ=z?4Ocs0gSizA^+~>Or z=JbzPdR9&lHkX+HlWd!x0Dh&pN_81-U0$8xWq2J-n7m3ya3vk0H_`2{VpDnIngfh= z2wbcaqHZnXiM$Foo^FFU+9c~9@}6Lq5O-I3?mmWIrnnC6ZsH_}_9d7yv}qiF0f#-8 zghBZbT6sePy*5OG{#~~IHNw6ayZU19zVf&MH2J7m0m6B`no_8aR1>`E%l8USC>SH*7S%kus%{j(L%W_Ei6LC53kFyz?oSxF-XTzAzhp?Q+EN zW?iBs{pPAr$pH8JJJhmD#9#NYcGpIk+LX8uqNNPqH!l)K)=_ne7aw|6)sf~Y>bpDx zOnoZSDYV*`mcFe)rF)aF89l10t#Sg|A9}v|sv|jP?j+M*65>M`rbB&lj9fAi&u*>9 zZ)0;+wbGp<lMq>AxBS)Qc)h~R zA&t2|S^3Mp`1eMQ@LgFNx?vf&Ows38BjEA(#S^2}B{_|l>n($uk(y_$kEXYBX+82o zvi&*yW*U+-+4HV`Y@Gxv7L+dXg?GEPKfd`N5(K2X2u`l6OR}&r=K^6J3H}3 zWnnPPQ2f{!PO9d?%-~D7F13&% z@qebi%kRQBIpPq|m7|1elE^DT$1C($tK1RGS7sWtD`Hl7L;tLZm9AHfkk?F@*35uw z77lAx32QbDYj(414%cf=$m=dl>u$hx4~KQHgms^WbwBXzdH_(U`q@5^X(P-)(G=Gw zJYgf|TAmg@Qonj533)S}GlqzGGs9ui8G13RVKZ-5Dra`H2zg8Sc(Vk!RRNSNbJ(hB z*y2^6WHG6$L*8yq5Ni;^YGT^%NZ8KxDDN=Y?z-L{K;HSMV=)5U8FSc~NZ0{2>`c$@ z%wF%zBkwLU?PjDeEjLJsl+4b%FR>Wxa;)qkweBL`?UF~NfG~A8ktHI3TW_+8Z#k^A zarpO#?fP=;ZDH-za4qqj=$Z5iXnlyBeeC^q+plciyDlJp`VfJdQ%*bFe^TFT6BNFv z?3s02g?CJRTvOIS7CUIc8=% zPK7C+FO$*2mxVIyY|M!qr#?uo1dUp=&P*K3ow#Tr6a|#cfobIb2F$n?s$KIKHbl$7 zWA6(G{-ht1d>g_Hx;Zm2WVY>>=P^8kP)s3j*%j{9m;X@sW+)+x0*aKnP&LfBgFaF3 z70OmzR%$%Y>1QJnkJMu$5bQs(H|)+OA^+7z6Wr0?3sG_ZgoYY*TGBW&?0;U{4-`2# z#KmrA&lKt+Ih=Msn>q#}ww>|mue_Us<${IrLKDw~-mmbfuVWQ6y3*(p9OWK7(1bxh zQxzq$99w8278Mgq3*>J490Uvdk4pkoe&5WB9UiPmIn1wJ2aMa|ds-7cTacd0exo_3 zY?u6%f#^KV#9*n#+%B2?>MD)A;bqAj_#AK(YW-AV-BwTTcmR10g+TMY+SEQDYoHNp zUXgtF>+y5@hb;5YHA@m0`_qMd5!LG(D{T58Qs&P9?j%A!B^zud<`Pey(pQ<&Oq

      p5?~+*_UZ5dPG<7KcHLD_XJaet2^{8d>3S({-wg<^Z{dIV`WU(iyVfXDdMUPNo zF0LwsJG}f_C_nf3uK3L&59|5MU-FeEn*8~vc0c%@b68+KuLUi_`DZc_ga zmD({**yHkaH#j={htiLC)q5q_kb5-c&fA4j;P4df%K32m`-T*3CoRWp9WGHR6b30# zE-Nhr;qf_4gXYd0+r*Xxs_>ti(s?SR2MXJY81HFhN{HYG#fg{0I5}E(T|ri{Xa0It zX>!b-8%8o*aTO^X+@r<@bPfS#Ubx%1-$e*&KfZSjk(nk>rv--ElTCGt)y$$E5T!Mb zB4H{@Vi2;s{If5kgk<9uaL1e`wIQ06&hNcvQw+hQUg)Q%^lfHEV_0==<`#QWD`kh_ zS08s&#fn~{|3v(~!Zc?7gOz5wR84Ihqam4+0trG|urvJ8qj}kTY_Zx)8<<#{Of=k3 z6B9go4K7W{HD#TSVP=o5((vDguUYZWtF95G{S#dn5sM|qNC+N{N%2hRHwksHZN+`SLU&HMWw@ z;I(+q0IE-BZa;aV@SHr3y{KL4aOkj@QO)teS!QcSr_{5`NWn_HjC6e7*yvr0%q_L# zSV^N!K0^7cR0fm5p(2kkfXmi-_m(GGdSTfke>rT)YDQ#-vdNRv2ga*%Jz9BdEP%NI z6Hs*7je%^_zn8aIPi*JbgvW-CI4gqYNl>_dcbhSC*+z+d;qinh6p#;Qxu_=awYTl0J0*`>vM>Z|tOj+c)@skD+ zU*HApJmhGu?EZj}-|CviPSzZ6CP|li7z|BxV{;RRLr7MvFfJCJZRyEym9340Ax?;w z5ENNTrhc;|aryH%HHrF6X!3co8%RMKF}>i&FYekQ;P=p+UmLKOn4*!v%HeKcdLmO> zIP|8UGBL2t36NYJ(v{g#ang_Euwk#Fthvl?B8&UK3cvD~eP^Nm1wnM3&n=#B?G$^b zw{erY*t1Wb#C0lAzN7$||3$%xBJ>Zk59cf{x3 z5q%a>9E9KUG0VYbeLVT2GiL;r8G`~Mf$Zff6f@0JqGUd#*sHbm8=~$^Qkz@V%Dwo& z0lsRIIF=>LuGX}1tW)Gr*&N!_eT?HmG0xqjCS~f-WZ|zw4520Yl+JHS>J+Mh#7`AU zgxJ#?uTtKo4|tK|TLL>a|Lnj=>-27;q%dQrgRB@R<X5ey<#@Hvr^wPMKREGme#cV{}fpyF#%UY{ciB4$mUR_J~t4TX{ z$w8vMpm){M&u7bvso$T*X6Uot!|_I+X68)Gn#&)JdjWS(6I0**@PIxcJpC@cc)7I9 z2J@$7=X9E%f%|WUJ$AIp%t1+Ww<^zZ9z*g|DuI=D9l@Na7SkZ?Ofgp*S@9;aWI9EU z#wiz5CG3KT>g=S(ysEd9nl|i#c+~6psX@fSsMw(IuMi>u!79he=ChX+;*;90IR}vU z7fOt~e=0EvyhEN_P(T?hdx@CJdzk%_u;}kSQjS+KeRsQP0hsW)3z_pK8=Mp#57y=v zYjT6A%wa(c`U~Q{*hwhz7Ft=kZJ$`yWjkf)E`I;|@hVmA=fZA1I^JTEGY#xxFwPeiX7MQ>IlP)HsV<6s`>111Ikz#+>A~^f`-w%&^Yf@Jk0p;+*sRN@H=} zDzD21{#|>3peVF09TA5p&yT_LIMM3Kf$1{Qe7$J6^g+pK_{Z&@2eEQky@5KmffxLN z5k&4t^0uvNz#%5p3RLstHf<6pJJKal!?`*Fj|>Gf_%#@z2`qq)K zzoRzs@P?z3+jr7o5EJ8Q8GSjpHjGj^!*O1c2=-Xg=Jel?Y|;60zO8nnXbHmGbHou~ zN)oY!Q!LSm5%%JjOABC18M?|u$IHaz%fu>_ztzgbhs&U}$Y{>UB)!WdBgv)^$);XS zr0z8J3xE;?Wi#zTM(&`mluX$QV%Z9y94v}FNl+vf$R(#M8yb|+D_cSZDkhRsVVsKM zl&jE}t2Cd=?*&yo%7CTFQr7)`RQAf<#!cn^OGVRVlij)M^Kl!n%g<3a0m4a$PXt zbgHudtVUE-83I%kM6)A}Q4kX*@heoy?3V@H?DOk6G_X!MKqGUd#GNZ$JQ=oKYx)f)lo@!`vS)C(i=YJ9Wm+WU9Nku4+q zENE5AVF(&12F0cEDNtrE@N8eDK(vG9?*n!?xWBn6*j|%vV$ON!R4@4LYT~ zdZOq6k2_^sA+kkTS^e2+M}Y48mLACu-5#|D4hq_e6ZM|UoMEZK{MOR86Gg{a-Khrs zS-~uv7)jKMjhYDN=T=mFQTjCfb)y)O3sW69LFLib%_QuBMGv(#t|1t8z1jfX+$)`8 znJkY3eLdARO`xWOMPD0}-qHuC`&z#*U~@D>8>FE>9bkBVJzXT5bT2xVr$O)DB9~sE z*P)TiZ`b_9t9`_U)9tV=JgYji%dr_C+BB^P1aAELWe_5>9(STM%mmh#v(xQM&{Hwr zdV=ZJbSufz)Iu|mAb_D+EVmB8zs-&!@F4Jkb-dk^>>HpJGW?*oG&GIm|baZcY z2PGORw0BHwbnl^;afo}EvHj*@jDVsKW-@Gj#Qv^kc&A}d*0#kDG$y$@sNnn(W|yu9 zWw<2qlTG|`L?7L>9pF_^{~(JPkzhfhidqBBks@_sY1br;id9oKJ3 z4P-`WSaXlO(NfZjYG5W+ZX9F6FXc$XEN$Y-hy_s`FBv(Y0H!?p963fM*>RQ9k8V)s z@HDEy)|M^AR1ni;_1xoYw9u=ZwDe`iUonep!~ZMsMTN3=h^c`kR5S)&FKk1LBwFg1~)irIL^^RbnsqG@>lsWpzd zVWo7QZfx?#blAeFf#-P?Y)r^txXYH3m2{lG{y~t?*(34EN5R@iJ-b)?UMQ25wa`vf zpOJsRP5!B@p59{8m8@sG4f(xIBC~9X=2Uxz@<6!-c(-+N)BIO{plvm`JaibS1x_kNPHmIr4lp!#Vk6ayj=rDf&1$H6x?)#o-+2uw#F{u24~if1IN4&$~kJ0m6(!g25 zV9J7l9G`Br!xN#n&Kf?;^9D(OqGNzHi5jA{0!uIe%P5&{B+li_b|#Ap7`>tyZ`vX?&baX z1nGpIycAC^Kqw0>UJ~~a==ME6RP5!zJ6B{X%k&O= z;xQp8?xNi~s@KEn-m9ny5&WZg@^S9O6y2BmzNU><1?|z=cD))ObzlWAxk}5WiPxte zso&+SQp`}S6xBOQ{jYMB@93q^kB(0OUoo1f!{KC%uG(SGet0=r-qU zQFqRj-2^pXmzYqiho29VpS?+C{!?*@r-S~K-|FWUih2-v`uzUv1}5JILrbz?3X)f@ zX2nm=TamN47R^eN!4S7br#_xDX0P8NQ==U5g0<<|c@CJVfF9~4Qyf0iBn%nXR@k4B z8TmOfJD=ILWI-~UU@Qs)Oe_@-oS5mN^?*X}_tSNm1JocSE%{(P%?4co(oZt#OX*`$ ziAWz?I(ynh^3e#)5BU1$n?VsN$RjTQjcX|h{$wOYe{H5i$(XEKE}ILCO38RAL=pw- zyP^_v0=`q5wxv=z_kWZ41bAsy;`k_98c=j<$8$jxvh18Os+BW^A`M?GY}(dD-C+Hg z+whYpRV&zym`~`vn0LE9Z`oV_C<2UXePG5vUQ~C&BhigY1%4;98ueokB3ftT9f?Fh zYEoBbcUheV;o+Z^9H$vd#H-e&fIDJYwI+kOxSucaoy~?;wao>|@jKJP8zP*eF9&@SQl`&ThL$#khmjZAsTDwF|SJwo6n56S7ogNt>Rhn7a zh7>D<`6YGkVqSrMKU{7}t4M;eq+kr>%rCUEJRh$ui@iZEQH36GraYPvUchfE5$_<} zBA<|uZ^ogR!xMWUR~FU>it}u=8qpU_8by*&s@fWXRP2)^t}EEDYYqn>@6s?{44vcf zt*4WHqY<_h%(R?7$s|Bu*IKe&pTSZBLNyzflDR^~*8))_WOqZG5${bk$+`$Qos22I z)4f#8l~Z#QJTZ`k6K4N0PSP#8=V0heA5T`kyV#O^j>POAniwKODt+%TlE3pbDnKkM z9};jO==h&6wC>lmkD7Jm(m2OSx{wl-QS+kRRx>EAs>|fyZ<>B6 zYST%C*lKIUilcFmE?9{S8~O&7>HlBv~b9xYt@CZHl;doG2Q&T zC5qIQ{N2XiAQvwWsq5l2--QIR%53FO=X+sWvE6ziai(s4d7>$Nc8Ph!RBFr1&AMHA z*-gHoEo=L>-9k(AmaTW5a2!YNy{om_QW<^ex#(^+D^=?k6wJj?)!Xi!H4TQmr+zTU zGSZE?HR`ncobua@N5`!gA=kEoio=tfrHF1^3~{b^Yfrlc?CQcXh0xQ|UAyG-s{b|@ zZ|~xiId7l)n^1Xwp3_{DAH+V8Ny0}?)?%294m6uXgg-TsEUY>0Vc_e%ZHqYd{F7&Wx|oj}fW5!?!8Uzez7+JvzPK|j zu)P!SB+RS6ZZ%;4M^9-*Mm5`WKjDAHBSAIx5m-XMfja_ZHbLH2f8f-D?&y6Ip?F9Cf74sEpxqSHBZ2Zq8J+rym1WhTfrk zlZXRBR$)#mz69DtLK=kjPi~q#$c~&zR=qds9nl@meM-c!s*oU;*+c_FR4LyiCyN(~ zGv9tP;OA(ve9Q=(Y&eB_AoLhZ%#1%zeyQjTIaL2EJJX~ZzRh=QFfr5IBn=@1Vwt+C zqGGyDguxx?iD(Jlu$zOy1f7Nw^bOaDq;R|S-^cESvudCq5O-2 z@TXW*Ksz-3rNTKZ*Wm(Ks#UfpdFWdhwR!E#SpIMi-L6P^B0e#z0x!)wJ4UaU&QxZBOyKuG7(C{RV2IB&uGjoGAQ~Ux|{z z2$RV|DgbVicp!#^0xAE3$QUMo(+)0mT-lO0+9M4M)dCYdBxlZ2+(SVo8?G3mAFClD z?~t=qBG&WWQ>7#JS}vb0x$VhKEg9Ncm5?G`s$>MmDjm_mMs@Izz1FFs)Pcv|Z|QIx zri<}TZte?=0Y+b~|5BUXPIX+ZA326rt;RWFOdiMCkF)OCUre?-PlcC(p5HIbHF&;Y zufH&H{Adw$Tta!-W{2?-+>Su??5$&*q4uJf6e4P^MKC@Xm&(k&WQh3uqqTR}0y!`X ztNBG_P}d1=V4I#di>C2kN=PV2V<|+dPfRGD zZSA|qQHaE5$XFy^M*_mLrm8rs$Qu7>&Z|#@wo9s*@a& zknAqs-HX9m_icXQS4$}kWQ_C({ld%1RQuaYlft^E=m$ni4X%Z3N%;WLr`?Y}LgW~PoJ#HSuTBch!tGB(sdprYg z*SA4XfYxpWO%G`l%6pgPP}^5V*NZ3KKlO z-0SQ&jCYW@?NN$@wCyBjq~FihKhCG*Ghk(Q^Mv|y%D>My?|0*ty!?Lly7bii(s0S5 zqpff3-_Bq1H_3Qg@$!z31ksiR0s!F{!}jwBvJ2nb5WEXVk{} z&2z_y(2Z-6z;4OzbN7+Zt?$0T{@dJB&zsQiP*TAIM5kA0DDdxCBf%rWTkmli@Lg(= z;0c4%pT=+C``mrOGl5&5U@P!LDXGwfywhL*2=HUAkC=iQBLnilp?@Cd(8d!dAILp5=D|TNy1NcP9LXApMSUZgDBLfkOXJ&zkv<_5C8!5 zPyl)q06h+X9vPAzfI<%-q6Z+-|JSmAEC0a`0LTLX3jYID2!IJZzzY!&i~{Y2jbTPf zp+QHZ#7GBZp#}0%DoGP7n`6lbB8euza-;$%V*oh*fG^GfSPKB89sol5KN~?Q0N~{T zNb&&ae_Q`wIRD3~{|^2?kO3GN08AVJP8JvuMhsbcB6)gL1x5%3Mt}kXK#d+?%kUrU z{tHJI7&l(@5GA${eJOt(DHm0Fd!UM)f{2|Qqn#{+ogA&bBDNzC-~|LkDFC7r0Z~eT zXodd}s|ZzQOJ8h9pJzv3>P%SU3t1ZhC`tpQl>*{h0MUJbkWPR@1;DNhV4DZfO#{d$ z0MLH`0R8_>4**aF0F(j%*#JNSBp@COkoXM{rVG$D2Qb?L82&fb00wmc1MmyG8ikYz zgS<6^ye)^kn}B>clYA7WLKHwT3IL1-C`3a7qp`H3S*>CPY!mqGayaZt8STpG?aFBF z%fF;H0h-zYU0s0wUZ|c9fs{V^=zjUA|Df<6x)h?S6{0It;;RiZTdWKFY>WGC3;XR# z`t8d8oAUmE^8TpG{;0bC=)V5w{{E={&G-7KisIn>BA56wyYN!`kZdRSI8URL5W??1 zfbM)icQ>H53y|MSRx}vbKJfoVLw|qy|D>_IyrQ+HrnRrH;=do4_4k(bHERw-s-5NOY z6*kKY>hE6vv4|z$i6xT#Q4UH&6)V*T{ivAEVl|t}mu;z>&58~-$;U}FOwNN<@`0vj zhi)pslfclhPA5W*qDLT*;(s(&kJZXTG3Tt$RZUe(30&R!aj_h!Lzt`K4I&hzH9wjv zknd>R?J+0j?W97hS&s32qCmPDBs&-spJ49&E=xG>tP{A0)T4H{(`KE9Q(lj6vK3tv z;%Ke0`7?4{gUYor*6XK@Lk+p9C0;IF(*S~i;=^Wl$L;=L7-CY*%gTVC*rTI275?Et zXcUY@QsL`Cq@H?JvmG-*k40C@H?X0VP;aTS(_=E4xq3Z;v{N%(;-_#{-E%1EoO z{htw}YVO|c7{+S~4wdOb#x#Sf! z0z--iFZ~OjvVj!C9_C?!H;fNO76u=4J`H^xlkhJVf6#I|yF3y7TXM9Mt3JtU zY0JbR`DgWt9CcwRE9u9w&A_ii%lXxKC35E~0v5Kpxh03ODUF}-8N_i`F0l2Y^*81W zV#(RHK*0oYs`M0uX8f;BkRM%X#gIDN*GyO6kFUjBnF$)2MfhVE`3%*ym}}s5V$XUX z*X&s2eD61_L>Vlt%uA+RHq)up5qQyZWG?E|!!iDibV)4ZNLFSRn7*M_L*dTsQomet zo`veW3#J#sT3xLtooi0pO+h2%5j!$sj|n+sL~)*QDfEdycs;$N88z@yB(ya|*sH{Gc~^&Nl1O z6d~m|K9aNM+%L>%F|tX8Tw*aS{bEPCzF}jcxS|*h66S^m$WBC5a=Ch^D2*FZ?pYqbK zRJ&O^Le2HRIn}z@UNkjqI_hw1|F9`eqK;BffunQivQec1XQ2tOIULpoN7WXKM1g!k zzWa>`(x_9g{-QRPCz_8* zjnW{vCxhqVTPKYwTP6!+wes9hcoAB1vLPotGybM1-Y@oI6sG7eks&FF+>)Vqkkt~R zQlO&zVM3!$7}AH%iA-&^_>z`*ZcC~J@*p+L$(a!6mZt6ZslkT}##Tmsq$!YOhg*Bd)z_tW<}*@Nix0>?3X z71Lo;&L6Obt1}RVBaR(W>Hp;mkV(|AtxAN>S85{DazUXrlo$BXUt$-lUD!0qK8L_b zm{mi}Aqu9ge~FGDNvrir(p{mvnc!{t9+OtPX=x09DsN6rp*8O@R}!9Jo3fntZ0Ji8 z2C>C*dvaroEHyRiQQJDJO!O3W0y$KfqBY^B_nz0jf4_bEHt-mMZVPd(eqy%I&y~}m zi4{)#1MkZSRXJg;HYbOr8jHqH6E?cP8DuX3s5<~(Bd5XI)DixD?}0T97-?;`j~M4r zuPkDxnJ2OsJraT{&j!SpY~49O{fERugGQ9NlmiX(ApJ;mK+ogQmy;U5D23yzAs+iN zn8^Ol6N06maEKzuL)4o&JaE>f1fQZxXjIg4RVbH(&W~4B`B(f>{I89d7gJ!rpUu2j z;_DJ^q2ln->L5Q!7NRDJNpbvhjZkYyO+j>tWU+~ix6X>$6*aedOSly5Huzc|VK#N9 zvIbG|Ew#%4-2^_O3z9zf1+!lEz;lS%_i|hv$x_=Ct=V6iJ%3m8h`C%)-HA^rqI0^X zCW9a)f!c3>*9TGB{iY-JAX8*lVM4=CjOA5WFOexLu-aRzfY-J>KNeC+&{;|Y$Vdh- zC>(S$+a`cFu6b`e&-9Oeoe4LdJ#V|e6FYj(fVaNeZ+owE9sMr`S=i)$k!>}ygZPI| zUyT?3XfaT5M@c3;6X3g5D?;CVJ1kPZ z*ggu3cE`dD<&?L1o7+z~fkCxH?P znaAZUcbSX3is(PIxNbdZV)u&(LHhR}zhUtGcX&cym_o7|-B|>0o)cg5_4@9NdVs^hRcaF-(rU0dll{*rE_2~Vs$f#=|ok~TxLemd{%Rc}@_+tu%S8x4ON!ijyNIi1lPWE8@t0lnXY{?uN?=?AtKfIqL-vgC9c&&D|H=2O^p z`p6fH`txMx{gocbo=&Hju8#cc?v9q$t_0o}L^J1PF<9%#DZ=<~zYC0+vLlsL(4dI+POnk^oct(*iSf>_kS z(k>{mhsfl->c$zw)XRRyT#PMG{{Nbl@+|pR;lc%9brh&9WzNDx?oCk->M-mSW^Sr(95^WvmZ?!-aqox@ieREjJPOZ1M=hx{G(N_4 zxn(sW7@44KJe<5`KG6+|4_DNM$FLGrzAQ8OG4?2BDxQVqP%=%|>~$aaby7753WNyG zW=?}xY@Z+SnjP*~?a{I8>^@nq-0s!9yQVU`Ffb*&vA*!=-P#5v5_;+IF}|Ad+At0x zLwu&~@w1)k^Su0(v}oCBu|@5%&geo-@chlRz7|*sl(14OodTOUJQwG&kSY8i+6Z$j znIjpYVR&152@=Fqt4}lmlGhMrYEeE-;hsBS?XXaOJkHl}Qs+XPe zAzljTQWV6^Fyu8U7NeTKj}!ZOrKx>VK>*geJBdGN9GW)@5V3j8m zV995CCmORwwW&uyrYgx^pb^rVph|__k0oKPEB98jQ{sDaKR9{eek0b%^t&(-ILLCA zj4x_8RW|!3a*)Zdqj+4R;0Q})8>2itnT?Grn1qm3SsGE>Y3PLz$BN)nckBkcoEYFO zwpx-c!J7k*o^^+3SaIRjyd-VzlWpOiDf;|1qlN(?A}3Kcw!SN+=R&^(lvpO~-CiQ< zmYG3&z!Y-95muu&D;ui}3Zgofw+C-#7q{gEg)3I&vP4a6Tpae=o8Iw)}_g4!3R8cT)>C;6n=3SYhje@GIp5T{Ez?A3aQYcMrvSO{U zXLKfINgmo-0#9yE*h3h0n1&|3Iv||M8{{4GEp@8|lGIeSnKNUbqk>>cPqVqwfxig< z7u_5-4Qg(gK#iJobnZ=*CHR1xh4F920bZp%U!`1$mU~Qr+pkJ|=qgcp)=Ki`6@ zi}FC|3itB}^9$XLMeQUHTPc;C);8V_58r^;>csL}2?#)~=(sQTtj|50DIJYU@fY5nn&V%}f1ap$G_KJ`o1U}8Cs|Tdx6282(xZ)3=+>`>4LtEm zW7N?f<%>p| zS?^9??orc#qVgl)9L&<^`vWcK2YPo!c(x&hrL6%${>733hkOfM^pE}6TCBI^N{Pn3 ze>1c#%^opWByZSc+h!Dm<-*gAUl%!y&l@oATDQ>Kn0gA;w(+qmTYvD`OzWDi(RvC= z*jqe*|G;ey_a)^2Y3@B&Twg}Qe@K{TRRY#cG7A6g=zH6>p0WT|zOW~)aXgP=S*0$vT(M6okN2dqtl zVQjOPAF0z~K4fWopgc+NC1z+GS{@-vvR)g3N4My9=M8#ieTidpX)xqsPjXyGOHT*< zRPKVWg6H35gV@lLqVzRkD3m(#wVZ*~*XEQbR9=WmW@dHwa4SghY@E~oqN z1sv}L{uy}_0(=Ml_6)pl4}jkW07Qe3f`icdgWTvw_mP9Jy@T&{gHmf2v_m@`9M5W_q}!^|Z^6jwv+NV3dV!=C6P z)b+y@AtO9U)U-&L*%c$ycOxA7qa4&jVvM8mLn9L7qblN~LiMBU2cush#-#nnI2DHP zEXG8|#;#7rP$9;3$;TPQ#tDbUwDZURrJZ{5<4~DAX#W&d?Ij73CT`7!yd@?)kVag0 z(7fNr!I-5J=tJY7y%Wf86T*xW!9>Fmg4A*O6Ikz)hYtiWf&EaOzJ|oEXS6e!4qt~>Wm=p0c zgG7_`M6-!k^9UdF8}$n#_VWTWbES-n!6tKMf{R}YK>Yr*efjfl`g277v+w@nuSDP_ zqTSiAvy*tUOE|zq7@=jA-o=1?G%}{e?fB(Mq#=S?&|~-llF7_{Jm?3}^7H$|6VV7C z^0F+`7&GzeUGF??f;rOc!rsoJDsWZ*W0~_~b((Qhac3oNW+eh?T8U|)>uNzme1;kb z!gpAXj~{$c7zOUGnn2AT_pS>VptmqCX5Cs^lfUh=g z^4Ii*Rty<8T|XA6T-Hen)@*0j(3qBVgqHU0R|)!-0t=SZh&Oy3wsI2I(-Ss+5aWs{ zj4{n_kzOySH7wO3uZDfh^a`!g>5o-4tada^dnIhgHEgi&E@cp}V+E}CfSGoJi077p z8!ZL9um+&a-u1!0rE?^ZH|9Jl#@>bg-Y#&p_+ufjcPJKiLvmQ zp71y-IOGV)$%^FEHu1!)e^f)*1253grT^4j@l>G@S5(o%N!StWXLuF}J_{x}4;4NS zH$2x82Kar4gZeocwtD*Q>KsB4@UehuWj6}<6E&SgJGJmapAtS+7(E(%5l=!CV7NMB zuzK0I`v-Zn>f;19749S1?z`ayD#WFb9cG^5B?22<+TLY%B1U^4Ztvb@ej!zs;ngtu zm1xSP!O=w=GkOX53eyEpSa=@n3~($wV+}mRXI|kD8-`0h-vAFcpj;rUK!S>qroJPw zEZ9*dBTXwqakyMK7NfP0U_Rau&dgzq++2F3+zu;VO$Jg;fG;^AeoqTuz#5Uv^6jPBV>uHap6SxfG>&ETMv zaF~;DSqFY!b3GVHT*vgo1q1Fr7w!Z|9|ch1VGb@N_tB7(F8u%in8gRElyel5M>z7w zn41R?r6=*AM@W@xL6&RCkSEQi4Wj`#*n>N07l7#egGrLGY7m-@(>2t=g@O~>0W-YS z{F6}9wW|}JhY=cv)AN83KLsijjLZEg-92T|D+d}q#lUNL2+}mG2zfBlMgL98Cu;J5 zd@>6f_4gaL1tum|>4Jfq`@~zY^6fLp18vA}4)q83p}!3Wf4N{Dd^XX(?_U`QJ!y+P zS`9p4HKEBGVWN`0^ol&U-@aK4yg}YQYX?0ZfEAxSKOd(CevXTv&40divpg;uks1qGH zn3`13RR{mL9sr~i(1D}_yzT+yASnO`1C*LQs8sHriAw*072EV++dT)a3fiic?p38+ zxgs>2b?M=_bP?i>Y8We3!(JWa_3D}pH{t{8&EqW1T(@NKkQMW08so-C>vW8{_`#txjbkjI6sW>pDq83Bgu`5l<3cX0v(b} zJkK2QMib%e^B*7$6p}v!^$}yhl{8z8qp3h6?y{{q>*}fl=9who(2R#WXFY*?<2oozYUNISJJiKfyv zBf}OWwc2OXLMSWArh<#pjm%9X!3%Ts9J!~P1mN73p7{05nyM*jbrXa4qgKrrg zL_5g3_uvy~pn}4K$RvVlnD0LPG>lS33gIO1%01;2iAs&%(8!LA6MA#cDlbg&A1__* zM~sbYgjr@3A4M_Je^Q2XWl3B9emTSljh#78l=l>w$z>vY5Lntg-ImO;x#`QfjNPG9qo((3{dsui^p& zjH}V3#hkHeRTB(1=3p)MpUG$29kI2lz5KFaE!$nPWE;E7w25vrsq)%GJ?zw65i;$t zuw;vTBjNqB?E1Y<1+K5`fE`~uWMWwFABScj7$NJh`@V)9gh-aAhc83Il*kFfw zsMrX^bDbw8#6AD0*v0-3LZ~z8BS9-FT;pP9HykZcYYEZRL>TCl1vwBQN$?TN`t&l7 z0O*1Kh)@YV*tnsIP-7xhWHv>+~GQGy;k z2ncCJL>oFKi9|ADjgXkA1647MXBs04GXf*TajA)OyJ8imR6~t0?J{`#mAPC=k64f4R&rjmnMk?|Sf7d(ES2Y# z)YR%)ec7c%O8&#x@%R6iM^J&5P)ak#3yl;HwRA0bqFk6sR#60!8C%)#x z1L-_RpYdGSb{h7-ePW~~YkLC{MAEknLamEC1sl>*q#rE4>7&(!*;rkuQz+ps6=R+EvNRXu36^F%rC1qLW4pg+@tbOg}5LX`dwcH4UF8Nme zYA%bD!t~@Y)e4u@4%xM7rsK`3X#%47)8u#)+@*RODd5 zoM|p=j5wR#3B-&0$xck<+Z6NcPNnSkwN!`BqD5 ztLMn&%)OGeuC}qITFAvMs_-h8Lyp#)Z>M8#HJLauc1`d~7v|Oi3wi(GO>)qzL6LGYqQ{HTe=THcVnsY=4uAR{Y0URi(Dyw^r=PNzO%@|HW=SAQ_A z>)XQn>S&Qzd?*wOcwS)R7r+cEwy47kRh-2A!>=wPL{W|EELt1H2|>cyqmJT(1pYwa z-r?Obx@w71@Z5x7pi&B}5f;0uu^XQa^Jq+Ox!N1YDdutI4ic8FaQ^Gx4$q9m(@JnA zpS4-DLFMTg-r8-JE|v+oeP@lO`l@X6Shwp{CE+G{?L|v7vIG8Ros9B>$QGQ>sUL0K zM^5uKjLzc;m`dhnF$dV(Ixk4Zd!*xBg&8nl+fKA|@pEf89d$#SHpzgA5)+6%6#X(K z=tQxe>cvOO{_Dj$oEoc_fxnITKMF#rv1^d0;t!IdI;*=7|4NzwJDQ~OI&;g3^m-Eu zBn7(1ZkZ7t0+(5d^x=5)tgm{ytu_AO!H_UK~$z!o%%8p|) zCds>s0Z0vbgDV@GD}vLpyAq5c>lNA9rs5!%=s}BLGKpC#{;X&jiy$OE*`qz=d!=%L zv(#8JF&jP4`Yhd$49Eb!zmSW`J$c{3tsKTA4qY37m>9gg^o@5R)9bE~LY@4jPh9 z43U+&8~roE4!o*Jd81O4A&)@C4;jF)(M0JgJWnj6lDf7S6h&MU16&N5laWQI&=V7p zz_%kd012Tac$~8dI~)k!GNq8o5C8aw|g@k z&;u6ZP!+OJ9ma~4rpPSU;3ZpPz2#%EAB+`H;zEL?7b+Y+(Ne2_Odi0>4oA8yu@Fg* zG)c>Pvn+d->RCh8y2Ir|m^l-Tb+RW&iwNAZjCfKB2Pi~H6Evc1j`0{M>p;r;o5Z6? zL8DrnDN!5kA|jlsM{b)4y}2&vDzH`D%2w=3r0Fg=d4mcI8n47Uuk;yT#F+b&pgp-t zIJuOqNycIOnOqA+Xe>*lF~LIOOAFM-zwDVVsYkX18LuQvy_t!*{2LB=D#(-?mKn?t zd_i&}FG~Xut8@vnn2RyQJ$8e*I~*Ujnx+2Gd7jOSs~c;`&%-w!+m+PNtI$xrrtmV1 zoD5Lf$WZA>HWUlouuW${IeK}xl1vV~kPARC3omOew$hzmLNe$fy^R1(xe(3nVWyYd zEAC-3E6GYOf!3Cj{3H~u(KB}v7(J2uKXPyzjiH31X>h06lnh$MK>Lg~*0 z@sEsYJE#jVJ<$ggYp)gAm^ZM{7erB88%s{)kr!<+6{%1hZP98BfE&5SIQr0E)UO~F zp%~@A%$%CWLz(^z0#;O@Cxy~zV*b7;rP3<3(ksQ%EY;Hfy3Z?ZyDbINFm;J94O0=@ zQZtQGG!@eqVZa7m(=_^;Huk}JjGM*dQ(2t(?7LRKNV9o#Zp53i31RW z0-C`t4O2m-2}8Y75Go)DB2YlR(>k@(Ox4s)<?FR4odv zq{TlCRi1!UE9K0rB2_!Z)LO;WT-DWG<<(yGRW~hDRXx-@`O#k`%Qt1w7GYFlW!7eO z)@Oy*XqDD!rPgY-)@#MqY}M9n<<@TX)^7#ZaK#A;f;@3`Rsl5EbXC`NW!H9fSEC@; zZ%wv-%+isF)2ph?45L>&{$+$vAO+I;)k`3SLXfz3HQ0ki*o0lvc=gtKEmtdT98Al) ze2uz&ebWu_S5o-bXBAkDB?N^9*^m|4ktJE6u-GcKSDM(mQO#IFC|F~?fQ&7KlBL<2 zwb?m!Qf|%J!W7e$Wl*1p*qZQJDBanW00oVGSu5QDQ6Pn+Eeb|p+R3}wsioSgEsCPe z)}6&#D;-*I913BziIcsUt>p+rKw2?f+NPz_5I9?_b=$Yy)(&wLblkAVU=n3@&>f|q zSX&8236nWW6Tqv{_LG}#!!V~H(plw`GveCXlZHAe6*{5EWFrJjh$V_6W7{D(@{<=O+Yr;-8sxzLSRp|g$BOF4BOS*!3O5{< zBNsH{a6|rL!-1kcvZ;&mVZ58+M6F>_W5q3!;SAFvQj8%hK2|60;?fPGA;L_UFx%ag zV5Hq(LP%Tf5CsB22oqjjrlsS9xBx?tIOfd=vn7Q*mfh(EkK7f7rZ8LR^rKP>#o>>cAb&2!SQ!e>q!$o!L0fh($)As0|5YP6&VPlr_F%Qut+#U}i_A z=4#ecC+)TU^%K4XnW5$7BwZtMGhhqSyZy`N#g)*o70Z=6=lLzs352_rVKDwJ6mCxA z_x=)JAtl{f<_HmM=M34fJ@?rS{<8h3KVD+J5y|No3lB#cGQ_iOTNk%+_q7ozVj1s*|SW{+u4) zK50R=)~FBc%dZnb1B5oXHf;=CFS({b^{v#GF*Q13Mb9>``fF`525h5}Sa2p?!Y-$_ z1!lxn>Nrl}tDfw#MQY2Q2-i*K<~E7t-t6nfZkTXVaLh#uDaIvvoL3A-b1W(v*-8xg zQD>w_5R)Jx<}W7Z?h6%1@h(TBDsTJVw)m#T2n;rOUdHs!#;*JBN(=BD%I^c2Msb|A zb_C=4PHW91s7>td2Mihm#|i0{VB}6{rd{f)h}q{w2t=4;y^vit7G7w+YJ})mmqiFh z;A7^F;E<5s?56P=M+vZ2OzW~sAXZefG|W~7Bs#*7%Vc80P2VQYaUDng%OB51$5day z%ClZ-`1PE{N8*`a;`LT6sc_+G}9y>YA1IIK$bXz{)faS<_#|1+}&M3=3szj zbK+f%IWOMR!0h6VaU19JKHpi<4bX((M;954_4lZz+K`Mg-(I&Lu2}JF2OWsv=Z&b0(R@wdqac33bXh!#Z*Y`Vx zcbH(+0B6>IKT}f;SICCmUKM6>-}i-Q_$n3n&m`7d|J8?Y_=>mqi^uqk*Z7U+_>TAZ zj|cgX7x{+2)s`rEmN@y4Px+B&`GehnTTlbz5z{HnRBO@Gl}9F3N_m{8Q<~ROo;Uel zfmWc8v!Ex)?<}8|S9)IEfK8}|g9rzBfP$m{d8$t{p~q62&r_nuRIM*Kt4DdCzfy$J z$)vABtOr!0XTq}w`{HZ+WHI}tm-|jVg=zSQX~6qwUm(e^TPl`Ij($(--^O zPyQ%{{N`8vm4N=-r~aR~ic9#1d+_}_m3>6W1-y5MshW`)MeN5a0!J$fsMtf9(JWUjP0f$~A48J17noGITKTU&DtIBR*_s z(V;|$7c*X@sBz=KjtnPu%t&$}$C4*ShE$o-qDht}XTGFaaiqG7n_pfrC9 z70Gia%$_BUVw{OnDAcG@r&6tI^(xk^TDNlT{_6EB*sxm{Zn*W2-YqpAjb@Z|@GZL_ z8HZ&g$75g!UgvTR^v0#yz_?M%`mJ{G-!wG;^4fh^HZfjaNhjWgnDuCaBhZk?1f%-*JtiY;#ZIP&Dmmosnf zJb4I%)6~eu?C~HxDE}Z;^H#+qJ-Li{O}iI)8aXJQ4&I}1t1;Ba)6OYGR82ACy8|C9 zUMz50cH4DVg>^^m_R~h0@q}P-3*Po1Zn=48({4x&H`|3Tt@f0HR8{C3Rzx*85{VIF zsGEd2B`BeYCZe<=ahp9iBaJoMcq5MfIqH~|0~-u;PEs*(FBu0c0IH85I3E3ftpcMt-Y_+9GW`<^}m>O{ueHhi7 zXm}cpDpk|4JMp~XSF&JZ^8dAvOptrvEnTNQ_xo50&_BJT7!p>7JZA$;+qH{UhpNr4ooCs^_X2nO!LHcPOlV zGV35ydTJP&y(dQdX1$pniW>f~tU-nBothTwtZD^@mGH0u*94TTLn(_b#u;n8F~?qM ztA?1lLOhhX{*@c*d!q&wvPtdE>tDPMyNoiX(2=@31}B{IkV8A3QS9gwnP! zhAtL(F^|%o*=*7bFRibk9b0`h)>&Kq@js^^S?E($mc^SV|CncTmZ0{Sa=Kq<^yGH~ zG3h0%+ImT|p)~gjb(*&tU3Aq0|Lru@3NxMSRN%Iz=5JpSZL_e7Pl$KmT3dcO=9$yj zN)||zrN$)QG9J;E+L|<<7XyVZk*8@-w|14hv7FIkp?31ts*>@*(9D4H4S7?)ark>u z#sB_y-wK=wBCWU}pqJFg5`T zPq}GWuyFM&3hpa|uc2Py5SK5?N$`9oJRu6tw}DB>?;z)h8~YyOKAY&EThj;!7IYDvd?ch0xg$w3>Vt+87$h^P$xR~1k(~S_C@=TLP?EBgraUDoQ>n^T zva*$~d?hSnDa%>XvX&SlWceuRF%11@egSN4s({o z<}=5+F>Z?Gn>O0OCbR*=nb^l|+cOD31!|HD1oR-`$bwv`5=6szBS_W3XF08DEJ3!j zqqnRkick_weaaC+lU(Pd_<1=-6vHsnFevT11k>mZgrzQpseCFU7^y@@eU_3FO4A9_ zl`9)R@jxD0vws zQ?EJ|u4b();eZDha#7ZS_;0R2ao1bpiqm0qZXuH}40WW^RP8XLOJ@tAjj|flOB!{2 zo+xWx4oeV<4)m<*GuL@yhg6kuOtE7n6I*rk%dgh6IbtPgPDl%tvuakYf<-IlR67v+ ztV3OfL#S=dv>wR@rJyi`Tk>k;S=3&osEw7O?h0~{gdo>0kdRJ*BEt>}{75aA=nlPb zvL0z(#6E$gt2cyEo~gp;0_lq#dm6G?Bx1-e%0-Am9Fm{sVn;jDr7r%W)E&iCEI4foms}Tld?=#UD-39 zwqV+kvfYEEyUj@YsDs4??u(<;Yn*Em$ixU%Zj{HJ31cV&mxwavM@-gFUiNa3!UQHu z!{dqC96;xVT*7UUZCAU>Jdkhl0wB z<_RxHzXjOj@byFDrIGby1hc84G-4p*02QxV$m%9BFG%e+DMLk=hndNBpFL2VvHKxV zYDvL~Bw-BZIV1KtTSI=hlgCzpf9zuuX)iK1wP4%bbRF-WKbXKZm1cvsF}a^bXy`+~ z?a2Y+&etp(r13zRwd!Gydt!F$*;b>@kBOHjs>CG4sI*;Dis(S@v7T0+T4(L%FwEB_ zbMcVpY&Q2_ds5b4^85oH1Bv>Lfs`ehTb(@V!FtX)Ym>*YLm`ZC{&atY8J-?>>uUw| zg3Qu)Si(qkAQyndh;?FFs1Hb@xkaA4hRBe=+qZ7+qT7>aUiI@7Y3!4S$gzVI#Fxfx zZ7!_OeLnKTkwtdt5#{&Fy3}?CJNhAa-;dr8iRObtgzuPP`~o*}bcygY;%?rMcN4GX z(Gb7L7utP%0{9T*D^O=;{FCglS0>5HNMd08*>o?c#F$f zp>&F!vRN+n+3A*62-u9=qju12jIW4fq&Q2RsuBtRxFAXSY2Bsa+F7*9!F}IH0HA-6 zpSSdoP5>ZJ@KaOS+Pp#8NHN6wMbu-k!BuSE>eA)uOho(Ecp(u~9r5n+)nNLieX z#SKhu$QDEV)la1hY%!npElTlu&|N7JV%5_V1sBWNgv+F$?np$*?2x&bUje3y+;~GV zOh**DUNr<3%UD)raGylfnQzS-{)yo~3?hFl#2d9Cxui{g!Qsvc5SQ2(Bx+zah~H&^ zin}yfM(h?&aMQdr!~njfB^C#u0Iv zx8UH2SRCo`f_eCsRjHj#aAH$f-)O!J_YQ5k)Y`VQp7RNE}2cTla<0 z#F*LPk%Z|@#SzJk=tz*_6qD4nSepP0p(&6#rra5}oY<%#Emq>VT;dxN;3LkPcOX>@ z0ApT!m)F1$HB#PNBq9Adgy}Wi78#y4NdEBcH~?z0$BeZmU9zD)+N4A9r1FubrCA{kx?{^pArB&@P3YZHism!r+S|6-iDon?M84@igbw7L4D943_TbvRjZJ2vj$g$o+Hk06+JrEv zg#+YR+!@B)ZJvJu2@+_83KWBVAp$UX!Kt20x1=adz$8_qk40@jJ+Z2*l0~e_h5c>7 z?a=6XoCAh2YVKI70~o9Ror-EiwZeAR-r@OU1B4$jRDDG*ikHyv@AtFYE;+|T*$&OMcZ36o6icF-MLg{c*C@*sLoL; zah2s|fzxhe=UW)9jj9g-&C|@X?0LwKM9`0Q1TFq}BfkELrllm3E#|3UD{_e}ROl?L z@vM>rt-nU%xibE#n=R{>8Qj7_-%q&Wz>Uqa!5DvGvHk)o%Gwx4=h%E{Vw^ zkx8U1V}R}riEgG&sDi45%)*TA;?Pt%>Zay|CQwv(a8-~U1d(OfFx(V8;2lOlLi3hl z;0c~)u8q}Jg(gsJIEX>=NU!sjs}K>}_P#~; zn(ejn76al*@xIjYqSf0uFNVqOz!@&>Ed==XMRd9APn>SQ*4vT=ZU|zC->wVYu2`J@ z=f9av{Qk-mE5fSrBHb895Hd}!Inj#cK9D$Vu2FfCJ)x5eGe-==r&Yx842KoO+Q?Pr zFb(%GBi(S;{1Om%5@h;tR@iV6;|LEo2P1evM1|v+8nG0k(h!Fe3@7n(RPhueZINnm zakqG9olxl#bT&;XOM8{aV==dm8|F(3D_AOA5R z2eKd!G9eeTAs=#A%+1jvG9!-<8dpVAE;63EW{o^Dd2MSXCsJrNvU4c%w6LoEiY1L~ zGAFl_B~L{rqYow1$SLFGtUlSd{ShgbvT}H`q=>QFj`AwgaxJxTRgB|t?s68x@kyh4Z;3J6ej3_fL8E5-tt5Y>)R819Z8RsqMGC8VdB^z^C05eTUvvc@z z6_axwnR85j@G@JAY}p7q#}dW8v1AF8K{X|_rEP0%E2P98Zptbvi!)fLvq{YJa-cIo zXQU=0b34B?$Ha4uAavH0*m4=zfYn#aQkS`0m(&V{HFE2I+GuzUEUK87$Xb?UadUj~ zz& z1ZNNRDk?Rf;@f1X5By06xoK-;NZL#NMXd>ib(&?T{T4t%W~fniUg#SPv9vrYT5|W= zVETt~(^@$yx5%ysdBSaACACz*?JQ#VcQdVOyRtfyGt|bi^`6^yzZ-JLGI_&`dRK`) z2lsFD^;iGjdWW=ckBaBgH-JwT;zsp-V`_hkaD0z(z!j}K|0@PpNq+tp^JNM28~^vB z{U6azTHNqcI2NUWhIr#9UV}Tdh=%pUEgy;-6k)9R+b(!&UsZ-D8gLJGPUQG!tIuk` zvWI8)$F(;e+W3hJ98dlDfFrpo_eY7N?P_Xt)KQ+~)tuSgTzRCOP`voh-9^xi%FrdL zk{De%mR>npw>Ilol|R*$mmPX&dDgYDh?)oU$(^s(-FKLG@(qz&10LnQT;XY@=IOal zD<9)l726RO+~Ks?1?=V3*nDV*eS~V|!K%Mb9i+=^2()TMaR;zHI@$3yY#q_?cDRA7 zp{PgtS=r#*jd7(=dSG_C6Mr3LKVI7fY@<(>H(=NX0JK!d7XF@Nx?Q!5r`tN651w|k zIj{RVKzC-BG)AR2JM0Z?tWTC?X9V++InVWawM*8uPkZ8tF7CDTWM4X|?zzh?`=Iw5 zvl9D2N%WMndAkpLy4P5)zq*&a-njs~SslB8%%h+C9iT%6w6mDFPq`oNVNR2y_~mJ7 zu5s(6-*>DZ2lA==RfB)uh5Wf&WYtbu`E%MXd~T_r!w2AZ3?Q9<$rcoG1!k*x@HweW z146c3kwkTMuXpUpJVOh(X0f=*8>re|$zZ>HNXC4_3%zSGJX-B_46|*8U~@B`;7%nCDb|pZyP3qnGGEKui-j zjU11E2RGdER^?zrhnEC;gU7^S#eX4q6?B;Xa2lG55ZML6s1f0lo~GTac<(nkuCm@Q|u_XMX3K^(~ltF6soVfhA@h0tn~D|jy#k| z8}Br#?!%9z&oYFrJ@{O6siX<31Fbd>dn&KH@;ri2J@&#g=`Rv1Gz~S(`ui`y0Y&7k zL+mp2O)|>N>rXUKy!k>vwpyr0EWchf=&MPlnQ$S|*_6iRlt=xNuU^Uze^fG9AQx%;{Tq zR?6X{Wj6R|gjr=+CZlabIaOwxwwcp|e!lo?xO>jpw^EgYT577T-q_hEG4jumiYVC2N${|@0qyCHHs@SrKc{a5BlQX6k^{kHXL7k5 zK&oda!5qjN$z)1_xRO|*)0KWq<`=$jBq_$EPYP8SFH2dIiEpE!BFDq9-jp(w&C=MB z^kb&5f$p5#>`pJ2Y0GD-=aUvOX130}98A zh;$$&-H0WyaYQX>R~_QhD$yfAt1!@q4db5^B#iXIq zgdUA5hLDbwsSAqhH0Fv`vLUgN4sohW;bBtZ&`ht8?dw}Z#SxcPmaj&X2}>ahQ|Pfr zsU$Ti#Hv%;!eTRnjg28;`+5+&2DLSh?W|#`YE{JwaIaOWYG&a>SrwLTxWzT@asG2P zPUJ3^xy^O%bBPOG=^9tL$E_~=(l}l1ZkM~=_3n4U8(#5_m%MmWXnE0Vk?W?Hz3naT zdfn^X4cv{n@V%cGP;-GcZ8pCB_3wWH9AE(tc)a!{aCi-TUpQq&FpQno7qg|5v%#YZ|*Lgact+Q;JG?+ma~{m{>-=dY`}xleVe_3aEfZ0D zIn_g6^>knT-B^QK)vf+9sS{0VI$L_yDr|GBZ9Nk^>-r$NR&$&yLhL@5I@hJfb+UtP zYGfBX+RfH7p@$vpQ!iWFT{d=;cinAdXPe4fCU>m?LZ`*p?O0jpYfc<57uRGex-gmj5O>IhJhTp$VxWcPVX>t?%)Dx#TzAe)4iW|Gx z4VN>=C$4FT4}8%B|F^J7uH%y*cjaSFxsg}iatu45Mu>$%!PVXV?|V-h)801ow6EQ9 zk5ilIMfW$JJjZo9_Ae(|a&9PK0jdEBFplDaQk*@ad*-vN(hb3Z)q83(#(`Y!jRJN)o= z|2xpXy>myuUEqWl``vYZd7Rh1%$ERXH}75RTpRw`k+(bP50CYaub$y#H+z7dX)c}@weBzxI_Qxac7?KnD>3*v!40iD?i;}hdkYZzx=2_pZDTUJ@l2| z_qn^9^2f$L=Vvc@@3S4`iLbrlF+TmqYk%!%PdxkK-}wIXYku{FkALy6Z+RhlgLLz4 zVfaap>!5DiaINf6kL&`@=o0Yg5OC|}PXN~~0Cg_{5f1?$Z_msQ-+GVsAW-@^kn4nR zq%-{xUHAitFu!&i62{`rOX?SPuX@Py{8f18wjH6%g;{ukz}z1jlX# z{Z0ZQF!_S800mFaijM*-(C26n1P2e@wy*vu?gMww37K&7v~UTd(BiIe{7_Id@@j7u zYYS~~1EJ99f=>4CuISz{_iiu=jnD}x(Cg6e;(pKebnpkI&JI2B2(7T|RxtYHZuTZm z3HR*|R}Jni5ck5b3cIlE!0rV7Fy|Pp35yUA0sc`EJ1+LNZxbJI_ae{>1(6cnFa~)p z=^(Kcw@?OgPvrV=7V9tz?NAIc@at-C{BT4@qNEl9(D*=c?AQ~ zB=G&dZw6)X4{dP=g^?DKu?DNr?}kqogKrIi@Zbs&28Hm-u+0!VQ3%P86Lk>LLU9z? zu@>FY2h-8utnU;9QT(_O2&J$Ap-vt-&he7Z6{+wZ>(KNh?G@)y8lCYUxA78p5gk{> zKrRCeuQ3vd@feNK5LNFJi_r+HP|zB3809bbMv?~w(9oRm9Z69Y!7l)D5F#(nBgKyX zh;RT+ul3BY9iuNN`!OFMk|l#OoFp|5o?}s`KS;1GSUDYunQf}7}d}F$}%dYumy)ODqT_~xv(l> z((7I_?_x46XL1BnFe|4~DyMP+*AEp*G8g+04D+!lfzl|kQ7`9E1MjgaGcg=9(%PPq z6#?=vjgl9ElFumfA>%Oz#C35-} zlM{JuASdxBDf2ah6Bgl7G!GK~-ej>n!;>4SaxA%XH62nGH^_jfOokqi3q3L`ZS(bT zQxN5_&_Hr3v$OK(ayU!yBePTeRI?bF4<046Iqj1$k?;jI)CA2k?Fv#IN6sp*(k!(R z3GEXYTQd&(F+?SFIm;0r+cO4X)CxN@Mn97pb+RsJbVDE0E8!0Hg!DN>R5$}vJy%pL zqw|&MsZWp;MFn&&3A7CXGbI0V7=05f8?Hee^h&K0JdIN@F)jqJGV($a{l?J|OOhtr zjW?;!{YY~w-!w5TQ#LnmPAhaa?@~uAb05`I5z$lsvM?ZbH2dVVLMxN}9jIK7Y|V>q_-r(3m*QF9aT|Ev+g#jbWn*;-xTxZ@G{)Ev`g3U87Z|?4fQ&evoQ;? z8^u#gZ%<6+^tlub8o5$2-SkY6^fX7YDKqdwHSaCivp#n(RH2hIA5>6n(OFH@F%J+v z@6=W)Q8Ry4AZb-aKl2jTl-9sCTz5?7hK5|lH8sJ@T-P(+UNv3Y62=iP z6-4i~UUf2F`Sr|jw7=v{UDuUO^|fFPR>R&EL=Tp^5*Ak*woU!@Thr@dfmPO^bzw0! zV>NbT`?b+1_6hZ~!vxkGC6;4N_GD2uWmR@%S+-?e_GMum2Bt4VY==1QC5bj(^A$6McHW*grf3alUBrBJ=r6*myhO~n zqSi;wYiJtmYh{dVVYX>Etd-8NWTmS&$TSf@*1OntXv`MY(Dsf#EX%AGN{)wTv^K!H zwz%q6y>`gC#ujUDY;bk9#-!yw!OLwMwq`9>a?6WSS0!v|O{Ekiz53BVBwDMMToeN1A!ptg)hpdEej{-N0);2JAa&s5DKx%fUwste*cH@>Vr}p?J zjdJEch?jWNOL>`#eYe-EEQNk)ttJrRiQM7lnye-U2(b`~0@_3k9KiFi zXj_2-4gAcFqQe`6!EHt&*Dio4NCHCcVai;$EoG*E1>%44c7WlbfDbr<83iX0lIAS6 zs^shfHbIXh;zsz_e*qZcAi{zFjKcmRDH5(K3^+Cwcqd?3hT-98#=-&WrXgz1g)g*- zqk@JV1B9o+9nJ%RrwlEmvRO!2v{I$!Jc7wo3sVDlGJ+U^hgg*Mg9ieRDF#9t;=zmm zVWd*b)ZADg;P~c%l7}m-S*Tcq9RiAd>vSWedGYp-VM>6XsE&d7fO#c_dl6Jj_iD%f zB!0gtMkM(bL}ZMS3XG#`iOG^qP-#69g^x+uk8PNNC{jwMIF+;Zlr7?pB`1!xMmv`G zADY;UgTs>>LYDLRmDd<0I5}w~;V(j>jLG4tU>PIM;fVkzp9GT1)MCk`W67pQI0i#8 zYJ$lkLx;kFQL2E+I#}68qL?oUHAX_2gSju7IU=eCni0~Ss4R7DrkssA2x9fiOnIH@ zuQA%WO5QnR=($JeC5Jq3MwX_{1{$3+!km5SMtWk(8aSFUEuDM#F<>H~sfU`=sf_>m znFZQ<3j)}x}Gyaog<8yojIVH$s+!Qs&1}? zl0VFnHR)qk0;uPLoF1uqG`g&80+grXr$bs~M7oq$xux%!Tdvxk&l#8_%#n^_Yujc; z%3?DPT9_)Osf$TJc0#D_DV@~F<{SWj7NU$_$R}{7W9kSB3h5pKL?eRKH-v(k3}RLg zBZoajW-u*9`r;mbrpa7aL;FImHixd614^(buiwNkG^els`Z4URb4*QC%>VdHp>cbzZ5cv-%d%wy+&n4^ zAtbZ?i8C-|bIKx&uLqxfh#_d(O+LHhwpq?#0t+zh0w6)O7{#O-_x@ABd&$IGkB9V@ zU-`JfnL%*-esp_=LdCc%JH98|el$BjI$OK5tBbARjVxli!>!&PORzPlmTdqFH*sLF!>5aPU9Bf2RZ zy-|F;o2eom{JO))b(ri>{32Z>BXUB*NCXWn(jz7aq$Jv?8bstPHXyFBxUt(OGf09L z(}R?Jd>Vk9mFv1EmfOyZhF4>Ivdw78V%r~&@65Y1VG{T?h`iOtyjeVt9elbY2Ezebyw)JY+gm2~pmQxerFMFg5-p-4SVwRh^^+dPdDm1#R zCm4R*vx~`;OPi#kB7E_pD@GzHVi}R$z!e4KYyQ6e#VF*zgx~+jKCA*<4BO_d9d{C( zaDzT8zJ&*r#hVBhD=0m=6z3|Go+}ciy6o4P79{J>iP_V|w`M+9r~|B2f~A+8CBPnR zF&bL9sF}DONHqT2^*!7h-T}ycZQw#K=t3)U17`HvdI1B=;$4YfBeLy%=i^@9=U$5! z{M6r!b?vO;BmOHkUWcXAh^lqA6{q3_3 z=&jA}wVWwZ7(Yw^Dn|fBKr(}G zT>X-d{yhppN1&fTnjW(nWVe9p`k$Xi$OiuFlQ)TyrTkrM!y6~}cRz!E$R_BSpFN%Z zbv;O$UhUuBsbl?1>i+Ii0!aYk%dLAGZjozI4b8uQA$U!D2yq%Y9t?SrTR3T&w<-=g zR=n4-;50R-CNAvgV4+Hs4jP(VC{kg?mkSY9Gue<`kbjp({wqlHA4-)fV-6*{@YJ+( zOm-IBxX>lVkhi9x@p$xP)}OaFdL+s+rO>ZAgE;7^hO0@XOr3VEqSB=fr8thCRHe z@~vL5C`+GS&62Weq*99-?z^-pSN^DWXRrQUyRg;ApZ`UsSeBW$mT!+6$ zI@x~s^>>(nLFMJzG^qVYlqWu+Wt)E7`Q}`L3t|^kdCJx0om3ue$KQMk3RV|dotYHd zYCXwQjT#Pk;!QEU^%PM=X}P45gN%KIQcvD!^HPeV&GZ?F1B$qyW)L#Rnpp5nqmyXF zMTl2zR9S_UXpY?_2xtwSG1t^tB945sXgIfjH8E<3WHkwk}R0EQed)YZ$;rPPAFl*k#A2J+D5P&RR>)c$q9rMRejP3jdOXp+JCriAG+h+&bK9_e6`gYLAX zXAC+h4^)?U!$m^(9oUnYNxYmN~CSF za$0Gg1nL#yYLV7z+)X-|ikqVoGW*-L%JvGSq`toAVM<0WU{xJ6U?)SBoQd?J6m?C&c!5MnC!hHc(MBV! zHrwjHEh)`;~4Ga1-{8ohdtD8SJP2V#&E8OSr@oo6uv>u8SB5N1@6W-X; z4$qz{4Nd$%M<>0hUc$2tlkwwrT)XKSWe!|u>VE2ajr4c~=Dgg7CFH~twd7D;Hl-C? zOzC!1u;>X_#PFTy`!2CV+K5lSo0*MUH4~D9YNQ~s91tQudWgVKw6d$T41HG08>4W{c%%j)P$7vso&_Vq#{p?bS~c;Q60hhS z8ZqmL`jKN2r}()u!f}n>i=tdkHjQv#!Ddm?*k@)aoH~gFB+r3Lib92>u$*in4Y{9k zHnuYc z%Thp&B8lK^YoM=rt*xDv2gUrU}LJpi`Z!v*<%G z`ky||q?RAGCukyPsP}XyRMg5N8YlED2CYG6h&QKJG6DF+>=L~Aw5)rd2pICbPdnwrq3st!T?e272&*u5}N?TiJ?iK+pAywc-OxQcCdsktYHs}*u*Nfj$&P`cicMH zqyD7NrH*AQWGnk9vtrgc8)y_@DT~*qh$JLGx| zWy@}sGnU1S=RE6q&#j%<_^6WR;Oeht6UADDANx!?Pc17h=Ch+84e3aqc9{{xEu-0N zr#4S;(?TA!pb3pNP)mB$q%O6oYo)S+{NrM1y>y-P8Dz_Zy44j_w5S_>>Rju3*LhC0 zVLCl)Bg2~0vc`3xKOJgY^Lp9LZZ?yB4KG^z7}Jw7bgYRRPh~6H+1&27w@vKATddkn zBGHt#g}rEN&iXxh)%2^U4d-vmd*1XWaJXlML{BIC$b_ErokdIKZP$DL-~=x?f5RQq za&zz86fCsAw_%Y5cEuer@{j`N)BeCIqbwTr8U$es)R2vAFt|PmusV4F7ZCq z7Pt*ZwL<`@V71G)?GJf-UM9i9aAcvUWOuCD_bPYA4l=)iGTb8=Z};LxzPWu@GsN@m z7%In>-^ZK0flaU8%ERRH(5lK5xhM0fHWa6uExJ|xxOup581??>b#dxmHk64Gt|WDp z^>1>o+(S<6d{pLzcR8cWYpvk6aWdQ)<+DfyP$cXISo6UI-{XR=0Bw zpcHIi79|4-@h~|kQ63Wk2{@)u0HuK(s8uSU64T&Md~p|y&{h7iFw-!CzO@jHKokmv z6e#!*=THSx*JU|X1vJQY9f5)>(Sfp2cQ6Qq!=x49$3np*GnN4f{In3-5D!U%5;W)> zkU$hrC{Y1N8o;0uB?wR^#6!+BDP)!~5Ev99xDX`xPyVZ6gOSIBWd?dF^bjiHH4D*% z5P^lF25Lw+hwzX$Czyf-@`l^xc~62s|6n;2abpjmW2`ZV!^C_qMHGD4Q04-LLGg%r zafc6)hiGC#=0_!OD2ORYh(h=|nK+4?kc57yi7D8LDuIgFVpCpKPF`mtoB~uj_k5-G z4~WuEDnSmzkcNfli!Nar5fKy)k{3OcQ>`+ByE2DF;ewY?4M-s&1tj6uiMc2*e@u!-CR?L1$5oJr2MKV?mlwj5+42u>c`hxnHt2C?LGl!v zBor3_2~wCC?eY_+fJ5HEm=tJ)ykvZ(BQ`tvd$BZs_uwG^Vt;}umSo8ra`_Lw1Z6T2 znJ{rK$c8ms5+NofIFA`|Uviiok(kB)ftP8SEU!74G!=1t0)5Wo`Crt zrBghfnSTFq7mJuZO^Hk&l?81h8kaI|&uAGvu|C2#l)gooQnnx~a}VgjW&d{+N7t4C zgB}K2960D|J~m1a`V|!F5#kb<6xuO$@iJyv6>KnQPFbEDA`&X9H)8l5sTk;b2m~wT zArh2Ij7*qj_-;?&!TiKh$8E1jy{-z-mrL1 z0)}_;hA2CMddN9Pk+0EHZ4K8-DKVNsz^jak6pm^Zlu0ruF?IOpf=7BMs&m8Aobstw`{GlH`;j0UAu%SXw$*4S(Ib@XCpb+c3;Nn@Hma|#3ZM}P7 zjgni(d$FQ+DVl31*Fvn`qOpZUl92T$V$rxa3S>NT87tJIjp4oo0b;>C zWAQxxg>j%;OPb{IQK1H$|gQbTed1>J!HoI!Nw`!#=^0|h4y@PqsP`$O|b$$gX6p$ zbIHy_$3|-zU3@zTcNpaR$E1b&(f$Lm;@2*APd7Ga1!f8;CRC)k;b90_&ek*qIuE1sOtso^7;sj;EM0=XxG2Rd}8p;m0-#-QB9)=o$%Jj-XXQ~{)1iObH(M_@VsOG zyl-XZc|nPacjbN*uw+gdW*yp=R^-?9<1C)!&4=e1H{~_=gFXj=#jPLBKPO+ zb?QN$d9OBFt!`Zn(U;O0)JEx@j^mF9mUl+m8Q}mAT#yT%ORVfLmsLSZa8(e%F6>}> z3(P+3XHLSCvh2Yg?Eo?i|A`SEqv&&2?adB*hM?`M=@8wX!R*%Og7xRBF6-&l?xXAK zh?ef^KJVitqA()u*itDDavg4^$p0R-KBlXnaqE6$RdyTxky65am%3J~8r1wwb*5hL zd$sOZw(9Nm?&}us=sxij-|^VRJ~dsMUDj}md?W%~YZ}eTziZI{knAI9?pd~>(ppWs zNasw-8Y>-a!b;>gD!EO%)BYiV8ZYy}mV?Hv(T5%A#;xaOm8^KeaSZ3;Mc?#HnrIO= z^&F4&b*}X;cl1>T@938BSsz+ZKl6#Q_0+|Xo%i+9cJ^HFd3B!kfll`F&WlVhZOw{k z-nRjrP((%lZW>k|7;1cM)_jB3$$r8aMl_yf-**wq^3Igld5_vZpKg5;^Gc3s(wb=) z*aXTqqBee#V_}&Px_88_H|$Szz_ShpZv`a@ON+I)+S^@UxSdSnakgBN>S@q^*;wI zhOVZ&4xiFeL#x7^`@|;skq`Mb9f=Req&6=kGfVk}&k~707G&lPY#{%l4-gIn{v$|G z;K6?f2Nq=5Frh*R4;LDQD3Kz4OsW)W)R+~0 zeg)g|DOQeRxq{5u6l`0x6SGG3`t+>>M*g|HX`42UUJ$lf)7C{8B3EC;TX>P<;Z!M0 zxCC!`t8#L~t!ZdpUYf=(NLia#|6Qi+b@b%QbLkcxOFH#gf|IJ9<3Tp)P?WCaItalF zu{Snd$EMsW*ey}xyHy*tSatc)ra+}LEh`l|)W}m|-c^pBX7uOCk24R?-8N61p}i*! z%YOLw>RQuNe;?B!Zjy7I!?q4Ox%~0Wt8c&l=<6>&>+s{Qz4Nr{jT|Wck!>2<3N+2M z(ORj7LN5@hhB3#)vgkSoTx006%sArAGyl3{NjKqO3{X7q29mKNPdWpvLG+5V5w-6Y z+F(L8SYxifi}K?U!1dy?%|{W*{?jP18p)bYxa!oSvdJU?MDo5VwVP_nC|k5rzw*E| zQb4N6BRCl1VM&gHld2-}@8Iv*JY1P_yO?(Js19$*dqoc=_iZ z3x&hbp%p({R5|S+GO;5^)%Yk!N&{{4$I@a1GEL&#;^;<&a{P-`JtKp$Kh78vaVQ^^ z%rZGATXi)|LEWtM%<&%c^Uf`q>{3kJ>=ZLeJ7??>*{>Ajv&`F=HOs0vtL;0>9WS3XI)7Onn zcDG%wmK7P@!2}j|$pvGk(cYoeE!b!_2i#X_mLZ$BW|)O8xazKmF6dE%JpA`Rl&t>8 zL&~mJOWId~?1=0t9s;@ThizT;#Z|5CQBN5k%C)haIi7fK>pTSUU8NJ`8SIuTmD%th z*Gqb6t)UhTTBA`G`D6ph1(d+J_kFj#wVu6J^Q9g4+h=T*be!;}>7+W}U=_!FX3|+# z9rZ#%bJQCz2+HdphZX8=8eN+;jgc*oh;74CFB-mh{z|_XaDg0UCqhONzUQmw8*{qx z5~)Xs;)1#t5AXiE6B=GKZp~M>XO9zt#0$Xwfux#ApF&aM$BR9D^29MHYp2>$0TUOk zzLo2201Vv$uM)cjatdBJF%Yop&RN5K;2UopHLLUfAocYh6y5VxaS)XWzZlf zY6xO9bHr&R@rGz%i2H=)kjtb*iT~&qL;5l)hj{T@IKd)fw8%x3REQ#BeowOdHTpU&4Wf`sq+oQIy)mHo=!^yi!v>AtIHA)=U4)`C)da?7Zq15hbmk4w*bp_Yu_M6D;u!y72w*rf z99h`qL-zL?Ko;^>iVWb(C|N5%;wd~&D`WvJXC(X_?4HuooFeJzNmbr%X8^s~A@yj< z=cFs32X$Z~Q+UGTBv5kmx>6r0YDz@f&5ry$-DPq}IStMX5$Hh&7%DRj5NHYEg}PRHP_ z{?Y1Iz539vCe^1uJ>ToXdRDZiRjq4fYg^rlQ{nOAFGlUnT*F$|mFkRics(m$-|AG7 z{?(I1)fOrRdsxIKR^1y4>idsR@9QK^Wl^@dBs9r>w*hnWeeBXwpeB|Lp)KoA@dlB zU?vER5ffE4s#viQZiv?^>{=<4Sj$myGL(&s84gz`&N$t3m+4I9IoY`(d+u{nFLUE5 zBl^5^p6#KF{MqXwA{PX42Q?W3iNj0-9uX=tFW5nWVKj`4)$m51Q<9@RclFD{*s-O( zcL7I5(S|%$vq~bJX?Jk?AJ@fnUp8GnPlH<2mmsyNQ?kA(lldPiaPIyz($Tw4)AGo3 zV#F{uG!1Y3x*!+0WnZ$r%Uky)*9bE64IKvK@rHXE<8BBeoO_Nc09nLAL=1@3&2EOc z8!_4@*R&bJZCrkvA&#PVGV|SReisB1&DKUdbWL!2E1JL`!mf|??Q2~V#5EVM@4^w& za9yLj$jnB}vw_VRNsBw<)d9G-;n7Zr2T|hSBy!5vo$;8<*LyjycVl>+>4X!+<1uzP zHn9!2op8q3+!XG;SHA3Ko4nocj(2@I9`qdDP}xFfc+uxX^1ett*;U~9aW8%jFUXte z0A7qF8j`~Yg<9vGK1Zg#!G&v|G$@>L*uuz2=HA>RzyTJV_x^el4pJk%*2ivp5aGTU zx%ZszcE>vo-<*;h|073H)qKIvP2?#vdM8;ABAWMm!^e|D5{|$8kPF_I&(Hnjt4Do1 zfk^MA5A5~!ZhY+-LhK-JJ*If3IlWKH^S;m$_*zGL=W$;U&n6*!0s&-^-qlHti9kcd(TE_`84fkX6rm=(C?7(dRumBA9l*u{*fG7JlE5-2mwL35y8(O!BTl1 z6zmHXWWn|$uU5N3f&ikqVx^-qL1`mC=Gu^R;Is{xpYj0)`Vl&c>oknBpTui2K(jT_ z1GX^)!qB^(f2g(yEQ>nZuMaH4CnPm!+Wtvq)Y%Icpl8jP$Y0n?GOFK;Z+)v3tbo&*$t9Dr3$sTUWP?BJ$Uo~X znT*M5I4KnIMx&$2^h?9|(>pdpNrAMpL2qVq##OmWc7U8?oXhDHw zj7#u_VrZDlXdbKjlyb{R6QmTjv9bOobhXgqMxoS3y!;HkRLJ;atE4 ztgahmO_Jmy-9)q{<4x~0!y0qKIBP~A3(wSo9=bfo$lT6%q)bt>%oL*x@oE8H5IkOp zs#72{&M3n0n+B`IL4wf1AoxeeBu>a2FaGp2{}dGfoxT!$%(m1K@?=V1B&QHmP0!@W zC zj88|LPYP_!DHBuBBF_xV(7gOlC6qvK_<~#DM;2^>Z4|?Z^EuF)gy{@C;#30)Wl;;g z$1XL&J>}3oos-RbQ}YzjD3wtcowsvff>69jEHy)<%&-xqPbr{JAiRZ-nlrwlY?WmRlC$^8sNhY(gI zBp3U{JS{8JCq2^-{!LG2P0AIu)^EMZO{GUIMN@G7y;bEbJdI4h>rZa7RK7$`d8h_a z`LbdFv-qMnQOU0y0lWh3#l5IkyNuL>jnER5*UG$91j$t0Bg%;61qF@66mvxPt5H(b z*miB!EB(l4?L3}LQE|;!5G6?%Z7I*}%vxo_l#L3R{8e%h9361juzXo)h1s3Vs}DoV zu%wg`4azEPSw#uja2-;UEeQ0SI6KuqF@?*7^*5j0LkT@ub*)Jv)yAfUNQqTTUaVT* z@r}&HO4X9f=}D1UM7!89Cx+!ygY^(?SjTD51`vTuHw&;Ffe;9dKkBrINgzhT~APQBDQ-M6h42QV@Yb-TMMOfF=Qb^t0Pt`^W?6r<1 zNxRwr(DgUoq6g(62o)%XPW;R%z1+;@Fh@CE?quD9cwJ6wE-z?ZDMY{9l`wK~6nH4t z)otBngI$m1DlY_HYXra#BSukd8>0;h#@)o)b%^2BxP>fL-NW7RCEm1!HbuqB=he9A zU8#4{)}_nV&-FLz&0M$vB8MSeI7;5#W!`9QKHr62jDyrN2p&E^9~Q1EHcbQ!zAT+iG%mfIg~%T6EvPLm2DZ_~&;cHPC2Fcv6qduaB+gPv z(9?nP`jwmga{4?F^Jj}rDd0M;F~Xs+axaOUoW<~{S~S`NC;UFE2A1O7P@b?IY%6A~OK5n2=A30`mwUSQO^Jxs z=su%pV_LzA?d5SaSltpdKWk~1erf$u>Af;xG~C*@V(GS0NO{FAoF=ZGhH0PgD=ru5N3$W-_+^Ep%2}!9r(aa?`iYYrWoUzV2(k{%gPvY{4FE{=zQo%Oq>T z_O8QHZ1-Yp!zM1vO0LLWtI2k(z}hLtc3y0TuCy{Us&1>y-YLuii_pHQF`g-7_Ryp* z?W6MS)T->-`k<7#Y@~widBQ5QvMD@*snD`*@I>sf?pw5SZO~$E-HvSIW~tM*uOHUE z)kf^rZqUz8EZ>$b+2*L~=BeyfA+jQ@|H19f+U_j#$qB=2uaf2EqV3wAOD|TG)TYSh zUMut#E%ElPiQ;Xls&CO&Z@p^kxW-=38FC(Fc0tkECmk`{WcQ{Pu2)u zSI(Moqq^02%I(`8t_}aI7|(F9$|*Z~Yu+HTUC}Ncs*Nf-BSMB0gwwTyuiv#hu}DHo-K@Hm11xr<n6mKX7Veh$_EFNuxB~J0m<7?vL&#db#c<*(^`j5{BxT3-9v=`SI@dA6ajl zi>fHYIv7H_?NgE{iqa%V%AnaMa7J1VS|yKZm@Ah$06dxGJKh2^21Y z`tyEwyJzwYk?;hEm{SM$@_olo&uruEasXm$2rv@}4{36E2OEQL2!t;Py(@M{N_U;Q zc!oGp)qA^La+H)GSztXhgy9I!t|WN65rQ#t*MI_;`JTR7X}d^Qeu>#!7Aeieudf= zqM!byshLlDA=oLIs9Al+iKhmli~NcV29^k}AIs19cO3~Dh3yDmRey!I^>nv!txf-! zi6*N|3l}q#o~*FAN=<;6hUOnZ2bZRi2cD&f{XuqEwZ{>Se z^5oK`D>ojT*lyI*S)*n~c~$1EX}*8^?kUi+T#yhc-gNj64P~w;do!PC5%_PBs=+cm zIL#Y8CRt}b2CG}^?T}Il;+8nndfSwVwR2~ZdiF>29@&5W+MKt*jOm{*r;{hs+#^UdT-X75 zrID5$$r+1A#zf(2F#YG0Zb3Q#5_Q!nq-Jzn7UbYg1bX(Si%seGkD6;PNE((7FapeP z-eeKPQ~l9c)p087X zIFOnnS+^=y5r$VKr(0Qg8dSV2$)$c(?)n==!JT(%TLETtCYU{j*5rynYKo$tGO}i) zW;ar)nUc)fwXBLc3fcbGYe-59?QE_=sil)$GOFvgn_-*cm|613EV_Apxo((_&f8I$ zsIEn-TeyA-CqqMd^Tk?TL1)@*Z>qIuug_B3lnTT6b`QgdT8rnvDc+jiLXw)fu#*>O z9PL)O66C3uD zzT8IZY|QVX=&ZYeUF&UzMYcO}w^L7y=G8ooD>R1SUUqM@QA#`Iv{JqpF49TLt@7AD z&Zr~VpeFUFzmT#;Y0R>Qb;>_2naz~q+Ek;ljVl$^WK{t+g}B&5=2ezU4p44r$2yHS zG0Td{S+aZjdj5{JR;RoCX6U-|MIy}-Ye&;R0~S>kqMEP9yGsi}4fe`46TF=3PsaQ! zYMR&ebi+&^7w_^~&#gCV*!TTeqDYVa_PQKe-&x}ht6L?sS#zB(-R>W~J^b#*zxmpu z;!QR9VQ)?LLShOIa6G8knd+h)dLV%!DkugN6m$;xoJ0j)K+{lsVfdpA#1G$F?V0b}<8)(JiK9@o7L~w$n``Bhg)~J7+!wUmMe(>QHY+gh{QBixb$(ZZP>XVB8}It zS}o0d##>(fD#^U?eQiHPYM=jbG)YUYhIU?S*C8qPKEIVRl4XNeTtFGXIkHWa{|gm$ z{!u-S;3h5wyvu;rw5SI45IFzP*kLTfIKlK%n8XxM!6=eU;M}s27(}B+yg?I&Br}+F znqeUsW5cs(V^}01&NJCakP1@An%|-i?4J0kg?K_i36h+^L?s{}5(FN%Ko&ue2po3E z;%2}Ur!A%C&))#_W}bZGd5|-}wkR}jZ+Vc0>?uolj^sEZ+NbR#5>Iiq(PrJm(f8*5 z)*|zbl6&iu(CFk>F-4AVOQYPDCe@a2xl zlQ5&nkXr#PC4OPVFwnRic&`nZ-zt%ESyF-uy9gMXu~)E2!|Lb(pIj*!>j8IO*>6e#f7AmuJyE2Mf~Xv zEEG=@X!J%9BLt|bk`=3h(d>3Q8_^CjR4WgCPDEcMS6e3bGtS$dT-8c5W3jf45&`UQ z2-~6FjFhBj>)T0DdQp|yv}>KT+#D%Mzx|;$TiO$4N@HZd#bz&VMQZ7D3&OW;sDvwQ;Ru&YzZc#xhvCcM4ud$vA|5e`Mf_p@YNt;mKJk6! zTjCen7pX4IDU54uVh!6k$2#6Ik88~0`)Vh)CH`@JUEJd%cZtU6MKY5UOynj*Im%L= zGL@@rGj)y3(57G^ac5 z>GaYoZjca^Z?q8)#jb=;J-NUp0((^@M(t8z{70(S#NJQiI@h}1^`Wz*GV-GbJ!AON@7?wv{IIfkIJkTZhwl}{) zj`Ex1Jm&zvc-&g&aGFc6kPi>J&WmpJqx1UWb}OO^k=Q$7{*z>QL$p~JFMvdK{(R&( z3nEUC?)9&OJ<&=Z4LYG2(%r3zCcyTFt9v(ev{UEoVV^tQ>n`W9@940h?RG|Z>l@z^ zWD-_QYzV;UcA9&{?|dz+-5c-t$3s5ylAk=~D{uMBV?Ohm-#q6#@A=PzKJ=m=J?Tqt z`qQI6^{QVz&U455UaS1|vPZP*-yC~To7c?bRq*XG(|agCdB(x_^6ufC``K%y_HO=t zeq~%{rSd+&%~x`jhwppmFaP*fhW_=fk9^=uKgP_T^1LiO{=1)l#(DNWjLR>4_V0K{ z#5FFy&Xt$9U%2>=!T*sH!+-a}ACs|IzO+~R>E8VQ5ZI3eU~@%Z`1RlIxu2NHU;T;K zs0fMwAzp`t8jAcMk71zJ(bob#paXu=?-}6pA)v*@o(L|Pfw3TnDc}ia*mrFpl2{L= zWSs5%gRK37keLLlxf*vE3R6T@VyOzB^hpge#KIATsd<$|Fv33|78E>%ZsZ`%INL*c z#25L75f;R-eMk~6p`bM3sliKZEL^Fb8jS(rTm8enSs|%qM6fww1)f;(1){y^VRG5cAI6g1XkYggBK_T=_|#M)7NQ|;(gcPJA`Vp~ z?oE_n;vhb@nWFEN8x^8kMu^o!Fyk>rSEjMnEPl?sT}Wk$4xHrMzUgEWnNvX=1$#V)QxQ*Z(3?aer0=i+3F1uw zttNpC&j+fc8!^W9=%I7*96R=l>W&aqbL$;-IYF9n>3UO*ryopzHE{jk- zCtyYrku~CU>J4{>4fz-%egUUmlI089&tL*oNx_J+R8%fH#i$L-qBsw3Dh7fGOXV1Z z!Bvzoa@Wv36{HXb$wZZ1{&5X_bO%svi-8^-fWaq4NY!de41K;=JEowoA>;*i;zUN| z4Bkm#0vJo3jraJ?c46OgQVH(qBPZ_Tgd*39>JR-zr-ovmcB-f+YGOj(VLvKlcXlO* zmeNB?({#S&4YDVh&{8c~hjNHhA#se5U}j=6M8*-y5Pk@MUJd@)5P1kFrGTiE7D|YU zij z2C2oc95Insil6>u@)+&9u2XorzCmnxBlkcfNKas zDFuosn3AbmP=?|Nqx1c$XKpCOy~|)qX6SqmmcFV(#Y8*-rL3mqIT6Ke4(Dn3+%?ur zqt&aLPFG%L>v#(4(nMgg4r_Qe-#Q-WT*~H)PN@E@C2V*Y0y0<0YHYLqsgjNCo{}td zQEa|~$;DD9yQb@P)@gmU=#PSExvr*B>X8C55NlN(3t`lmKy777E!a>7(|Lu{jVZ$IlQ3G{c68KugiF&_ zgm0c~{M3|dnvxskt=y)a-@o<`U^< zT4tz>aHze+tWZhrStgR=vSpGLrfg2@LaFPu1|%eHkKA$%u#r`ztX()IQ7zUIF=Yho zTIt?SZ8e2eHvI-Y5gokX)jxz&7}7&2eN-44V+HvxB@)pq!YztGql41!;jPYW=&nya zs(0<8DI)6k3gkdWEc1}-n_g%@`svivBjW1lV7@Q)ofN@!FU&@2`ii3A+Nk@YSNB>g zx&E+e_>M37mT&h#VgT-}VsaN|xNgN1p$v8H;6Xv*wGb47)>Tnq;fjo@|R1RI{zdFo}fFyoP@{^en# z#%WQtF9|X#64#}08KfN|>%^Yo^a1e9He}f>u;;Fz`+Va19vU?qu|HVmyty)8-HJqndcl6S{;Wh`nmCZ!Ldy3u^kWDUjj0_$)Nq#86Gq2 zv*{%w4>E!ca3gCPBNwpk6|%JSaZLR&B*WkrYjP)h@+X6GD2wtalX5AW@+qTo{wk~T zDzoyORk0Myu^~&>g86YQn`ji%av5iGEAukNxu}nd;2HBTFk50JZ}B7Vr7rJsFEjJM z!SDVd-ZSfky6vye{wyG!wp6mWwlg@x zbFPW=ThJk~I7P-8A!nrFG&mvDxhIcyD1WK5f3b5mPqM_ub3%vnE90WAP0A&_;)B9n z-1)OZ`{i!#*FfiTcDA#)+Ok4}G_-Lt!35V(B#YwUF1BeKw^?POZmZ7L@;X;%M=xqf z+w?+@v`45LWFE}H!X{jtvv+#)=7Q{fc{D*U>PO%7Qb#i3#!aRnh&JK=6G12_N#`ck zymac0*E=sVS9`QlGj&))T90B#rWu>C5RI6&G!*BhF~>AgH?BeFF}I3!T~}Jmj>Ig(HXjuvT3#cVv~qfmRG} z#df1_{+^Np25@s9BKUG&b(i;`7V~w>cc<0yVHdR{bG0nb_kR9+U4G{`x>neKUmt%H zIM~&XGLqgkTva{A#h zG6$N67nq6z>5<4Z8nbvV^RkE^;4v$;iTgK04_b^17?1b3zT`NJgZPhIHiidw#k{yy zuQBrZc#_+xldsv3gPDqAwK)Pd)`pn1a$u{@R|m#l`2Fva$97?F+OqzQU~d=|7kQ7c znUqiY%ARj|!#2d;SclS>munZE=a`0t`HE+;X4CbK8>Y8tbpD~ajH_9b8}&Of`suEx zRpj7P@E`~~01$>2m4@)%9ie-IBNH008Q!xLYI;guq5eEAh><458ug%JG2@ybMMLd# zKWj6s35zzN=B4D5R>V4}gU(h24i_KrE3q8yC(%p5 zZW?X6MXP)D4$JQXqhJZ6qPY94odugTg-r~Dsfc7fzq&K=i8Kn$O2EoPSEZSP+`V6u z;%LRMGw!qtJH4p4j^k~kkK-6eZceu~K^{B#hC9mxssUeO70YP4gS-Im;ZcjM&3AmX zH|qNmGqNlD%AUKSBPesjH~&J^R8A9#WTaPc{^b9Bq!&Tu)RtsL(4@oAUIsRi8B%*^$8@<6}@(`j%G$A3Pq-gPC%!na)k>hcZrp=3p zs@X)T@Sw|yBMq92DOBb~pjCuw)J zVJ9cel67Riu|Z#EY`QPeMssU0${K5pHvT|65INiEyRR_wUW<^y|LPMEL&+r6%r?9_ z)Nn)PE=v%x;s`{p!N8INP(lCpDzQKpU7L}{3GHh!M#reT53=-J^06)lPMPK$CZe-W zB@-93E=LK4Qel{l?n!B(m3G{U$*Z>0uBPk=;>o9nfV2uqDK}ivx1g#6uR?;#oaUYx zAH4BK7;Qw+NfiC*LKvoyowkvm>NEO5+-hE$`?iG~GfPtq8jEYeCtgiX~m z#|`zx)fA=i#C9{)G(#2_JNDZ1ChgYHeb1~nEj>Zau)=jg40h6T`TbX4aal#p-+|Me zIKPBjB~fDEMvI6jdXSh%g<_!aZ5nR>xuBJQyjdwCo`|d}BNe>3Y)E>*-Qe8V5CO)E zkC9E8SeJ`LPiDQ6O={VHbUSC}ey^>*BE!l@N_^L>N7c<{Xi3_Wl}8&ACP$Ty{!bye40@YP3SW%KiA*HhDW z=d}5UYlm|0Xv&y=-^j{@U5;sGvU2BLN~3=bD{0+!zlfe2Jt+uk;{I`Yx8w(e?Rw@3 zYRLEXR2Gi=r@Y5#c9{|E;bJm`QRvWJKhK_U&8m?F7-aU(=Ti4$Mwg^P^QhigIOG{QJKe}T|&p9^6E z2gSe*Dv6KZlTia#HOK~j=vEVqmjMs>M?%hvf*AzlALAD{KQ_!!40_}S6RF8fmMVjX zvY`A%SW3Q`5|ydUq$;WC9#*~*ma&xOENNLwTiz0vC}bTXNtsJs`tokQ1ZL|VH%wa= zbA(AV<}#VtOlLk5n$d)pFvEpOY5L8X*p!zvQHe}$n$nxCQ|33xSx$4F6P@X7m;y=o z!PQ0nvy;OtpgYysM|Re8m(*n4IPuv}fBqAo0Zmmn1zIuHF*BY8Rp>$)+E9l+6rvH8 z=tL=6QHx#_qZ!rcMmgG1kBX3>9|fsCV;NG5n)H<@73oS@+ESMCQj)h!s5w=t%9@(- zo{em0PA6#7M=s2zK^5vyKMKm99`mR)B`GX#x~Qd|sz%goszDFhQ=(oKt6A-+abq1UWgtnOd@bRgLGnuGLx5e%Ah} za=YxjE(M{VF4DA#tm{Z}Ap5&t*=m|7uksMWx&;z204#veq6>>L}XwE8Pb3j^{Ct0VjTY#%|PZWh9hj>OUsqW zSMG48;e5w4uQ+FQOZ6{zjq6Fz`qn9~HK<8lY-6icVdDku-U=)#(+Qi;=$f>mbuH!k zF|2Zs3ul}8o8BTnYLC=rHhK}8YZhC0)r@-)BePw)W4{~T=l*1u4SC#odzs!iZ8Zqr z+vr~ZxRU(7E2VvVV1fIVzmWs@n+a~C*}Axc{Vf$7yH=BUUsve9qs=h3d=aU zc2hpfWbk%-DdC=WyWjnmbLY}-*v=S!?)@o!r={LU$P>XAoA4quJl+}KcvU7|H-Tr( z-}lWYq`V$4 z%~E}pY9IUO^&a?6zrZGhSQKz=uREjv)$pfRlIU>hB4N7zkxDMZ{1;YDX@;mVgU!RIf$q7p2C&v5C3fFB8Fr=rh)wga3Q8B z_)gHl)Q=$Z2=Hts{BY4%0I@axa2W*=9lwi7Nbg%DBv~AS@~988tV1`* z2O>sd1Yb`TtL6Co&{>-kt#LPm6DPs zcx5EGMIxOtEM(6Z>o6<-ktx&g_@=@rPV(@S?<%cm1E~`ETuJt15-LUST=(@3PnCkb;B z5Az>@b2oqGDC<%zSMM%aqc=+i{x;bUIR_FZ3-T_GieI6^1Kr)8I&=^bBg8;HEEL|?NHC-gs@`{fmI5PXR6g)H3O9^6l;NdjKb2ZY(Ir@$bO>soWH2bCj zR5wCYFQR?Qv`dR}Pk&XUW@sa92!}!x8x3?$U8wtRNdCYuQCUJB^+H(3uUJ2VChmcS z(uj*BwMf~hD6VleGy+-WQY@#HSerE^XT(#<0gJTNibxehnejS*h9s~+E4@TLuL6!J zP$s;!jA(OS$yF}fm5!XzD(0w;!nFhg7FZkBVb4h*Yb#mSZJK zV-xFRJ62>zHlY4ORJ<#@^uk;6>6^*YgbBYXM}2hlW8FdqMSC^ zh)L_R)@;3NYw>haN%CvQcA>;}8>}^lLIfLfb9I+E<04uUF)F}Dcq1j}6wP^;?ce-O!j@{s zk_~mww|e9Ea@~_VskA`)^E+}-FADT5_L0%(jkjbiZdFdrbP4K!tlk>MxNJ{;8`yg3 zS0{4!A@EmBg3>FtrGKXb%-DBv$#;Y8EYd;_(h`@v6qkV=7=d7>w5-2aE@qh<)}cay3;aRf$Kig7ud#vZx@~K^Ah5bW=;i92bZQ zIHn?G;XY13I(UCP_<#wSl(m)@u=NVJX!N$mAna9<2eS`>Qh&cf6Q0N$Y=%~(#&AS(%O2iwv@V-AOKpSFIt|sIgnEYqW!6(BUGaPM~I?9 z6rnNNqmQSf{hc(1Ue6w*CF1@=DRPQRGF{)) zG1tRdG-4#J!nr{kCE1g;7czUH8ylG`9RLN(<>ysg5a0sQ>lQ$Vfa!=Jk}OT2!|`z_BK6ceB@{Ts+hoI3>EQiYuL0-U@RJSJcqL7Vi!ZJf%Z3de|CLNJ&| z^wVoi(z`vh8m#5IyY#=?(?q2lKJj9?wfp=|)FF|Wp9NOL*Z$Utk8h-_9M4y&+XP2e zgo141;%tnxMWeK|izFf3G$!m6XDZ`NvxaTJWlawqwFg|zGmvS<*gO^eYS5Hky?ip| z)M?0gA;2@WZF(Zk{mY-+%n4SN4;EAtw%vi6^-$Sem4cO<5&WP$DQejua5>wz z9pOohpc9_qU3TFc9^zB>;Uk{nIdH>6 zUggW_!wKzeHJYI{dgf!k=2uOia{ijLc#3zPtHn>>Q8hC$!stil zGLk6V$!`y_r@K2&c6(Xpf_ZSTUhB2q>T`?as-Ebpya+X1+4*uPeqD*qTGvIFt!sTa z+~ccTw}a+B)>)3!?ZJ^v&kY`PDg+z z$9PXnkK#*@e7JaHPT71d^8en(0ea10`=FIO%=@uzvf}ZjScJ{Y=lS@GLD=Vi?ZvcB z$aLQGyBWVRoVkxM_ose*ZY5jpc=d-l_Jx1`i;aq;+&k|5=jCs|lrP-(Q55=J$sV;U z_-ok8Q@8eW81|$09)#LeK>p8nYVEx-Hk82mM^kj9_< zYh1>$+-rR_EW8{b90=TS%UczJ0{fFh*r_Y~2g9;r=w5ZXeNRuiRdTH7;dPp3q zCnyYSn*;s{K31MB#>iUK%ny^)$#pmnUC(Tu756!;g1G!ezPfWnP$k z=U&|FF>p(}ds)U^EEn<8$B-jSo=pC^vgON|Gi%<=`JX4Jpq*l!c(n?|&!I(|?syNc zKu-#tDn#S@Zp_4TJK83>`!>mnyn7o4Y*+Zr-nfe+U-`GQ^XJf`OP@}?y7lXj84ar@ z8lIPmrAKP#KFynVlwUJy(gr%57{$9O#-F+TVST_TgU^?5JNa;#`w{0?fcEu=-GK-u zsNjMOHt67kD22caIXplZ-ES6VsNsejcIe@UAZEyj7eOfW89OD0Xc>kow&>!EFvck3 zj2vne8X7b{#$t{<_UPk}Kn5u!MdLYj&UZr&wPTV@HtFP(P(~@`lvGw}<&{`wspXbj zcIoApV1_B?W?JF+U|7?bIsWFFY_{p9M6W`k(X3Fn=7=BekNk(CKyoqPr==%9oa zYUrVeCaUP7;i=eYh>tER>7Z>vtF6i^q$_B> z{@RkM(Ef@VXrskiY_t#sOYT3@rdI8z?6&K!bXRdfo}3O{GOudO@?tBB4}BY&8V;qK zY=txVOKQKiP6Mz*@!o4DvY@TY>@eyQjBdiyRBJH3G})V4xSoByTD|v{H*(0fE_`vq z>%Qyq%P>bqkdak|{$*xZ-XOUFTlXvr42jlOQ!Se3e6;~2NHSc|$uwPsg+muWk{;1U zBmL0K(-aL>HFo~Pti@jI+ZM3;_I&lyRu%NLs#4R0v(7w&hqgm+n-#Z0RGVe>*&xU4 z_uqgIHS;~NN^30L)$p5kxNIqI(WY3ZrufWkSk!poq}?(N;U#_j5VCVNwJzkESDq7F zbB5(O-zTH~km@O3Uecz4*KYgmD3Olwy4Qlc+RR;N-nUtr?+dF|=9P8!;g8SVk>~lY z8`kK~Lxem$$~Rp+wO}h9ZsZmJ1AOk)<8J=>=Whxz_r%*e8tCK?PZPK0WsxHM9nt>z zgkVFDx6okz(;xl3VZWKIFMPrq*#QR@Hs&=?e&~y!1Ybrv2r7gvWGPXj#y7k2;Y0-# z+g$sC$GQmdZ-3GQU_+-R0K-q0fcYv7R-G6{|ujvgsG3*PQ%7Cmy&B4gyr zKfJQIlSQ(OU*V(p{0I@YAkr*g45cUorN51t%tRk+mEueZMO3E7h7&>4$L7S!KUO4= z$ZGx-Xy`$ajoqwdY^;eX<#(xJj;xlau@x*w$;@VQDTd~f<0Qy~st`QOapuz2Ki1P8 zG0+4O+v$$BvS~|-;BrDbSmQLpu{Mfu(<$z82sp_jteZqrZo|80tim}fcj_{p&J3tP z2g;d1TF0OSO{hW_`XGcpXGAGF(IXj3(TZC1ISzG>jShCvj(YT?mdR*mWHm^Tn)IY7 zO{q#(%F>p)^rbMpP;O|nq@K+5P&MVrO=HT_PW|RShuNusZZnyj>XfL6GU`r*+S8^g z>Zb(Ck5GXs8Kt7ns!q+SGqEZdsUlUYU=8a^xr(2lepReOAuC$fN-45hRjq8T3;t8% zO4lFN2dWym4^;`noRA3TKP-x>ZW<#Is_s=MfAvpH;=|R%`js()^=fkpGoa<@)i{bh z>tN?v*Un-mv3h|EWglxG{ty+ke;p2nFbkm5=9NI8^+{?+tDM+Mwm+n;&0+fzAl42Q zviiBJZClG(&l-0+wdJc`k~@(l;Z?VkEh}@TD_yhlB{$FQs!j7!+k|v?x6S3QcUAJ; z>Pl9$g$b>IU=m*6h}X56C2o9=OW)6u_r7Nh>`rsaTwq=!Nm`F z``X?CL$|B5HE)69J6Qow___eDuZDAU*#Y-;rp^WNd=gAu+BSBvU)67E{Lm4N@DH8b;CejkZm!N+Z8Lf!5{9ggoC@_>8dy|!(D2PeO%Zo ztHr=iM(~ttVp*p0IKxN&agfJsUn@g7#)*+}h~W!k8!s8mQob@^32SDctLa=L*+7Z*HLMw9Yf)d= z&3!(OrBBW5Nq3mdKwa~hQ|sGeXO`B|PI9gPyye&uInSF`^{^fOEZ1jG_RB98Y?D>p z>~=>6$7&vKwzW;|84DP$HC=6#x!qz`C%D(=z4y3}Y+Ze?7~QMh_Gqzs7q7U+o1O6~b$sI>C-cXnH1d#}{NyN4xyo10@|GuQNdwr!9tPlYiw>Y4 z{a7YU58#iSPwD19N03?tG4oJ+B<4l;YRw^(hkkVLAx+nLPn!O8%>Z5MH<<&@w~qCt zP`xu+-+Is;#PhLN=j)QWdV+?YbZY|!=`>gRLk>W6nFHbgqdb7j@eZOABtsd>SjGz` zI)Y>@qXtUhxf?nXb)+ahI%*$E*tx!$$Aew$W@k{@yN>=D%cmXZoZk%F_SalmPf(lUrffoa2(E?QmgMo*5j^_`H z$9TaP6rRT;#itoR_#8nfCBR2RIWdGV0)NqWfc^oHo2LOF{XNB`eeGKRTaQB7L7Z@_<0Ly512cQu#$9ICjg+%v-Epd!?h<|Pv zhp$(R|3HlA$9#N;bPWiHeVC4Kc#d)y{(dq?dcatWb*SCl?L4nJl3^MqFshEil0fQF!Ih2@@3bBdeb9*t6NG0%z9Y_&{CxaN7J0nN| zs)!Uf*EI(a2RNq>Rls|3D3dt%2I*0DPp69$@sb622R)aQ>7jLCgNy%ggfU5Z4xyAd zId+qWb5(Z$Lb-K1=@3Tw5J=gSJ-C!aIT1+klyTrqSm|_L83)?r5I_kLNg$SRkSYg| z2T%D1g);~G5CnJ74~sVdJ!d9H*_K~f5nI`ZbD5SF@s~Jxl@Q^SOsNoIxpiX+5dnaC z{Xj!r*$;|2cU2jf|Il=lDU}cY0hl-!2XAQ+YZ;nuS(HvEnwiO!RdAVV5|vH|5k`5I z+TxY^AO<#B64Qth?08{Y=m6K~8fqAQamRf7hjjlpf6`}-GuM6^AqeglbHjL!@@Nru zc%94%5vVs2zxfamc!$<`j^0;}EpdPM2%c0}5!p$e6akP5af}d{biGLt@~NKMw|aQz zkOnk@Bd9^h00SO*k;=f4$1;M3_lO<|gBA%9FgTGZ`46C211(sRB{88b7>Y$<2Y2a! zLy386!k3geGEKLG4#9J8AebHc5R*xnCYqI8X(zxZ1|Mp6Gg_muiFr@gqL}xhvl*j; z8GIs&c_+i8V&|hzfO-BaN)a52IY!!;{~(+Fu%veRlr%b%C8Bj=K$)(%l|w3aNO+k2 zu%$Y>m}82g4)LToXQKb0rcCptTUVr?X`-I_nHHm_u$Yufst|aZqhu;}-E*U2m!p76 zoBfcaVz;MdN10fMj56_^84+_dmwm4BdUw}{b$6V57lBUbo)>YA=D3A;hjiOWhv4Xs zuP2VYS#-{*s@18EklKZNppMRXow3>xcg@p|${5t8~3t@@tJsfA-0kpAb7>{+Y` znTQ0)pA(1-F#v-eSa>rqpf6aUq8OkInj)K6p{6(yg=c{knu4In0~uNaBe0Q}bCMsa zp+j++T&WLLLH?DX7l%DZmYs>2YB{Bavzz;BCuJwE4v_@-3Zn{vl)yKo^XdWvv7<1IOe$54{Y#5vYS*r8btXw#Su4)l>8;8TXopBg}jCiZO>YcMntS2hD z0f~lR{-~>i+Y*i2hmU)Q3+brk*?^T>h35HvyNasH+7c8P1L3NIBxtP?ime(60~I=v zn+TDv_<_q11el0;{|S+u2zVCRf*Ed2>Cvr~d$SV8eU6$#Y9ei`e@}O$rfB zC%q3Lu?P#c76E)9TM`nRui#sjN13sicfJ0wqTk!EP%E|=8>ZcBre;7BJ{hG}dvhIn zvt~!VO!~fNx4m3RnJcPwb3(vedA{Duudm3nW_mL4E58z468)>cGLgSyyT28|zz^ZT z7z@E-+CBEmwIf5q`HFS<_^6j#AbN+otfv$CZe@ ztEj{K?BK%G(^irL5E;?9C*Elv28NteknS z?7!_BJRa}2>r0qo_t$89w#IzFEs?&ctR_Gm&gF-!9YMG9%zkQNx;WgxFj z03RWp@wt4#xX;*GhMzl*c+_sg3nFIDHw@2?XDd$2PR6d8m~1$%Wn3P0h54UCQvy)lB`%^R3@?{mSy4%sPhzZ_Bga3k50C zzjle%?aj4oZP?k&-^Z*Iay_>AtJTU(;TSH;dp*h)A>cXrlW^;p1MbNu`rr{x%H90m z`O2o0+!FAp+Qlf1Z3uo20NfFgy6(Kgfa}AZJ-9I;#N`=x{;zj{;R(4~JL8KR*{kiu z?rFx_3EStWxz+i)0I8fzeB_W#ta>}bGS|fBxaEvX+|L8YDmc@4{17DlfgH)8hDR_A zx{A?#yDyLoC|Qv>_@Fdxc#ovWL-EyVdf`Rb*kzo}yr`AyJHKMO!u6Wr^oXef&UH>d>$0C+=o54 zgQ96BK-b6)fdpdkD;>+~}Ti^AW7xPe^;yPb;ZcrjIYwX9) zx${|!GrSv>>i~n;e3*T@)@~m^OssdI?R5SK2ysVubJ&J>m&6l+^Ul!`9q#t$ zo}{YAoXh!fE345L@1nb&tlxg(DduYI(YHkA06&R0U6P}yk&?)X-97ObNXUA8tsGeV zq|uUnuIqI=lXqQSq(_hi=k$xCkz>S^9AENyc=MpZmId=v z)OV+3&6)=U?LoRn&;gDB_5gTz^!|VYs#X6v74(m)Q>20%934<_51@hro;vskXb(pR zNYNg2Th)Qu0dEZgP&+m&+@yW?FqN7TtJt+f4?2Zf^C(h4Vfh+{OqiqDzXuQGWgIqe zQ>6v*Cf!?8ZD@{0`!3};IT)%6|W2?)>41=E7f~tjT;?4cFZd4j4)_z{)p4e)jx#;Lgf^Z^Wb&xN&m$qU#sF zfpYMtLXbQm4m6CW$aE^rK85hpZ=wF^+lj%D3~cYcgOG?xp*SRTsUMsS^3Ndf(Bmix z2oXFe3G(ub>7;+=P!T+b{{9gNrjF!>;D#CPGZ@&dMTye)Gw_J1U%+}C!=Umdq9nVc^ z-9p<%6JC4o#W!F6efQfD zu%#OW*;}m%=~>?kv@XPKz4zvOSv50NJJP@ZyU5MJ*+e^Ks$3hq&8Pi|TI$7TdN|R> z*#u?lx+C2{6jC$`N*PtWvnh~L&!^)d^0ob@*oKfFQM4W}wb$Yd`w?m=C5 z4H3;b?fm}pLPHoHb>)}WIHCifMDO|gwhSo`D9bCbN`tobs9UG)T2aF!Dr}O&fu!dz zZ3l+5P>jhts_1s~+k*o99GOgzBwV@YR`L0hUC~K|;syr{U?eTM$@mUbznaj_0SB<& zeg5PC{xM`jRQVtEl=h+QP0xM>NgT`;(z1|Tk9s#jUmU1c!4bB}W~6(~&ay@dsCW%$ z7pR2iww5=J7($1n5CzW+qP49Racd6|T@i(Nkm4O6iCe?jK{5w6=2g*(2NQ@G*b^QD zdZchvTL`V-SCOc(P$8K5-uqr6hVGRti(71o12V!80wTnV59wn3CPI=j>TiF3#0gdM z$o`Ovun0<8^btzd*hV0shbmx9WZKM#s{(FOA-7AJ9mF_BI)1Qsjk4fmEP14tJOL0h5tP5esM7T=NNc6EKT`4UhXnEPhM20l%9pEL$%AJqu_e_rtE z(g;cwgR%uYrO~GPbmhqq<^-GVwCAzNnV)Ok4tS6e9uHlqIb0H=c(W7*0Sq!s{w8`( zrv!{N*>XVPyMI?xF>+ZxVPY@17pcL$flD3MSmsBCGDq?6| zJ*3u%k`;XaluJh6cOL%@mMxkDt6QZ*@^$Wdz;Fom9DGMXp7_iP7!;zOTHY#G_*2 z<}!i4S5fZ0ZwtfMt&+afFsMxl@_48-sJylyJ_M#Om3V>d)RrT~%jFRb65Gi9R=6Jq zv9B%%N&J@Sju~3+Uc>6#x7;MUBbly>8~HNqg0-(-1f*780$v$c*RW+J@j}k~&h(aP zy*zlad;2QU02@|udmU$vP4Z5Yf{3$~8?Z_Bw;?hWc&u$gFh>+z5C%iXb5YIZ=AO92 z3tM=m89wHQ-P~bahS<(`Zrzv7$Jc+j6$;n^Q)j)Y=i0d#oYGYsajpB78Uv|t0#aGp z1j1w2jaSlRH7j}>qTVd04AG6%r=J1s*C$KXE;I?;hx!}BD_j0-QLgKuZ;G2M)9SMYsC; zyJW+BcGLfrwvA?8lhxXK!8G)BZ!{cL+Zv?S#J24VAv0{Eu#(vy2YH?@H?21y!5~Nw zgOvpGA_%4rpIbt?(xz!+`U1!*_m+}YlAw@5OGKk1DGx_4>EkQ4$K+H&xs@EY&9ue5 zpED=Q%*#shqpvUJ?|DP$a$`f#(sF!1S^nzpqk2`6ekC-pZt3|!y89Yg zaQ9OEMRE)c3iXq2* z=HaBeIVP8r7K-HO52UothbNu;&JdIi6i!ovuk>Ok`nL6Vk=G}SDy0Vz?o;;qAo(e+ z1QhFfRo@;@ep2=osZe%r&k{S59mA8EU# zX}yPFADD2T;`^HiN)jZ&AF>KScj1T&jFR_w{+bC4Ae3;CbUHFGDL&&9sS}x~uX-{K z`Mt2e3$OPrMmIHTst!|Q=$V10nd>sL*S();)on7 zB2kE0jP0|&T-YVZb$ za+-dE1Yj@-ZHNaNjK*n{MuRkn3)lp0C`NC92e4X4MgRtBY>AUZ$!SnYf8@!Y^hI2p z26_NTHX%rIkc5Y*##t)Ji!=zG+z^612Z;0rE+9r~#17}uCr?O;wkrsnM9G~b$ec{d z4Z}yOoW`5X$zt3|pJdCnY{mW%$c198$2AGdX^==r;7Ez6OL}-GM&N~MxCf=wNht7y zV!Q_mxCNDrG=N$Te8hsqxd2GepnViGVDJL$z{|CSj$0_kbI1>FL=Vbz%h4oFRosAK zC`P`dOJ4W~dLT=5M2oPDBaL**-r$9NjK^xkMaASrpk#xAdrfxS%zPwEz$C}v6wcCA z&gI-fpqz$tP$h9c$!R3c z#%xd6N>ApL&-r{qT%?Cqu*x+tNb0-=>x|8YR3Gicl}@&cAfYX>?7c zBv1oQ%!~RSi>u0m=t%o1Oq6ViQdQ7P9m^Vh2vmjCMupW_4Vn#@giC!+EVa%3oK!Yd zN^;Nv{4~bL{+!57&B*ZVr;juUNEn8ygvt8(AWg80VozwKvf}mDFWm{^@4@TfjBW+rM@dO_wNWyi} znJt{EoyNHgOU+c?O+&IBpe92aBT!+r}4zn$YB3+Y{ zy$FJ=+ro_#>_o_7bcZd$&W9{UiPTh!eAA62RM#lX1XLMroJ$8dTw(Z!d$0>hy?|&0 z%fAFnxd>er`%ieYjU$lDbt6|moF*k7DYOQ?;E^(_8I z0zP05Jz(9nOWbWp4F+I?U|?x{;6kl}1T99ijNr8;4(V0g&@G4%F2)f)2opYsD%e>Q z-rzQI)oHj<3Z4cF?hX+pVH?FHT&zgc?GDxb2iEltCN_v@oJ-lolcJOalpM>VT+x(# zN?wS{mo!T;g^UuViXx?oOCU}MNL(^K;HnT}f((betcvPov0SabwmgK%OgzLUDV%e)j!KK%#3WKr83 z%u+qfP7R)FU|yiyPfy^@cm#=u4d3Y`&pW<{!c0mBaN#EtGwJPS;@nG=5N9KeT*5R= z#N5e`vMvz0EfN^gjG#E<>A7KW(qawK$Xl=-pqsz=y3i^f|g#@9B4+4=|Q~+=k(0Q4NW9o zC0@8^F%4aqo>8Oz(~A!0j4lX}UXGE56B>2QmCR}H$W5$j+Zr`q{wjSF)g9~9_26LV||Oj ziR{U~h^Zy(ac<_A<;>Vlup!-PA=TQ`whgqk>z%}HoF(bOJ=TQc%^?-6l&Tb#5Xy3~FUsw$@r)BV@RqlPUe~TR+9h-{{1ttH+vwo2#B$#>>scwmBvIh+S?Yg2xRw?=C>iANr0@f8Nr7?$6esAE8?U61;q~dHgq8Wam^G_Q-5o-P4&d>uyT7K5+-7=$BDZ z!({Z1n@)cZ?imN;ROg6>ALn{M<@xS*WzXu4r}ZKi+FN((KUITWC-eL)cwj&BIU!q& zzxK!|OkGUUEobDke0KBZ2oV=$-QLq`#&$T-c%8O(P5pL(kBoSfhX7w(Dz?zD@- zCReQ_2P;Wjt2jxh6(^le^S?X?{tZ+A6nilyd*C#CUgv8!jeT*N7=*1y4Q>f;EQqO| zY4Qw8JEaO0C^`4Mw^zVM0O;kVC{5oBZ^xtU{?Sxki%j0kT z)dz@kUjF@?G;JChg8vXzn?^6l{=W^arg^KPaKo*N3O8;%-jv_aP;B~L#L2^6@ zGW-~EqQ->{)ewY~>tMovmk!cHqEJOKC>t?Sv^er&Mx!i&dGYyj8at3jk9veR?c`C6 zF|#HWNp$N-tx5@&L^ze;*RcvcvJ=Ya*449e=hCff_b%SNdiV0}>-R6fqA9&68cn78&{<=g)Q>2l*Y`!EofTixZrv7^*D8Q#UL0bX{>wh9bS8 z*-dbIXWpli-}+a+`}c$XG&y?zo|A6N@8scMhi9AjG>Kiu7=QvUMqhl94b|0I^<8(L zT&a=7%QUn(c-?%}eaB9A_gx6ySZT>6)<*eVw_jd66~z%z32KKFSZKi&V{I;)rDA+o z6-MJ>H(hs*Yk>(lB#}iLc_fla4tbo6h7G2Jb>Uz!;bS{Vb_;DI!lhb`Se;T4dfwd= z8f>k!mKtn3WqICoveBlTn@|!YrFpXX2AptM5|^HFv#rG5ixKt)k(JQt$!41zY0{84 z4|xQk3cyT5P&!`JNf0B$G&CtZ11SWFrjvRD4-}V5m*{cqxp!%#idA})CI*Hh#$BLp zI;v0?S?3KFa6bMS<&=%h2IWCgj@0TwuP(@=qO#IjnMoX}8RS36PNVEbi&Et1i<#cq zDT_0z-Ig9wZRhWt)9A+G(r3Hrs8x{Wjcj%RM*Ub=!S6-g)c2H{X5x{Wsu& z3*NDc?+$)A;&lFB{a0BJ()H-Zi+lYtfR5)4dE$TR*`y46%AML99MPl~- zFFP*8=I6hWc!Ea~Qb?T#$U_rz!doQ+M=&=)@Ap*(Gw32Wg~8Mu|t(jgpFyES`(9L`X5(MUjkz$0Y@& zk|$0hiX3Sr4ZVmIn*kG%q6A|ZOH_?Dov@hUsz@s#bVkLb@rAM**({65OJCw8o0UsY zCC~E6UPjWJ8&PE*y9LHh(#4ji#HC24d5~(>MVK;T$6N*@i4B2dFgUzU5_xeBA9;fd z{+p`cRIEf0F%jevTS?8r7RHc(hGU0HVIs81vCr$+%%9&0=s-_t(1RfKEb9A*cPjZI z29B{w$rQ;-oiv+`DyD)losS&xH!s7P$a49d%|8{BC9RB9kP8K;dT5%GAT6+?GyN#~ z;25s>}p+F(XBtT~n>sQ={r+Qy{vFM-pTqq%Ma-{A{a6->MKD>c=RU zs~JQNNY@jE$g5_psz@j~!D{GeuV;nPSG5z<`&^TEH%+Qs?ebXJ*eINnQz}%fH(8ea zm8^z6B>=q^AF9UZrE4(^US-q1K0)#ykg#aw`o#zeVZ|~~sLwqpaHzR3mtG9BCsL-lE{j33RrUSN+B13 z#2Ve2uIDPHCEtaKMZ~MR_z|To|Hu?61;rDH%$A5vn#MVV!jPP}7b4)*NObu-U9vC* zB(DwVe($^Bol;mv5ENM^@t0r;`?oC8yYD}{IyM1U<2DVh$uctx6}N<#v)=I31|*0V zd&E%vR}zgJH#$F!N?9~=3Y&EgA{0a}VKy*{nF#A1M41nB2@NBo zlm$YH<^`iO>*yv@XbZ3dA4*Ol-@6cn4M!zkWF5tcstoSVcn%?Ov2Mv@XqRH z))pNyYGErgGlZ2*F&HiB7p1#NAJz-;`i<^tcrV;xfs3twx~5%!yVvsmBU+W+a5N{6 zLb)y%!;_7ba$|1bCAG^5Yt5J5;#=Q1F5*=uHqn(Z2QpW>u>OU4;Lu`31|vEGqM@N3 zpF*ql$QB8;IDM_{EUny5gi_F|>w+T)0UOdnAMg6!$prg7J z(IHN*Kpj`*JpL3I-)#1SWpL3JNxCjod>hz>-QA&FH%H_NTKM1#axIDv%%45>cX8J) zdVh09<^Es5vwTpOAV&*$L6hL};O|hKH(%HXAFIc5&p1}msHTp|1(7|ov##gWAyaU? zC;qBUhe+4yZFzvA?<|K03+Uk?`nxda@sXcA%um1e##agH*)3j0wio#^Nq#L`(L80Z zlkiR-H7Yz2d1<9L{<45+#gD((S!aKRPa94>YF{SV z=F#hizxc!IKmI|C3-oct1VSylEqpaTuZ zr0Ld4Oj;0N;QgK4PlXwTsg>uQ1^TJq77bPEm7V!bAmK?IjVT=aNuUAJ8wl3k!BL=E zq@cJRoJwrqEp*_=QJvP!9ntYv%K;kr70?$9;bgQxiG368jgdhpP_)#D8eHG4y`cUr zq49y=|AkZjy`WyGz(3X23zp##?x6XIAN}=T&bcA^y`M5shDV$O6BrnS$l+BDmNz_M z1zKSH_1_JCTURkl9`4~BPMp`x;Jb~B1U?S_fH5K@5+a;j;+H%j@cmvRPQ@kCMM`-e z0&>M55(FAv*9uY#8^YgQOyVc<-Ws+bl-ZqGgrfFTA|EnKDvBTSaUx1VUh~o50A@+o zf#J*PAoEn}VDLF0SJ;>A>+#IzhPK8 zS`R;(Atk;e#d(k!S|nCPB>t$REN1@XQM6s=s)kWE2=6*z{WIChsd zq}n#FM5PUu9UfJ6@x~H8ATc5(fO(2R$W-wqV_uNsR=Jr*d|E_w0$Je)Q#b{9Jw`j4 z8GLEsTDIjp*4TVZ(Xb^YSmxIZ(q(x0B|(HG=gr3jz{K2rWns$WMh=!^Y6;S@B~voy zQfkMSy%s6am|7;1Vs_U^^5v5`gi};YP~?S2fX)VhCR&PMVIbybYGnIC25J7pX+p+S z%0^U1BTtkjP`pq{!je_si;DDwZ2~9jEyP=*#YB{pmwA_g)nz;42Xum2U!CGTZlqv_ z2dBA~kK{yg`sQuEB3!^GMgH7J=QIU#O59xRL~fSEZXRVJQiy@@gs_a|_dO+bH6E1V z9O;3EH#*P(?Wb&NQhG8I z@W*#_WQ^*^j>0I)J!VWD8W9m0k@6Mh^#$mSOOq-^V0PAdX6OGsC_rv#P1Q{R1F=klvE1j;ktJQMi@$vjkBCXeOoU1dD7WdS z_Gyxx0t=Pw>4M^g{#kN_IXwkM^ooYcg{{1kHOb@`xe6_TSEc^irD{u~1VJ1Q3!{qY zQJ7O|$XT9l#HK+~2;79z-Gi%=&)^-Yld;IISSmu^>8oZ7zv$LhKw_-A(yU4xsd5X1 zhz+{X(p|)gV$8}Q!4b65#j%n~vKFBcx*~{uix?44>|x5ejLN4bCj?&Px4zT4!ds@I z%PZC28+q!I&Zb>VYAM2%x8mzREUT$@OSyu}U1Td1Y^#F>Y`lV^PK~QyToBwiYzc9V z7(xxi2HnIyYQ$!&#@0>6woS)w?CErn*~D0bN~}0S!p!s;4y_i*wyevR&Bv}y%)Ts{ zstt}@tiHnj(&f=C&-QH8%xu~Kt^eO>|$>1Zp`fVPwqwy(X{UB zazy6tu3yA$>fY{16B)#EJ~e(&3E?_AWc+SUpGN(Ws8 zu>B^A{+jReD(~oCukaXuME&%6m1@A`SHgA%sZ~RJb z3FGex2aNxYa0=JW3a_xvI6yH)FZw<(q8Km;gKq@euns>=>9UFQ4zSl+aM7Ia4F_=n zvu_8B?+$Bk-|jCBLolLDG4ML^sc9DaR!&K2&-`(hpqzCFdu92^#1W6PcQ)|F#aH` zF$Od8ATM$F9`YE&?Pnn#2ODkoNuN@;IAE z7!PhnZ?rhKvLNRL8gn#8H*pdhv?}K_E7!6!Lv$CjbU~xEFVC^@Zm~)8{%>*YGB6Xe zNkcR_doV|Pa~m%)7XS20`|(K6G!fS{GgC8A@AONvbQAY;FT1o;<1{RzG%P^~P_FVR zyL2*d^e7K>LGQ3AlQrQUbys6GSFbfsOR`({^gfp|Tfa0(&ox0qu~VOQMJF>cU-2!E z?*SY1N24=SU$tN-^(u=kO*eH_YqS`zvnI=QPCN7~`>+>3HCt1(M}svRgRwCib|j;9 zNxw2a=QUS%HfcvTV+V9$EAwc#E^CiHhf!m8VmDHr?5RYG$gy= zH`R4sdH;5TA2x4$HYcMp0>gG#qjzVQt#KDNB%d{OXZU!lHX!eJQ%7}&D|2v)h8{1^B0aaa6&%PxCgyrf6` z2cP*v8+E(GJHn^*idQ>f=QF{(dB#`v$yfTU`~ES?k9wCM_m)pQx_7+DU%0woyJb(d zB)fc;CwjcMw8ImSnvRRPNBHty_AJNx(+m1?xA@0Dy|w$dOb>5RUo@q2xUWZhI}5wO zn|7b4xXyQTva@>27s-?-H?ZIMfSb5E6McGf{hMdI-QWGGFFn@lJ!fC`lFzuG13A9O zeGRWOJ4ds76L*!Pv*HWohLl4_xpt#cQ%{7tKa&WTd}T#GS~ll zuhTt0EA*_ zVnvG=F=o`bkz+@M4jg!-2vTH8lP58fMClM@$dwFRu53BeBgu=r&6uDm1|e8U%`eIJC{Iv@+&` zeHCv02)gU!j*x?zj@UVKWR0l)1y&9`oAE%|vk`A)y%ToB-6wxD>|J-b>!zybZn!m# zT@cMZIrH*7kaR-P2a#`uF0%MbniPW@x7hnO?Skb4*KQgfW%q>aJ;F!mJ}!On_l2IC zc8}-NpW&;6$-lI|qpQHxq-za7la$Ntpa#`rN|TiZYLo*5|YL$47w1aBQYch z!i1jGtwN-jJa5X2syy+^CJFPT#($!!jK6^psb-olMZ|43HPW0;AQicK5y*^UWb?sW zYP>N>Jr~-M&mOV*Q$YSfQ6jQP(y|oMO^Xu6Fv>d}TyM*w8vRGfhbq04%Z*q=B$vS4 zfr2E~Ao+9}c(i1Pf?=jn!+}ex@kYI@1d0)jsmipoR&RunQBg1*xIn+@Zo6kDIH}vt z(gZyP6$(XpC^axtMO2klS7DV^psaKPiIHK1{=cM8(a)tM^u zklRrcl=jqToy4<>h0SY81%?Al#|x18#rEHJal;HJkRV}s8g1esnIN6V{VeC%cqaEb zt?a$mvrgajS^gl22mbJ0d{?ZS|jQBb?FXJDWpq(SjZ|C~bx+{ij2A zSDwvfv`t1iy@C})m|%t4e%tJ-lU8$Scd>>j@R~Eb`eLX5K4|E`ihiifv$M2&WV&m# zT)oG4?m5lb&K4-{mc7tXI!V-QE~L&_MZDc}O!bC~a6{x)Aiy?`(b!kfT=t&eSZir= z5yOeqMv#z&c)QL}$1OzG1#hh~*wdXoFpodpHpY8hr8#wWng5=o?BAUFG6ij4mijZT zXU;kFt|$06y$OO<&E7xr4}SLxZhp3e0i(K>*lJtZgP!XKLZkNG4J6xBQ}?D9yY_kL zZ#Q!w{%#@^uG!%4g0%5bUk(Sl#GUSYpK~6;LP#}-gztm}Yn=#RCqdfnEg|}04E@Bk zECfO-YzbUW4;5m=TJbN3|L9;~bmcZYEigCpXhb6Nf9;~eDL03=Em8(?^WU410h9z|8k<0&sBsyWhtx}_6VCUTKW+hs5Q ztKp{IY?2^l^2W>Drk^$DPb(pKCYXFFJz)Mrm_8ItF_m*R(410`ge+NLYWa^c4aNbp z45R}#(26r5X_>BUW@b2+Ae_($3naM!B%BtjTw2msO7uoSL2^)|aWhAm8fQ6m$xDHR z6LW7w(6pX~QFf-%ojN=uGhx{f+(pte^R!av%n8Iu%5*+nYfww8F&KL~C!hN?CoP}l zQcPxsnh#m&O*11@Xx#~a-Xo>)Bw|sJk`t;)niN6Hg;2wUk)e#SW-d3N&36J-o;ei= zR-dL-tDbGAZqsK|5h5FUw4_S1DF|Q&_oYpy6QI@USP*3MrBj6HZDoC4g*N^$2{UcX zcMY-=D6bL|xx(>{cCDWzE0d?arZibT0#OiJ#37UYaT@dh)-j9u6w{z~Q0>yJ`}hhm z%DRL#uwsWnY*>>rCCo*9!spm@Xxg)mR(nreDL1VeDZDDELHD2`m_8d5v1S%Yn{6aW z*wY|3wCIuosRm(}vt1mi4Y*n=EoGrp-r>U4H)e7jNFq^W*nna8n(7<>++E+!ac zId>jNq~S4XKy`GjhBo7#F$~{{1c%CtDm0dzqh**{wKSt>ybePt(L;$l!0!Gr(NUo{4 zu6>a3{FCDywv!x~{_RSZiVbuhlqo9hCRVwg zIY#x@+`Onkd)Y?~x}S}PdfFeFnJTLtZI05%ZZ^f%;ke0@Yd>{cD|r#mT>h!Y>alozt|P1K`iHuED&r&N<&}Jhi;t#HQUp*>G%di zz2QDxsnjbv^eB{sL69DIbARbK`%|H}5fXTDZ;9=KPj`)N9iFS}yv?q1H=n%pg|w%W z&Wtg976md1F*6w?jsFL$(j2hUNTTZQ zXq9v>>%foqYDyle!BxCu!Vu1U*rYQCB1WuFOj-gkyg?fbCbB?A15t2@3Q73%5B2!Z zeFj9@_>9bS4+*s*%{mJTQLXXhwqnBkl)bF#oh})eIs= zt=MT8nofHj4(6a#wSuN zc!ubZ+GTe>>F`2{-yBgkmN6un@m9KU_&O^`W~ul}PX)kgIX313-bx*DZ{_HP29ZNQ z?#XSokeGDL3;D{iBI+J#OQ23s1^!D52?jz1iot0Da>4Ax9?!({&dtvtW|q86%|>n+ zL+@^8OEY!~pWcd}_K@eI(GLXz5q1d)N>85>CNSv1Aw?%5Tk<7qOePzwI{cAcHb4<= z&9R>59&xL*fYNlz(K0~tAJS3BLeSBKV`m1Z8bj?7c__WeZXp2U8kfZ?ThdHWsi%6U z6g^`hjfyHq2rPv$W03N!gmNnv;wRw}D+!Q2T+$0{vZsjc0Z+vPcd#ZO5+@gsOkVP= zc+wTa@-4~oDvyx|S}^h~LttiO$<|RNTO)l;3NmHGLypWRAmqmUZE(PGGuv^^Xpv?p zlO|zi=PYl_^hJv91?FUP{(}UjY$_!8I#M%VP)!))V|-3^pfNK#s0g`;8_}{hQO*#x zqBw68u=;G`^6V6mX)|PFHP5T}hN-vk=#PXGGnI!W%j#Zar6$Sjd=rXd_4Y9QH>m_%zobQ9*_ z4N3AscYKg0^a(SBP$lT=G;!iRJ0nE{gGE*1`=m0@OygU^MO`LJu|O&W;4UA_EVY!y zAT)t8!$AyyG(1!O@-?ReN=HUYr%3e@hDj%8p{|c0#B^N96gO4wQDVYYNW(g%gGg7@ zL^=u!M`s#brZp>X1|RL`2m%toWnx4{D-Km$)YMR$bZh=FA+mHfwzNVcrA?vWO=)OS zi*7%zlVSCmU7 zG$MGlQh)XD2EtJhl_Hue@fKBG)Kuz>Ra_*JSYuUg)D$B$B`M|vFM`w-%_3Wo!dsEz zS|4-}!L=+7gf7H&Q`B``<04%HZZo%U%7Ha4MlYN@trt@diif;X{tYq_>-z4mJ}0y<7MEG{-B#ujYRHf_~* zZJG0Iv({|~1zy>9Zt1pe!B%lX1tQ1?Mjc6P%QZHE6G;7od;-^Q4fk*n7iyX3A6f`U z^rdit6JIqGa(R<*_cn1cH*+<&XGbZRs%lSs0{Ff|bPG3bCsIk<7InK63*~lmUH5fi zxBg(|imuLY{c3`AD=sEN_d0q+Zp)SimGlgMH+G4)c#W4ZsMJDjw;fd%b$8cFTenM7 z*LF?AP=@z-u{V3QS1pqFAJh?aZ#S9FjN+^mc)?dSvg2~C7jCz=ecktci6VJf4t$x{ ze4n>`uNU#?hxc-W zSA5gwVx<;_fjEd?STxthgF_93`F4Eq*IR#Ba0M54%xo0xQxyCi~;tF(Rhv7xQ*TTjo~+ixQ^}kj-i%FW~o*2xQ{be zjVYqLUIKpjcrRR%Qc+1N_(YH&LXXX)kmX`yKZ-s%mXQ78kc%{t{n%jv7$q3lLW)i# z7i40`$RyrPKuZ`Q_E?c8IAWXkiKVq|%hi%AIh0Y^ElBzB9%2#%CLEG(lUW%lKG`M+ z&^5FPC?5e8FXEITIb=yze>>TUp&2znR%c*a7r|4L~bcAR!*`jCLahGqfgAhia$|LInoGPhX}cjzn|H zCoqzlVikrU90u@M<{YX(h;+EAb>=r6U||NrVJgZ(8G)*eCZf(|Vn8d;hDIPF2Vzi0 zAs~Su-g<{ccV!0RPf3dh1#%0Ef#)@<<_IHH=X!U`S4AbsYp3DnmJtxjF7L~zB) zip~{^*t1gD)4ZX)Nu&O}=1d*c%WBwV-53+1tsXtuuenAnMw7F6zD>oKVe%=Qjf2yB z2+wD}HQYLYZ^psA_KO31gIE;-L55FOo&n-=DpsZYfLVI#Hk~SPz)C%b=1`>;zJxc z_SvKGeW&XsQWRd)wR2vx6YrRu;@7&@1#A(|Z{;ig;zy98PnE%DcLh!f6%unwA>sx;3sbW~~ESjOdw{^TQJ-?JkpS<`x=^=&h zW54zz+VmSA-0aNglHBi#O8!hIPZg%5$~`7FAg%x5xMRxf`>Nn0WdIjQjiF>EKc&;E zKK;t`szZ}KeF9Y(HRx23T)qCvq-hf^QMF*}K1};HXi6BhSX1`7kMRaZp0PMJ8ND(>!NVbXM*68GUj| z^;LWeuJ)dG4}~}0Q0ArO--C2rCShd|0#+4dB4TKoiV$&lQ+q2;IO1g%GN@mTqseHZ zj$pYsBUms7snU%-rv3)xKlqWyV`vUSq?>9|PDy2zR$fWvbWuLEpJWZ0RFXymt(O}w zUXA(UQx*Ngpoes^hMkWbX$Fx~1LYT+bga2oCvvRKx#y4EH8>!Dv!$pUeVpZ|Af3k5 zx#yzfmAK(#+Bw&qj(dg(;8Bu!qYYCQHDwWlo(LBfR?QU}8l^pI_>`oE?ippAnbJ3B ztAVb>wGB%m(XtL&rT9d0fdRdam=4Iw?M8;YTp3|Pj5uTOec&%sy zLAxxL=AMggy6S=k&v*}A&?^{c8$^u!picX)kw z9Y+W2v;j<#{!K#<63eMj3=|J>#wsMa_{*npv$^S>#35CD6vi6MRd7TnTbz-~YQkGy zornPAg~d?C%cw*Y!|Z^}58;f&Y^aJ17RLuG)XFpv@)+oMogT#zZ7MyyLBeWrc2P@H!0~h=ERwa!Nv<&7Z@RZGd7z)fMbz#TS!Z z8jx}SGq*RuRr)Yg5aF%!KSHambJmkVNAcgJIZHW2d#Cz%=nu)fc;kOz&i3YE|13J< zpec>8(<3_jSyB%(@-ei4b!F|k!Vgb;@%Sp`-KqCJ1ka!kO`}anTT!f0Qqhk@k4mSS z6cR@MIWjEN_7JJ+fcWF@*Yrs2$b!{$f!ZDDK+8jP;;&7a|9t&iYO@tZ9INEG@XarO zTdT%X0w^q_X-|44@gB2Sl)#is4Pd;m+C%Wyz1hUeB8HG`XJJh$xc3Adw~oOyN_O z*fJqn=ZRdYUy^)?JhdzlR3XU^$IJp8DB5l`V)PyEJ~J`(kq1g3fsOIr2*)_0#sL@D z#Py~T4x98xb56qokjSBfru`!vSU?F?0vQrQRtOl=OUJ%u6GJsQKok5+q!{YNh++O1 z&}s1Sf=V=jLT?<*LGFW9Bvq106qcux3bbESQVGOP)@c%(ga;Ht@G*)w01}$yk}ZV= zOHO(cBD^%nWOL zio}t9*{HG*Q%{!p$ZkLOg)WIebv;cO8#}KRIMsd z7veUnYIUnsdTO=m0#&YxRW(Z8)mWcJ+*u*M!v5fslUOuh?X7R^BG}&wcethvu9ON3 z8ngP;xOG`7a%rnv;zBpNO?_@psVmyAar3QIVraf#YOW2~(MMSe5JaRWRJ87?u+KW!oSQogOT`qPbgx&qd_P^47Epx9cV8Zry{DDjWOaX0jknM zrd;I{eVNKu_7Q(Io0BnzxkeipMiz8d(h1K|&1HUyA>RBDMu0@l0QRx4X6$DY*%-(; zb~0HBz2gGkczB2&Y`Hvf$){w%aompFr~2m8oK9BpeifnMvXr8oy&Yq z)#dT=S=J$XTc%3}Khc!ZXmJ|Zrl4J#=N`w|w9d#t#R^P5-_p3U2S_x$hz+i z?5^$|<8;g0tn7Xp_!8W2f6v<90hf2UJKJuAM{qvMPAm8XKIl6}=U{aBn9V z#{Yizz-RSvftUN?80UD%_nmNc2in|yte4~ZQ}2C`yJgj^4Z~rs@pRh_JOk1YnoQo= zag$K!;3k4#vQ)#c_TgLfc5&< zi{15tbA97A4tT+}PH|jsUEE5SvCKh!V0`DCBt!G@gZTh`QGq3NG&PrH9-_{2wh-Gjewy<6Sn$wdC=JO6y>mp%Hvul&ca ze)ZE|zxjDD{_-ooLfwNMgf9lkJ%*JmwcyqF6d<8gt7Po`jw|m0p zgMv4L`{!%jw}b4*C;ta}F1T$X2!jq6g$-A0VmE}XM`$)Uf35a>EjWJXmwt29g-!*1 z00>-Ep)n=3VMaKEGq^J-q%XY@c*fU*wn92P5qmFKhiFrVd`N_RcN8(S6K?f~A(w&U z1XvpoXYrPN5=TzCriIJbeqTp}bT@=phl46;e&~0Jl~!rag>ZT|hfr7|Rw#muS8f(q zZw=^iV@QS?M|ep{Z~+#EcqfTkH;KHaZ>H#iGS-TsMsa@!cLx|DPZClU)Fxp_jII)U zW>2JiD=6`ExVVQNc!5O+{)N4Gh=nx}OGAVx$0wpkA2ru;{bhxgriW10h>sYI z(8w^6n2NO4i|hD+J!omJf_NIE$*tipJK8viOQB*pEeMi`dtK;>eH# zIfdJZg~w-rjyQ@sh;gV$ZNwOE62U0SsD2SSEoSF+&88-3vJBt{s$BtC!j(~`IE=hwc$bmw6kDQo~(FK2==!?FVlq1Mo zQMrjtIdbpkXE^z1t|*ZK>5wbvcN@ryN|}{kc#-ZHks7Iqz2}y`2O0(A0LeCXOW23l zvLEsni#kamIQjglybLHLl8*>+J^m2CKyYT1-T zIg6w?hFZvilv$CI2!6-KnMzoJXc?BJq`-= zeyNR>MV)O|ZXTEv|8jE5X;ju1lRK#skib@6V?Y7IL$-681WAAKSc_Z9mq>|!YI&K% z$$ZtupFb#BIIE%ACF8h8m8cbR3N zYIl%qr;mx5cJ9`93)YW_mv{jgeIx3OsVReT+Ms7zqH)=gx0!WS>8HAhr^?5L2nl$E zcXnoZl5eMnFS;7#l}K1H9LZUu!Ly8MW=EH*Q#`ty4*GOlu@&mcH0CuN3M8dTIv-{6 zJR|WhgaJZex)?~>cq}tNvKltADm_|ytDZq`UV1NJV+b?x5b}i+JyE6rd3I=8inQpH zC)cI|+5VQV7ITu?sA?LDhDWK1igyR6t*~i|{pW~AX_|Dpcsb^#MCpofO0C!mmIgPd zm$+yqd8ZUgl{9$^C}t&CHDAR8u)s)>g5s|N+phsTS{gc63>%h0scR7{v5J-xcC{`R z`%@U}kKtGs8rxGIYis)&R}TBIxk|DVi?S(OXk~I<=HgfiJ3KEdt_AxPGV4<|yILp9 zRn~fFUCEIu3$#I-vm(2)LW^J=+ps!oruAyHP3yEz3$;-zwNp#ARcp0Zi?vy+wOh-z zU8`#oqe5OgT3{=-sl_p2TefMNXgAYPElajjVvJH^SyvLHQPi|=3t4lUSOsDie48$D z{;Mn~gtm0$w`yy+#?xZB>N0lAEsT2_dRrxRJGelLw~h5xmj$vak-1m`xT0~kinY0i zE4t|79Dnl&Fe@dUiyDxNB_K7rR>it`Rk&X@Rk#TCNRcf5;xR|j~vHPzCrBQ_WY1E6d%S$ap^*|q`YH<|08&eHTM*lQ)^D=75?yOMt-+6p$X8aS28?xvR#w9t&yy!jQa0 z^)4L26nX(J^1BuloPh3tOuE6rH_Qtk9KuRM!lIF$+iN+9F%2{oIHXe=BDGQ`0bk%m z9=c({Az{O#;l3h4Co$?3P+Y?-^%nV31rbardr?$TJPlKfN<`ejl4iF}%t>n$VS*7n zU3^e11qno~4e@|XZ`>FUtht?GRLCL6Y1|`n3>w(Y#dQ; z%oU1j7g{XE>7>Vsyc?Um6nufh2`I>!XUBM4Qzcdxk}V#pzZ$fXg>jy%Xj3>;moFSpCe6f6lUfhSav9-Isq=aBw@-oOP0Wxtcd zDnEA#oW=|H;48i&hl>#oMn)GhY`~ImVwB;`dmPQvT+LmCy4cJVtY&ITamAPGO5(y5 zj^e(}Y$oWeMnKFM681Zve9q~-zFbklVGPGZ1<*Qb5+iIDo)#?x)z9SN$u2fI2E{}s ztQ5df$p=g*zQY+fBGEL|9q)`-^$evuWzY*`&nWWH@Jz)6txy?l$zb)*2wf>+yeeY6 z&d>}IVx&UMO3?#ruur_x0X@|FoX{V=(G%^_9X-{&N=8ntA1V!|Icn8%am`#M4Ph0OD2~GS{~{#}h@) z1+CVn*4A$w*Ma>lVdE{dvom94EdSfFaJVuXAfHfzGb!cA1#Q-a{W${+Rb{O)XH6G9 z!46vX%nMB;HOm&Cy&s!4Oc1uhJ7UqBoq3&|DPJMmcR{}oBE0Vc2^Lkr5lw+l(%Vq+ z+X9j=8p9c55f#DBIK!R2Mg`fLa~7mc*b1B#xJ}rOQQV$g+Mq4Ot$n1ObBxIw-4JmB z)Xg%Hmds!g-+~R>baCBHV;HEd+F+C1v<<8X4BYJP-l1{ds9Y9GM%UFa7D;grH<3xU zip{LORbwsIT9G}ka;w0>n4RX>K`_C&v%^7<6lZY?{xFoV3GUA&p@=BN&)vK@=DbrE zJ|jUa&!Ef;XR#z79vVrpfbo0W7c$w+OS=?U(P#}4G9KQgHrhwNy~kTA5?eiNf^ z6^y;OEt4cmV(S`(~V)+hAOFY1L->P}MI0x#nAPTABVj%=N+>m1+fA3xOI@CCPU4-DJ_3SQ9c93}k%A?hn21XAm0FY}*n<2B#$zHVw} zbogg4^u#{7L*nYDuk2vX>__iB5D)EdFY_w0^@2jY`Qk3evQYtSB)(4?l*a4x9_`BX z%>NBlI{)sVLHp3O_0^B=;qv&49Q~%@@5rk{0ss2>!TVSdz_^qAhTrh6^YAQL@Wws# zapm}){&SJf>o=du(;yG#3u(mw5ZcBzQlh+$gJLiSqq=R1@`ZP%MaMQAVwNW(45#sB?euHq8NDfNM;)$n4KKfZa^X|S2 zFD3GHstLWlByx+d{%WS7C#DTrnP{M?XzB!^wczTDJ0?g{!8`2Sx zuGn;2YeTmn$z{OkczTeeluiV#D0+~nNQGkVlWw-L6dQ4(3~6&vtPL_csK+0JBnS~; zyztQ}30t#~$?154hq#Y;yz(C)g*5KBDzA(%w~tEuXTuxUq{zS3OcIgABon*QDa=^J zF3&A-%xg(Ow+rwe@Ia%|N|LgK4ZF@{%F`o*CZ%)A2IC|VD;Noqkw!72G}9yB7FE+x zQcda%P6#&*?Iu?LfuzCaDxL0DTyxEl2kRUt=^r$-V@{id9Gt5_^Z3JQyN8p@CUSp@s@bGGe>O^BXjV=AvJWy@0VCW(qw47Y^fK`}vf!2~OzjShn8(iAm2 zZbiiK{YS!t*pa0i25G9!;IrzM=PHx!U6|MXw^)He zOFGh0dww`cp!bznp;Q;v522>l5?WWV!_G>jUb%Hh2Y|!Df;3)`B{$ol<(!4lxDy>m`_pYA^W&O3E(-+uS*S))=wB`K=lH@|OuW6b|FMv;Xc zltjLQijBB4HOJBI3AS30vEJYh!#&@4zTMcoVW??N=dhW{h4#t0VNmGKrzBvB^Smq_ zXN!csI--?YaHAGZ%qm(zE!iktr`XycmuA)qP*04Z>b~7n_=xOtNTvI{n47aq_=qK9 zy6!Tn6;N{>Dv11~a%@#m&^c@NT=BFgRPx@lf8Ovr`FSCioJP&+7iutZxgRO)y`lU_ zud8#VPjXWE&n_A5zJDpa?bG7OBXP!q%QM!%8Rdn`N}#?%*Mn8yZgtI94yQX+gVVVe z#TizPU;~;UI(Ul_94JScy3NClTvHFca*1TP`Gg|jMg#^s8^wFNgO(rlflN>(Mh$3+ zS?4W5Z;2YAz+WtG2%W*Cnv81rj3Vcnb|fyHluUw+6VdIAF3C`x6zj4MdV0@WivK_* z(eJYv@#?{ccV`NE%j2dhXkb$0S3qrYR3NdEwUksZN=h=&oPxneM&8mjB^v=B0y$g) zrtxcB-fIgQ1s_@Ua@F)2a|=3y2U+c5)r=;f1%rc+oc@7oX4mI^G(V4g!}_bt{=r3N zIvaTnvec|`gilPtHWC)BZsD^N$=1A0TEw&E9`CFbutKh>cQNpJ1WXm>ORjTH z2BX>DcPMyPE9YzFSur)ODmd<@7F^_+2*B=6A5WkcB@kHiFOMl%lPwgr(Npsctvh8FauG;~Y-A1InqHfjuKZ6~{SJ?i%IPOXvU zRC-;p3i2@>OfK+fb@w$MW| zx@o~LjNxguOs6wGJLJ|(f6?V?^Qo(|z>n4WoC11YZ{OO^|GQp)0(NUh%c(o@iPB!m za#!o3gUea2!DYfy-Od@ESE<;>2>_>O1@fIST=&*y?{d?bzuX(H@y)Y?%y%Oj$8X-s zEsnY_=Wab!2a)TqwAMG*|1dvuna5j!q-z@(AA0MpbGrO|>sbVe=nw>7Yjjb)(p|CG z;Qal&*}M9cQdY~$i13N+jitqA3c<_3x3uOsR64xkjE%`PKTJL_uCy>7u)3qz@1uxm zjr)hcP4CZJ`8=2Ykx!8=adO>~oeOse^Xp|I1)V8LBqmU5$uZ4M-tw9DenJ_FJsO?B zKnxpqQcCj1`Ps)_mv1_I(qWU)juiheXme$Xfb*ho5AG11O}A22(J@a!Rs$y#Z_ZHB zJ>SLN(j#DXSi|4eZVS#1H8Zo(ruSRzbe^qzh3~M^L0y5Afv&Qf?n=?qX~FUOA;pW& zQ1X(qTWQ@27gy&>J>yMnRoxd`I^V^VDfTRe4O=U=_I?OY#(e(`8!vFZO@pVa41YgE z7BP&)y#j`Ky&hZYWxtKa7OwWtx($p9zxB*~_TC=ebr@S8{5gK`@<4`MxGre>Zw^a`fF1e=p&{b)2DFkDhORF;miWbpOnSRw`#T za>{WE@tM&Dba3j%I?{cvjNn0`l>d&!s;w;#{hDy(_hq%MyS6ID(@JE40j9t^_m?x% z24aGIl1$E!p0AcAS{wUBj@+O21kSWSu@5B?aZWzjT_^Kp0R5(~8%DlvS>Wd`K~QnL zt*8gRy5!;1MAQ58(;KfgXxwGUK=xg#1Us70`6EXpmczha7i%-#GwVX0g01KKmFmvR zg7=SMm-P-tC)%xiMx9#^^)~!ln|Fq7T@(5IKN!Y+ug)Yq56$==3<3i_BrdmHV4r(g z40P>O2z?(;cYI@j{rD}BL13^jaxVWBaGu{$kA%HsH ztMAQ}U7csKja%q#qqem$_I>H8eLHg8_iO^!e8R7Q{14YP19I=5Li;|@iJ+f~IFt8} zcJ;=U_M)&0;Joe_Cl}5n=X>>+yAOlXxgw<9eT3%ijbcKEequxO z9j>MAwDg0E=mQVr{nYNf6mNQ$JGs$wMGiv;Tk*xiQa?c32}Y1}1-rf5L?7H6|KRit zF5y8=MVU4j1<%+IFV>tonAF58_qvOM;2ooU&*Qw9p4yN&9}_NrKQ_WJjyf}mytr7c zxJ365W>}Z^JnyvFFj`8rdgE~I$CBRbetRI9{i&q$>97-fnG3=Q)uW)>da0|tlqWy6 zGO*0UUW&kVcp+7aAx6q?LdxL7h`X6qG*5@BG>#HdE6bogiK_|HJZ{?Wko1Tj1kya#D@+t;$HW3;aM#}}i5q_5kZ zWr#Xq1Vd!d$;RS4NHZqL^7&Ak zpk579dq{#qZUhcBm%IfQ4+klW~i!X`*+fW4;?hoQ!2U2SGEALe^Em&HsR2a3@EHn_R;n)ekOOgea^g zDdObGo^mJK8id_g&#Q{Uu5XCn;fWam7Vo@?1s%bC*j+XqSA0BC@@0bJQ&{W?f7xkR z@eBr#qaicv2)_4o_%eUVO<1}u_w+Xcv~~01Gjp6E8mw&ok`j^p*0E<D)j=X4mk9Utk()K!gv_a9cYvrxEoPv#|zUVII3aHsz=eP7#@iJr1J-W z`A`(K-Ul*?kd(kt)g)yC_e&^~dzBE9dACZiOaf#$>(cP{u-hNVv=Yde7AhCVimUvy z0{-&sh$`~YakI+mD41x0!K!56a@Zyp(x?~uCWs~*)WOkaWuAT1FJ?)QSaUE1qOc%g zB{b&A1m6q@Qr-#?;83G}?`03@J4Cgy#`NG+=FUYgiVM zAs3DERl|f4v@O(RWj@-aYnTbhn@hw)naKLq#sFdGgdP->5Yel$lL(R_%2g0;1)`F< zA+K;?m5yLGN29+F&fKrZzJZMOm&o+iiS<6qRrFu3-2tn5hzY4vr7}@Q09!h|P+gSH zK|oax=SiqgUPZ%y1=KdnU`q*c#JGx{NBXL&#Q8Wb;st z&4>3;iAgh9&A=pdwJvq%n9oYq9ix#CApK-3febubDN=~CcG2{h)UJ-tgtS>HUs+S1 zT??K>Z8ccyGtCR!PC$}qMdX1dT@7L<)5sPx9OPCUI$K5PP(Bz`Lp8`c1ZwvQZ@?=X6kI}$ z^~960=&zk^=s<3A_Q39PV3&<)rg=|P8Ar~)*2`N(rk2k1gDD=JnP%--2c#4p*BRnP z>!*-x&QXl-Lq-o8tPi*3S16>1W^MG&EIjl)Cq6P1janO}cpF{wXhETFUVD^kC#MEi zu73v@X<-^oUKs2<7;vPd+Zw+UfcLq%gDK|Z)sm9;|{z_X}xojUyjV)&8Y!EkxkeDQ64gd*c zRVt_kdovD*Fodh^-dGRLXoE*;Hw0005_v))I%cmBYQ~g9SN1ln_xPc<3(EF#2r;00 z)K65%Sg>|RnN6P{2`VWFDGbf!72}GYjT0!bHW2dRc!&%tkIb@zqQO@aVmVgmiP8{U z_Fm=d#8zTz4o8KUZYu9&3A;${@haF|I>nLos5 zTH-DuJx)>&Cq!17&S)sL#N#uxnx-xkAdw!F25ES8ddPWK((Bv9F2pN?G2b6Y~R z6U3`K#_?`H%*9dEiokXY&oF}0)(L=hVL^EfXC9HT1zDbb;xeYos256&)JZ^E4ZC!a zeQ?&iF}E`D;*b^X_{qj_|Do^T+djVAFsz5-{s2$nT-GjY{RVo(Y&wojrT}g>nL+$tk-6TsFiUy*`+wq98>a zy*K`w1a(ASlBx~E8`Z*UPNQHs;W;@4x}H;CoCV2j4t7VR%}o4pS~Ybk;_W_@&b45X zz0~dpWOdiRcmGYVh4`A{64t5I zFkzqLS()X5gRAA&Aj?iHnd$_CC66`GlTE(y(P1i~e&JCKnrLnk`yE&-QH-ZO%C8!G zh)xesV4|lVUYi*rX&+xaD~wy_eiuIv-CqB4Yj-K*l!v2eGz`lJ^|cpjKh$u-<<;l- zh^-XQl-IB((VORaFzVOC)(@CxQ(vuN+rC0=S$AO^KM9__q^DK)IdSbqyBUYvdLD;m zob69xp)lFm9%OGYTF$lX&dxYTZ8)=DIsuW$(Y>Ov+Zag?lE^5nJ{_FO)jLDI&6{aX zukucMJkq%%aB@#Tx*m*u9LD52utD~6f{k=aM>?Bfx!)gnbGY;cw+N2tqa&iVD4EoDe8BaY5ELK9F@}%~^D4twLMGJ~JJy&Ao#xWD*V&6+#1)`acJ9M=8HtNoVIDskIX-j_HZ8Hd&1`U37Ov}pce$@!K z{yr8NwW2-go%>N_xS9`k3Ycd)D%E9j!yU(Ew0+{dgVd3dlLg>aviR!f&43gZAMbk~ z$5%E;pY$J|Ju*)0dsJ2WF$}$8l8BL<0(~SqyrA>Fv!pP^W*<`8RuR$A3<~GHlgEsp zzsGdghuvu_2&AFnruT|Ry=T{}qg4JLpVnHqRj%nBNBTX%0oO?-2EHd7e~B6b(`V=hB7d5l3n)pS5&B1t}C|2bZ+(nYx8MTXWz8EjUtPHe?$W&+KR zsYJc7cSoi!*d@p=MCZjolPAwv>n$4pv}C=LO?gPAH?PN@qL03(GTuAR;<_w-UuOJ9 z#u4Cnr^5Gg>fi65IHcC6wbMn!?pdD3d+OQchYo9 z&15qwQyfCf zr9@m|4N4K7DuQezfi?m*?*NeqJqAfa@{}7@g@Xf~s~HX#30_K?1Uez?L-MRb@bo>igr%D`)HC=!Bo*bw57;4@pmR`xoZS)$&_fM& zRGk*%7v|bPSsL55wQqI?5&ZdJ96olsnm`#n)gQ4;*(`kd@TaAWRmes*|CZ7_iwzT2jkVe7y|{L9&gY0 zrr!n%y*xj^fa7e_I6-O~2Y`RHC<=im3nvM^MY0-Z=3 z4tfZ^B$}!ut0ac*kqSQ+(0N}H_cB;%8qc;nx*Ly{5oMYP$GSTt`Xa8OnJ{&>QXC=0 zx(ZBH;^ZMqyO!ax2-hfyDofXUuGkL|%7L*AwlZNyvDf#7T~5(&TrJOa`hZ)J=QgKP z5oj9FULKZ{Uz(p!u=7w+6pE%>SsY20Q&|$rx>i}5D2i7FOjXsbDsxKlIVj_KZiHAW zPqTcqNkvNf5>#1Hl2aX4Tup0Mkt52hnQfeox2t`ZrhDSwm;p;CR;!q8SI_jNbNgKy z5nb`Sq1KNxjX>VV+Nvn9Pqp!24_~O?;uQDWhpTwx+WUXXiB@j`ohy14vx!CR2>goo zy|x8S=96{j-5B57-m1BwuVKBAuipBXO#0NmrzGlT@&^+db#6jJw`FdIU#6>iziX=B z(6q^_x2mjUYhN@X9p6nnc=L_V#h>EPOS7H!Q0fA7%C}de>{m+phEBMxiTcU21N)Wf zABYMjvyjjX&GjA6*mhcC>nmyo&opVj)D{Iq78jV5_#^i)4p@QCLr4W#YN*J637TZpnd zR5jNm@Jb^Prt_SDvwZH8r+bnG8Y7Fv?ccemyEnWPdF- zVm62p{H^27#l;K8i|2b=vaR-&Oq+Xdv6PzFfb0`1M;(pOjW?CIt=+iJL15}do1(X^ z5LnDc2=YY`9-2&GWX#SUHAM@an*Gp}HK7gTcrfR8eF<-7f?w%xL*PDJ^_zOkguAkt zM469-+rFMwi`tVoTNnY)N)|)o`8+wuyV&_|h52><_jELuloZ0&DQV!^Ms2-U?-Gwv z7)H$m;>j{YgmQztT=s4)y;${W`eigy6r9A2Y4;;XqOj5N=;Ms``%Q}@g00Xk#Fu{j zHgzX50DZdH^CfFUk{yZUW8}+gu)cFp9x=sLg` z=EmOIp^I=eHC$Mxu@9P(N#PWE_)rEm!rHu2VY+z~i2I>zXkQ!C`)bRWA|LwERR^;O z5O5jYbQ;u$uTlx-^7bi5&|V+VGMbW)ekLjIp%s?XywiqJLW+DI>zCgnSgIYy*4ag5 z%CZGFqCwaVB7Gg)l5e&Ki=6i$F|v#shrgcvQNr zPa3dBB^GMwUWzQA4c0=VAbgpW`*K0)H8-b@(#aaip|?F3A;D2;&{Ew)e=u*{t`Tgz z7^E{oaXi^!~f%r|iHxZLZt|CW}Nn{-to>}~uvV5ecGw!%~@S>|FD zKq*85o)3W5XT53uK}vgGaItiEW5rxaev%Dy`ArzVgYLVPcDw=0HuCvPo7~u`r5;G* z6|r#_(6PC(NGKx{Xe{S~SO(9{Z^@bH>?tQ}HV&V;Z$E^{TSqihqqR-8S?H3@vpD;9V$-i7@-mG67O)wvi zE&i5XrQg6v5TQ$!eAg+;iA<3`XbILDczDx$52Y1blC{Nqa* zaBZwwR*FlAj%zRq@z7J6L4bJJFwxApnb5j6FyQZ-&*ml)0y7QcLo7I@qk(G0dkBM%km$z9dQlRHahj%*u>%`Ml z=BHLEUOnW9)>bIpehuQzr9HWC2JlADr{Q-zliwKJ@F?6#H|ez`o%;JGlB0>FxfNI_ zy;92bi!d)z*@fgnWH13~=ShTfP~0&o?LKc7W{h4$IS^aA&88FAn9|`o3p=i?FdhYF zwA_cb5l~*q&Oyn`-8vA9-4rSY={rXeP<@N8lK+4vvHn>n4?nz6x)~2_O5(g@LUuc; zKb%AuR(}O!v9T_TQzq=2fAS-Zx|qI^31Q)>#Nw=sHqz#t--cn&{`Ml|&awz5(ns9Y zeGTL_qC%NZ7Y0VY!JnGW3eKyt7BNYcBuH74m-TyQP{5`fJCZ^tH&=p_;63Mht4QqA zVfjWyKQRTyomzAF`{uMarzTJl zhy*FJ*JF{%`GXn+D)0&$XgQk|t3?pm_yM?EEJL5VzRj7)5aQ5gvA~fsHsUimn&gG+ zT@0;vrt9?r=a}HkW<~O|d9rXeC-F0O_IQZbs^ko#AOzm2iv{n&l}$+}!#N^^Ile)* z;Sv5Kk0g~e;%*Po^s2;m$Ed-0MEEljxQLbjtCaDNsSA53n0+%zd+|l>Fk+t1*95Q0 z7z%WxK?@Pk?$RSd6A&#t&&xu6d2-iO1Phk*y~5r1!QufDDv1hbUXL;awfDq4FZ46C+YVwixcTT4he`5 z9j5QI_rmD%j>&$ZNUPN_A+t1viqfAdivp}h^igEr!1ZL8#lV!OR+gFW!f4uBTKQTY zuYN-O3Sl!rVtN%_7=>@#IBF3*;{mjlNuOQ**JC$Ph6 zWg}-aD;K;&7c#2c=R7%ARx3B&L$??Mtzip2S_^oI3U-EyV0uE2;oQz>O7{>e?-;5E zXUZO#Lth6fuLM1u&DFp>J)fKk%@2p(b5{OqhoOWArUw<<@;UQWRE+f%jMe&qv)P~C zU@KiM?{6H2uv&+fA7s(wUouEeYX5@%i&wjPKMk#cZGJX?V504U!HD<0|3Mmmfp zxRxXm;YcvsB(6!)@F0uzS)cWV9-u1P-m4fWAIFP=#`VWpF;*2ov6~}AYz|b;RaD7s zl?d@!JJj80^*1yLNH{nqsP+?8=I*F%+Mi$SVMr!FJ}%gVpqREsjTbLfraT|lBIM>Q zA$`N7%~rK76Q%Oh$B6Ny<~3R1V1Y=P91?Fag;~K6)EIcYK)136Spe&=i?S9ZBSQLs z*DI3MQ{l=Tk{lvw_+Kl4dhm=Efpb6Slr6IJL5a4F~#>D;QPV>dFg>LO#{+ zY(YO?yH>Oc5k)$5`W=}#H7USyvPP&;XN1LRzDcv~HxpEkd^hXAY)|^hYVA3fDWxH7!A{@7**&JoD6A)x?_|BHwKE+$ z24j4dl##Zht=9jrLI+4*k9dce9T(Q7dGOZV-c|oZRfFCOB5wu9{=?eoB$;J{z3?~c zjF>M3dDVEq_c^)cVYNZ_qX*Pi4?}0(Vps^#vx4?QA#;22>s2}QgNhJm>~(RhaZ9`o zO`1|CqxOj&2ur)Ct0i@YybF{t;*dyjt61hQK(&t)d25w5l^ZrOii1)J;wCfZQ_=K` zf`(&X=-@6L4DpI(2^`-QoJ^Mxd_X+eDPEZ_ci7kc+Wi{1?@hPZfVfSX8u?DXvm9|y z!e+djLdMKg~*{xrfEa)oH+7_C@#^lMPS=74|P=dbdUhK}ct^*{)7Aq}(s90ti} zQ7p8J!WVzyD);SMg5mY4aDeT~<4~$P1w7db`ju&l6%H(bGwg=baT|*US)&MCpJZb3 z2%&YW!t#9E`8HMC+F#QgZgb6&ED%CWS$xyTTMD6y11GQBJclpOH- zsu)%c?b5v@+1r_wf{Yf;8R^8iBRfrcH@kA~`aL@jrtj>ajd)dt4%o zUlP2J4X-}vTxn=kvYD^2bdO{ptw4ePY>6;)d!9o-czaV>aNMR>1k z(A5FMbQGi0f#y)-oT}xZaU;DD0s~t)!;5Px1=|MwH3eIv$>SCC$Q+rF8RQZESpxbESug(aHDArgC#A zC$aX-2|sNLljEQWk~71Xu~pxkN|veh;>y|W`Els`S?()q?rTg{Fz(FRJ(sbLyE7r3 z%g?i0*EcJ1l_{q-%W^3zeW2phB|jy=QUu>qA@xvhqEe%B_ubs~GvydCX8)jVp*^5C zAwv3P62Ew|%WZcGfl3&LQQHC;ge^ zRUI);pDHw)ibWq-PMzx#q|FVMkDEx6w`c`%YV|}oip6hYTJ4_a-9)==RjGE0Y?{T0 zDV+vdT&(aNh%E|8cf@KqmJQgQrM#SsI4th2A#B=k#1^se@XkdlRiI4FBip``!kuDn zsbn1X)TW17c?Wz+x|NjW28ZLO9hk*X^I=SdJK17PqVw3w?BH@ zYqnyYL{g2z-4G|AOpyom1pJ`)_r_fAKFA-F^qg9Hh@PQ3+F1r}V~Tx@7w=WU^OKvr z69Rb>=Y9M<+G8_)l(4;HV=V(7fEsqU8B)y#-#uj2C{VyEix=I~N3PST3Zteg_{H-5 zx9)h2ay6k%)BV2jN^!?!-r{5=DqZL>YmNAhx2X3SqkqQY_Ex-C6bB-s%;nN_u zqXyNHUFcIa@K}!AI`Q?Fg~ z8x}sU9PA?eZVx%?9_)^0rf#57Wwf484;#)~?B_T2etyYx6df;*eb^t9$anGvI-JP6 zt@gHkbom`?9%_XMSvhaf8Qc8tynEk2#-7~Ht#pap5q$M1oiy4R59RfRA2E zFg)M2vCO{7)wOy4Q|AqCnzUXx?fgvd)c2`gWr4h=~*$*lTS%t@$Q=^@go%~ zFIZ{skyK|e{EfI2ytSFztz89=5to!)^PSU;dm-EHe6*C^%fofWH!2~1^5!l!8Mja& zz8ay@ETP9wFYd$d+lkpbVP0ONn{k4Nfd{|9V6l6nn23hM<8r#+qm+mSgOh7Ed!w33 z#^dvN-rS>_ODB`dWU%|7S@cIEskXXTxl#;eVw)-E`OKRL14thrUO@w10QAP-R^ZS8 z6hH+40C@H46&M&8I5;>21Oy}`Boq`BG&D2}3=AwREF2shJUl!C0s z3JNMJDjFIZIyyQA1_mZ3CKeVJHa0d64h}9ZE*>5pK0ZDH0RbT)ArTP~F)=X-2?;4F zDH$0VIXU_3*RLrkC@3i@si>%^si|pbXlQ9^>FDU_>FF657#JBDnV6WEnVDHwSXfzE z+1S|F+1WWbI5;^uxwyEvxw(0GczAhv`S|$w`S}F|1Ox>Ig@lBJg@r-SQi+O+iiwGd zi;GK0NJvUbN=ZpcOH0eh$jHjd%E`&e%gZY$C@3l_Dk&)`D=Vw0sHm!{s;Q}|tE+2h zXlQC`YH4X{YisN1=;-R|>gnm}>+2gB7#JEF8W|ZG8ylOLn3$THnwgoIo10r$SXf$G zT3K0HTU*=M*x1_I+S%FJ+uJ)hI5;{wIypHxJ3G6$xVXByy1BWzySux2c)5A{xO@3} zc>8(z`1$(!`uX|2dGp5K-#;KAATTg6C@3g6I5;FEBs4TMEG#TMJUk*IA~G^EDk>^E zIyxpMCN?%UE-o%UK0YBKAu%yADJdyAIXNXIB{elQEiElQJv}2MBQrBID=RBIJ3A*Q zCpR}YFE1}YKfj=$ps=v8sHmv8xVWUGq_ngY2n3dum6ey5S5#C~R#sM3RaIA4*VNS1 z*4Eb5)z#P6zkU1m-Me>94R2c--?cO~G&eW5w6wIgwzjpkwYRr-baZrfc6N1jb$567 z^z`)h_P&4rzOS#ZzrX*(hYte-1A~KuLqkKu!^0yZBcr3EV`F0-F{Z-QC^eY-s zU%x=8fi4hjAk;vRf!G2e1;Xf0dj2jw9v&W^o}OM_Uf$l`K0ZGGzo4g~p`o#{u?cj} z?*B@94i67cPfsr{E^cmaKma{FJp5wlpM%lA(L?r=9^w!XJlp-m6g@i)wQ*?PoF-4RB2;lV{>zJYinzJdmE%sySux4 zdwZWhf8O8UKR7r5AqUc|l{PykJ z?d>fH%lrHLpJaaj{{5H0{U$o_0Bjfn>32mU!LMHZ(Uko+W#w=A_z4Hd(}4^f$j5=~ z8_2T#$;VGq_9q|zQ+$BP05Jig;cuPg`VAYFpV;*O z>}Bq!3kM*Po@jn|W3f1Fw(C*KMejr4C{%&vC{bg9UIb7Oe=%pq;I^QihT#8bilk)Z zBxMyO<&>o4m8BI_WEEB9l~n%8iNH^aJb!Cx{!vd877`R078D&G6dMr~9}$!g8JrXq zm=GPB5EGsd8<`Ln^Uq8K{&7$9GYJ=!M1BC^MaBye{2w2F-pjR#up`(*wVNv4X(Bk7W5)-qLlXFv0@KI3-Qd0|4Q;X2h zh|f0eAw!_C#l)79VGHOR*`%+D>t-z_@8EiTY4 zA;>K$*fk}@H7(RNJ}nf{9D&Ie;8RI-??Br=g$IC4w(b{7+= zFk(7Y1fSWxz7Q<6YW=asvhhr2y~o@Kr*ff4E}Db5cJzv&0{CDu4BsT{$wFxl%Khln z^2wmT2$?B(DmWZ~{J)Fa-|eM9zVKHs1xoBdsW&L*{=Yoh{9~E;(vI&e- z!*Sf#W%60vPG5l8sfUVT3_8{S7JvVq<5_^0g9!T{v5G%w``LDZq6*N|2^8glMoXYT z95h1uldwPI?>`QY{mN{+h-9Y`%VZ#h)MivWq`I_;=6vcjmRAVeQXJ zEoe*&n$d!?^8a>F4vGUo`8X&X2PJ}_SR52#{0zi@rQx6~<5!&Vk2AvG0DA_!!2TAL z_lLru)9U|+`O@!+#%M$7NFs??41r7|a4eNtjS-{oidgOyt=Y#snWpl|TyD27>tjt7 z(}lu99}r}lD`!ikQ)vx8HdoD8P)3U8%eGW6)@V1`ZhZ6rF4P+j#1P80)~+^LBL*mp zx7K}XbKd)y@8`_0(dB*pWn;YUt=9V>aCjp5c4ytL2y{BbiS~xQ%0zOx0{ISC^T7-@ zyUmFXHm!*Qu~;I7&KvoeajJBVi08rH18c$ExTR||Cl_V;VMD5$5D3Um8p=g@cJKBSv8+qhd!Fo@m3s-(`=fh_!cd21N#a$TbPuKld3nl;Jx2(UrQ1XxCqhB{M&|M33rvlxkezmm!m4%Xj1yArFnq0-dcmh~T z{mLX#(NH90(Kzl|6Nw0HY)kp}OB3;EVtiGEjs}wcU{dl&y$7c9mZ2cD@`p^E_PZ#kEu0O|vf85#n6S04_#`c$C z_&3{4`F9iA-*&b@&vi1`PK+jR_l5l1WS#rZ&69uLy5pbd{Hvq$_cu@exS91!8~$7e z{vTfl{#!mkE5M+wUeE{u}ZP}8S~yq zmxRj|g(??CSd>KAWrf;RD!h3MU)l^-(+ri^6<*BdR09gQ-5&+5=9Mu{U+a3bd0}LYK)vHVZ00;oo0s!3rK=1F>^9s6# z7&lsz$~B1AK9SZgi_W%$&aRZ!u9U{Ul*qdfF)1IcrU=ji1avk4Iy)d+TUj%!C8J7Y z1M}oP(iFWibo}$IB7nA$CAN`;_M!PsUTKbY(N0y57GPT!u($VDRsHR~qPx4dp`o`L*xOdx+xwU5Y|3gck7}<2{r8doR&9YjK)X($ zU2loqKMG`AjEiH#X`ctO8bC9JpMlKl!9>b`AK}4Ny)%;n`#q4M{2Zl9B@!nnb_Idw zZlY8w&VY1AJ%h;U&(BGj?|oA^pRH}j$}g#ArV+1Ld=-boY5So@yX(u3n4~(;W>Y*BCIriFf7?cjaOs4TN>~lqns1+--0U_*j{U7be^Oer{ni9D!CMMNp z@RowwoHqlFa6HpMc-~8yF$a_P>4aQ2R->Rm#;`K;n`4hnG1_LA9<|CES8}Z6#6rVW zNvTm+EB%l1Ld!w)%>-**+q;O$(r0Y(jSFATNVyInXdd6A_h&KluBN zum$~(C->duJ%kKKkOR*f+(<;K8^Dp^>J9ck1zDE8HWX(?pl>u^M=IJ;x|YgH#&jYFNx z25HTLeG@OTpf4LdbKwM+mC4Dnl-1PcQDhH?B@iNI5?o;4z{N~01VoO7p!<|jgx+j_ zP|Q@16H`){VDW%ckkh~gh&(Hb4osyjWLrRMEf!0h_{$1B zN$UHIbJl2lJ| zk%ZHFZ8a|nAO2=g7@D5zo$%@=rE|M159mNqG;->hKDO0TCKv9P*i$im2cFajsKZ(Z zan@;dHt~bU+^^H%-{M#r=h4hb0#w26J=la~pDIN(Y_o`$rJhqc7R8nTt`Iq-4=L8rp+0ZG=uxs~B5@GXuf1G2crEOF>E2jHqwwD!glZ9(|AeF=kQ5Ad zJU>_=ZjOP)1ZiWPIDf;;g479JzLqR+faUs82w7hoGQ&%Vq$J8DcYlGeJcF>@Yn)?w zFvB_^0kgBjNw+f{PSxHlf?xl}H`ArZaHbMcf~l^%r9*3`dgQI-#=$bDQ}Q=R6{EG= z!67}SXbn8}3Xx%GEt9qK3JL6cJzs*Q3pNqM@I2F`T>;3TBhyH2Fm=}Kuv6k1-dPpt z;hx|iMpaB&@gE3C)(j0Zo0Pv3KdUd+5v6_pz3{l4U~u|8AqAuGDKt?V^hP4MSED-N^+{|z z=432xc~uy@I3e!FhY+Ho{hy_<90^9jMl|0#*u>ePbVd;tC^O=IZAffxo}+#W8mH>1 z)FWV-jluX_#S@FQo8TCRic+8Fe3`kX8S^uUCEOrzU++$_5~vz%bezT=vBMTY4} zADpi<)ADojCx{33*6S74{D3ZGnzvQyqTcgF+x#1n>+hy?EbB!Nc1Fr-SNmya_pAe` z)x_yD~c(AiZ)e)LSk5q0PNu${1D79lku>y>8`w+25zt~^;Ud- z(b-mb=YB_*IW5J9zjX|FGgt~aW~aprCh#5%_FWA`!6>~eCI;x&$huQnVRbF;PUJYV zbnThSvQ3Jw9#~Iq;cE#QOs25x?n(0fQM);4W!VpoUAR?3*|8;zb`=wwLh_2hjR&m9 zw}2{j5OdEO9ZJRTmX+~+9iyb6neyp+g`cnNsFOxb##vr;1lz}I!bxcTX2q~lDhhz6 zom}4CZnK!;&X7^z=S`Qe3I4+#C&;H@rzBl<~>3N(>8f?p$2Xg8TLhSqHv!q8YySB4h_jpNWDKkDL)~)0YQ(%6gNHxV;d`rj}dR$?Bu*tZmn24js)ab-a~sY@2t$TKcfhIY)RT=PMIb zt{+puPUJW*o6Ln^-Lv7!GOp&3sBv^|G|HsuZkGmgMcJxExn+-_S;ZGf>qzYuL%uM; zR=g803K2{Tir11zfo^Htis1NA94tOlUiHX-Y< z3>tQDh1msH<0f;j$V|+SgkQ|Y4L*2PpJFTo9Ar<__Z}LCj=XN_k0S!_OLTm0BdlA* z%$ai8h3#Q1*jZ6%AI(qC+|YSEd2-xZbv%Ji#Q-X8oT0to3Z|&|8_P zhnDNR@*#4hDbABL@dQ%=WHI!KTW+y|_;pOnHWO^DZjFdJpQzrm&T&11$@vik=PkWm zVQe#Uc$Y1EqrX)#>s4ZN${@g~pfo|(@XdcZpxtk~)i?U){0%`y$G{DAfW8!-U*sF` zdm`*bg!3h*w;>J#<)}4Rw2VWZHN%0>B5$h1gYZhcP7Y1Ay&SNpy~CCR-&lCxrkhq^ zg$Sbu1x2FZc!%gE2f@QQU*39LnA$gez-Xp&G2$dtzd(jzM(UMBW|!2byP-X4qHP}V zJ@lm5DI%RNk=yvjvUcd8JM4pst@|+;6_px~XxOls%z5~V>O-UjeYv{oEW_A7-uSoI zQ!Uut`vxlG*C#-vh27Slo8i^yzfFo z+azQsAOo+`ahpR8oR(b4f{lE$NV=}K=uT0>I4pT}UA$p;f{;)-1yOW? zI7ZM};<#2OFKzmS-r^nJA@xyIT`SRe9Fb2WF}nL6(D%j&4YZZsj^nA`7b(#fpBZ0@ zeCxyQ6tcpFTMfWpAqDP}BrGD--x`($J3lJRccHPH&J%W0=zmp(sg@$(s|+vX(w-~z z!)H;1g4Dc0bLlgtkHI0)eW%Dl!qEO%jJnPE;{p!}w=ocIbFHKi)6AGeInj2dRxl#ZqVeATE8xkJ?hO8B@em@S zq!rc^1MWH;Sj@M`G(Hr3Hp%!Z^tQ#=5X#`-$q?O1>HurGhh#|wij-h06fvE&3Rk>R z>oA3fG!+^BZD+fc?RcpVX^K2tW-`He{g}{zP+OV|p->0#Dlj`8#WrtU!+rIGoAkFh zDTo~$Eh`>f+8Uu_>e$EZx-6OYH0ioLCQfB3>Y_;!u1O4@D6A?ODmxg~RqB^1X1ZW3 z5H4C7$-F|9@vS5A5U;Vc8c1ZIY`6}hEIa6o8r4s6;-S(N*wmaAJ;PVE{R9pLHfO_2 zf(2o3kQpQM@^%d-z0z!g84aQ%=AxVdJSYp~5;o5+fZNZ4^lhk(7c^siUKb0w+LyUJ zcgfT)l19xG3YIYtBFNi8yf#+!dahbbHc?NXZ4Jxwwfpl2`;iW+6edyGUD*rVMciWD zC9Y%&!Gh&%`jKH`LiIA!VP_@2qf6?CiEcBazn2mUIxggGHotaPf^d~=zK%sKwj_us zu`tVYaHj|~l{wX+3vDYFEj6I64qh9^@h$S(DM9WpBD57`trEk7Wl&?)0=taSyjjYOxuAwWeO`SJz zEPJONGhoFaiLQVmi%e}CWpoMA-p7vy&h-qNO(=1VeD0ksJ72NcBG7$@4n$!I*|A!f zEm!}diB()AV8X2=sd9Qz4v7k>=}Pao&E$3qD9|nA21|u;u_su@*>|Ui%OP}ltm;=s z0UA@>2m_+hO1{tpUX1eRt5#cN)M&9*@uOGDx&b1=QGvz<=O|zh{Z*)>)q-NR#2=Zu zyxBfJa(m7*c#YPDe5?(#DJHs)R++CubK^#WsobMY&rs)vnCG&V{(k^BK*+y`4?(Tv zdW_pDuLskt|6r`UN(76euH*_4);cxViXZN}tdNNi;0lAF2q`%cuM%6aBS9W5LL_cM zu^_>*4l9e5c6)B3CKg+=CVR3dYZxAzvLUhlvMl?uYibt6nJBW6QTRv_EBgfO^j4y> zE3G6bLF+ySIGXw|@J#fE&1i zJGg{fxFt)nMGLnop}2NpvW#oE4}rKu`?ysGxkP8Vm>VcwD;bn~Bj3@vlIt8Zn_fB5 zxkDSe63e-$Te&q7h0r0ihd~*xo4K^xwW><0O8@$XrxwxAnu7SL%`?HV%yv_cL7t$NM(fhpG8z0ttz2I9MBn!IP`x4(fvWhXh z;R`9_TfPCA8|}-zxhucxTfg%Wzr?#H`O6pQ8?x!Us_tvQr7OSvd%40(zybWe0&EhD z6Da9XkK3!e#!(p)H>bU)CKQ}+D`LF8TfzGK7#&O^0jxT>2etj_Ey~**Fhar}{I>Qu z76m-JEu6d=T*C{;y*A8^797E!JHuWBYrw>n#S%aX$>SUva~W+`4aa$p}o!>Z`b=tjgPk5?*%7QGCIKY|A9! z9}2{IeZbh8wKG3oIuNc7{Z(zReuW zgA&Y~q|COQu~EFGp4_;^e9o5O~mrNiQ}&a~mo^lZQ3CU^e4#M?Z{B~i}%9L}(Z z!Ov38m8;F@jLPaP{u|rk`U}ZnJkY`C%`B|U_58=g+{E@w(D-cACOp#Ith@*9 z(g}UgyIj#FoykQ!(d;bEGp*Bwt9Vp9)TDdV$=uO24bUJB&YsK1SN+iDtkEa!z%b3k z+WXW(jKf=~(vSPf9No*N9MVXA(pG)evHZ?k9niJB#X&vIXwAuXP1n#ozrh37c+JEa z>(q!n*R{K&WqrHZEez#?Z1~T z+8Pbj9(~w1eA6+V+7MjWV=dcQ4Zwb_$^Gom4jmm5z1m{k*}`1S3So>g4cN48$!~4Y zmaW&1z1(m9ebd3++rtgmd(7AhjL!J`*x7B}Zmro&Ey=ju&|&S`S>46FE!T_u+S5(a z2wmRotk3`*-=2Hd`y1Zzt=Qge+}7q%YgssLdEb}o)%Km-8_mmI$;H;h5>&@Zvjo$?Q;0@l{9$wTzJIpJ- zB*k6GyB!w^PTwL+(Y$Tl*Gr_H9mae;-7MYQfb7#B(w{Bt!)}4dHXh{#ZQ%l~$SB?4 z@ZHs`{n5It`JlK+r(>q?-!VSr7JjToG)ZH!RU`^w>&E*}w)_%RmD81z=T-U;#;dq?m#*E}f z?B&ZmadfWcb#CE^uIYc=9f*9$q2A-e3)Og@vabH>vOdl)8|$-v>$o1ZRG#a+j%K_o z=Di;5!p^_DKJ2+}>&IK{#=h*#F5}Jq?0Adp&_3}F-tFH0?cg5n ziP9V5P7&nJyyq^l=}xrkUhcSYo5f+a;M?v(BJX$G?hWD_`5y09%M$cHM*UtAVf*ha zOYrV~7ZH`2cVX|%Yw+{I@O6vtYNziL&+k)R5)MDMEiv#>#O@t`@Q_h)?;h|V&;Ak+ zAGrESg1K?>IKlEUbn)H(dRS#*|JNW7B3u&!^Ku)m`C1e%U-BOtYd`Onber-izwjiV z6C5@4EvT*IR_;zhcTC7sDHL~+r6pjZ^KomOky)4{PvD|#i2m#^HtW*;B^oxJp7X2@zQ4weYF z;^=>MV+D>yuWir81CPW_ICqt)wpdw@A^r?`K#)jY%w*yKnqt{$ugs5*28|&|~ny_yD z%1ERr+2595umK0j{H7JT{9UF^E?L4j{`iwFyQohr1^kWse8ii%b;yC&8Vvksr>*rI zDS$M&-i~HxHpCp@2*Y9!LXJ|x69P|n_PQUTQnImAJuNdZY+sS~R6P*V4|~j;2^I9A z1Z*S)NTq6C=K80^&H<4KLL{OQNfJY|wd{ZE(?l3zmd|280Sddcq$8 zMTj`Bj365)Xp*HgMUrY7!m=DSg=KFWA?MPA$}^6WALT4v)!6wi-PJ^vq`T#u$k_~Y(sGQv zOQt%dR?Sl`F^$Sh2|cE1ENnc*RJFW~HX#yCg|ZHF!~`Tab?MFcu`--~IR&iv>8J#9 z(vCWeLN?FmqX1+QZ3X3I1_^0QP@d7C1hU5w%JsiZQWKBc^eD6dlhd7I#w9*Lnu6-- zrlIN-ak`}9!hY(PVBT?<^UP>a#pu8!;37@{B~4eqI?$i?G+{)2szh(7(W(|ktD*dh zNTtZgkFgq6tXRa_FgGnF zDc=Gsx28&z$pY%29L!_N*qX#%*5s|kISK;CVMOkEWrg!$<5G+&9-|;89EdDq4l!3+ zxAyRmaD~WVduLTs-tneT+w3ZR+e#eHc8ZmX+u0J=+~Nu}xa!h|@%BGb-(S03F zeYjQNc1pU)DmZD$EBxW?i zO<0Bki>>plS1bb_$9^Mrw=5CVxTDl;doMiP%otBi)bj!M&}+Zs62-%xy)Jm6s@ssP zL?9^@q9@ z?~Ey29xaH8%o;n(3ddY#kMvmuf4;MW#R3>k4J5bQ;t|4wmc&fZ9)sl%T~)o?ivVCG{P^h zA*Ai{{y{~_qzMsag+mW;#3k5j3Q@0n3r=XwyWa0H6|LQ47gd(%GXECse6@9Kf3dqF z=JPHuVY}~|3VTlk=S{r5vZW2_TjDXfNMrrYoq_LWo0krW!^Q0GPXCa34U-oZLz!1o zXBp;|3QN58wqUCW{M+$~d9HI~mykoYvP4(6%rWL0pLqPQDlNJG7PVQ9>u+--)cK=h z>H|-);~fN}_-7%2e+<4Ng-`m66?6H&o5c2?H~dSh9QV(Iz1yDFZ2x#G zbkHWB^QK;Yvr|&~%v#(>42Qn5yXkwv8$R&F`MuY@Z*60GzYaKG}^}m1q^D*812fzRnzyTz{0W3BDE5HO)zy)ML06f43gun=tzzL+l z3beorWT^bZzzyUu4)nke1VN}7F#!6f5H!IPG{6!>!4+h|7IeWEoWKW!!3vbY8MMJ0 zEQ;6C!1BYv9(2JP^uZt$!XYF=1q8w(6u=`y!X?DO6-qx6+(9Ok!v0gjDYX8=E5yPq z)WR*~!Y=f}F9gFd6vHtj!!k6(GepBQRKqo7!!~5YLV&|UaKkyI!#WJYIFv&>)WgKV z!#y;KKD5F(L9!$LGf2qeU!NW=wP#1jNW0>r~c^gv0R#7NA;C4591q(nsAL?Y}& zzsN+XvBXO}#3>BLEF49#IK>3~#7_i3SLDD|?7vhDL0GgvTEs+KtVKA)Kw0!eUaUYs z)WuS~L0@FTQ3S?6G)4hz#bi{#VdO$+Y(QxYMrS0(SG2|}M8lB`3hgvt|~3N1K{et>~^oXDM=Nm}H^qD;i2B*~T}MM5-4q2$SvJWENm z$vk{Sn3PJB{7P_)%b0Y{hrG*ybjP-Y%aIgIq6|x?G|Rcf#=n%w z#;i+|R7}XUN4><$qeMx`q|Ba#$$G3zw%p0hJV(nMO_n6c{=Q^MdhASTB+Zr7OtOqj z*xbv@RLQ#Z#oF}D)ojdil+D@fO*wQBuj$0aY)! z&G_`n;1tjPtj_wxO#S3d|D;WJl+T|`&gsNW_bgC>JW$kJP14-VpKQ>s%*@@4&WEzRG z)9j>E)f`WJ{7)E7OGS0e=;TM-Ow=bmRKDy|+oZ`xbyOUkQ7&~%PSr_CZBHPbQ6WXr z;?zfu%w+2V~)#1BIUZNa^-4po%oVQW`W#`vN!eMRUHQdd0fuEu zw%S4-%JIcmGTl%jeOyA$*E&w!Bi7q^C0K6$S`O7$7>4At72|0p-C{M=%nj#EcI9nm zW=%ECYCcv>rsQ}2K4f?vW+-;&YxL)T)<&RRN`VGw1SV)!JZOZz=ErQoh^)#1eCUFf z=!x#dgl=Surs!v`#D!MqakOGb#OT(QKrhYck~ZmL7C~34UA}o^yr!P!Jk%0RPO1cM(U(i>ZNAtrgrM5hU%!6>Z$HQp{DA` zjOnX}z%6+`t@i4#zC)tM!G5kl?|58y4#isPYK6{f{nLV!c!x%tMQP-k0p#j4titIc zA3EDZwFbktzCF1HYyGooQ~cu#tZVXhWPdTajTURdc&&)S>T6Ey0K986%xe+^xkB`7 zFN|ywag+WiV7GTzsKK7Y$F{Pyj!2rL>B8o}Kk=I$=V#>zJ7%%(lorbFG9LfDQ7 z+5VbR%EC-aL>)^p1*s))Fut@2t|%O7b8NrY+h`Xm2xheHSoSGY!|tNyz!H18^>8UL zUNr4KL<^fh-p;VI6TtYQK=ejJ_7*V2s1-Y)h51{;kUEG&Y`a!dDTq27bZhSat45Hl zI?1l+mX-+XChuV;s|9CpQABOh@NTgH@Zw++kG$?uG;axX@5NH@0EBN2XQwO-aV-go zwLUo>z)FVDNVR+W4 z4B`Gt4Zg{Ym%0&2kV}lWkcoKUNcRbO+EC28@pumUxOZ%rcNVDkoSQiQMmnP?`BK;T z;GlS$+l+<(5EaUKHF0=-$9JLM`37GPi0X@?wUX~Ocvxa0qR9GO zV)^Ef`priAsK>X7)AsZ_H5A{bGbsc`@p3Vnl7@!x9%gxc*&n!<6uA!xD~S_Q!PlW8bD3*i7K8gfml1NEQhtJdzeC? z7pF0CScwSJxxTHuJ39N~bh#AKkC=twMn9n}Jmh#cgB3ZX{R|P5F@eKEnH7RDm{!aE zfiRslMwK|cl>uJFYJ<9|B4hXn{L--sa#>?*I~{&_h}BmZJ~@5uGxi!1{)z#nLFtt~ zdYE<56z?~F@F%gy`WIv&eunAxv0Hlc2mTs5JK1l41w$2z0SFlX1`hPoj2;Vu3KudY zXpkK{djhqLBQcO7JrxCyv3t<)p+$ulHU9I%(c?fj(^L={_+*?u9u5zpAZX`_z>DKD zZtU3b=Rb<<2(x|D^MZV-t!t@_gqwxNZ#K283abs-gYG5=vr8kQds zgJZXDy^0MjR-_4!p)J^~F2%ZJv5oZ;WgNQzZLvOh7+~PBvH#c>Qpk4i(3wo*f)y*X zEQ>;C(>7B)@G(O-QrW#5P-7uh&mbGewa7MX%tDkE!Y0VEF58ncJGKNZ`6tJPc?rUn znVVfm#!VkSAktPL$K-|bwp`qH_4DW=$LS@=wyWL1K%+mWzS!_%-wTx^X4n0nZiNRE zGE@(muwlfCZ&%+Mzc_TrwHK03?^&hPd5iZ8Ug*~==G3NB30zU!hm@VO2L z++f4Bxff!)2gb$dKx1UZExH&=I;DqJ{)y>cTMp{wn0YpJ3_^+dfXxF~u?gRWVWAWk zoPx=T^H!&#l~}lVGB&TbRi3X;w2D7v7^Fw?qMv6M<_>2{^&``X5x zviDnPZ{BK~c&U1LHK>^#3iQQ!dQHO6-&*D_zYC3_E>Z(jhc~g44!*A8pGpfFvzw;< z?7@0V>(v8AZ;W))*{03W&fOwT>b(e8zIeHYi#Tk#D0V!0lcmR-FxdCz3p=>tW~^}F zb+_%elc*P7qrWA;?snn~2MO83tji_-IN|iD&V1fh51T?BTl)>zVKUbS?3QJ{eL(R;axrF|2aBt6T#! zw#4o2u01L&O2XQ;#f3PLWMgcR70*a7Dgq~pV6>tOVfaKfI;D%`>JA-cv^=JL&rywW zpp&*0C~^rVed-Gf0>&YjQ<(mVDZcvFVaWE6Qz7J2bCMiA!Xc|e4NWx}OWhy_7vrbNG{_sh-#&-1z5-Fk?yv57NfaF~n%j`C|pu=Px{gPE$0jl^u&& z!>(T4(gA!i?P?>$)P*o^ol`OJLn;qgM z6KR*lAer-=*9#yU^9eV2rc+1gj3*rH*`npW6DaKb*LL(GP$XHiJ>1IULQWMrb)HjY zor8=$RM43EeNAeD>XIRS6DEp)qmp3(M_=yp%eGL*O0m>OPA=IPj{MDX#*CCFSs4+H z{)3}@6D5}jRmz*92L2ns`lTI?QWy020T@jBXjqu_FetKx`; z3bM+u4kQV@_)wSr@r2PxN2DY4YGsB}1GbnoCyZg%Kzv1j)7X#~0zpq9l8O`pX<;RN zHOl1lI@hxLbuooi!Cbwh)ZRo>J%FLgKe*~T9wE?ED3oc3YAO_>NcMR_0Sueg3XzZ~ zmLPRi5FGz`5yKW_vKU*CVCg}k7PgkLIS~<9tK)}00gzmBb!}t0xI7l+_C_7T>~Qls z6~4MKxsN@pZ36^d(;?KjdqwVVi!0sZ`qo=)YVL$+TaxVdwz}c%r&iZ%T76b1E~*=Y zRNxsG?^VU3{tjfv)|f;9RJshLrFsldB#lUVxs-~8k*8k`gmjK5p zQUxyLP%n(iZ&fmua5?~_Aj4s;RCUENyh>b@TDuNsZPW(tlkPuwA zRpq#MdBW>riYzf0mkS&a!3$t?Od=(>&aqM6)lWsto(MxySo87hO_jA5{8iX9RQ^$B zNA=?%ow=R!-4U;ZB4rUNnI2A_+!EW|-KJ34BJ-RwiT6Cv8`b&F@98r^^sEzD>9&`! zaxNP8tY|M2bdrH)GExlP5;_CeLM&2H z0LWHD1Y~SU4Yx_tC^8Z*qh79LV}SS%QUv%Ng2P3W%|(*WkODCDAj*uiJY*1t4Bq8B zz`QkuooJ20-@gj@Um$V-7>H(aPcXQ--usV&#~a|9dU(ZQ5GDk7HVNepxZ0=*W?=)! zwI63ly^(_NMv8bca`+Az(+6$C+gAa|_xkT2TI% z^h|wf*`0Ifb-(*5X^8ix_=b;r|GVE!R;s@f-jszuJmTx4?!+@b@BD7OK{E{b$y2`a zmcKmaGp~7!8K~}o-#p(R|M$u!Sn{Cnujz|A_|scOn5+kVv0uM;Fl&AcEQw|3Wv~0) z^S<}K|NUwCS<%%0-t~2_H9$bejo@Yo@)KWz5Y2z;W^#> z9bVRe140>vy@g-lt>B)?Amh>CLP*=zl!n~loee65*3euC2B8oRArUg*sVu~n?43!# zitzQ(81O>8{Y%5ai9OKWIXz(%njI8YS>a(J7xE61L*?9tK#T#d;bAlAp$hO}zvST_#+>mCVj>%jZ3wlpCT?|Y>gThwPGm6 zpgWx+DBdD2=Ate>31;L5sx<`10prThl4n_8-oX`@8A&Z2Mlb@@{tVXQ-JQ`a5}q_x z+AdxrHfEzIQj)d-L!(s)$6XtwpiS5`rxssM;U==-ME2bhenit}2QB%p1 zHs+%~?xPSM;Xl-&h=|#i9RmsS)DwimKa``8RUcP;nF(piW(cG^vRxg;B_0%FPn&MB8lTSjU zU!Yb|jwM-^rTb~eR*1|$C`5N?XF~ePd4l1n zxQ1vD1Vr?t-k4`+ii+PTk&j$xbpB!;`Hg^JADsS>%-kuLhFaRFNa$|lCx5Oei}Ir^ zjKe@MirfY0fbON2{NO*x=u`S9cP=R4JeqYhWeMg`RdMI)WazhGsE3jWjUMTe8W*gH zXp>fm^JL#YSOMYapz^3_i*~7(?xHXmgct&aZ6e5+Ql6MPCYq|$>80tHzA2o>Dc&{M ziJ@7k*edBjH#k(YQe&V6JN2H$Kmy?&2yVvmSkUcvGuEv}Rdw#43nQTsuY~|e(<Pp!LPxk)qqw+MVKc1rXuvVE&>3F<#FWVAuj} zAIU~m@QruoN!krW3MS~RWSNM-{@XwNipJT5)(nKXgh-S`#X$6f%Z?nk2F+sN4cww% zO!)0T^h0>1Wi+@g3yf`mKm>%YXH-B0;}YrO1g_NzTr>QG+ztc|{@X9Ti0~}j0YwZu zfCB>DZD_GWp*`@!Ce+=FRdZPn4(@&Pkl=vaZCzT-$|3uYxb)^1$;(uR{E;Qz``N*hA#99O0m@ zrx_W<5DxdE-O1IB?y9f4WYoWkuh||SmvE;gwh5`LpVtjs9Aq##s?DwE}7$zeXiP~ADj$C5>^Nm zTp1T?&ZB)wa4>{tG~+W}$v7BE4eQuu(E}5}sFivQ@;qCp;ZzBi+Vepz>~u% zoDfzVk1@j#?f(L+Za52_D1|JLAcr9EILa%G+C$CGrzNd~3BE*ZFc0d+A%|QgMMkmz z7%61@!zI^=IEH6+%8?y=Zc?a+!U+T>doXjB1VOfBZMx;&+=nD@1tm*Kg^WZ`pu{aH zTVvdW>%y$eR_6Y55Hfg%1TVufKE8@X(8(z?ZB|hQVkHI8EF2u(AqoMJO3-I6v)y@G zaQ4>c3eVVHO0E3Fm&nM{QjD80lW|k{udwdXn}qU(j8;)-R(SBkADXgG@B}k&tkkx% zP2hxx;In*Ph%-+_{6GeT6r3MdMl=WVYsSS&R`OyHO zw5_dF$@pDEfu~1g2vJ{%Q7`R=SmxSDH5Jw6Im=7hYK&rVk35d48Ox7J^GHK=2uftE zgaEZaZT@n2yep8r2NE%d+_80~l{H0|3}Zaf3lrU9I7>$_a#n(F6z7TR+K=!mXadV^ z=gQWAvh<&|#kM5vM8nKKWCn@CN{tegazxH&BzAsQ>EB4svB(Tp)8;YFG8L@lC@L_( zBu~gCY^s^wYIw(HFy`LW(Bg^qAv)x_-i_oH5eE5&SC0=&2+Y3~jH;TfJR93ZIjyz` zt#*($e~k;pFgKOjk+ZZAHsJ_EJojFkq}-6%8U^;`3^uLMHc8(|dN>c(YA|MpZp+fw zNmEcj**o(M8YnAPiZvso>d;7IF9INTPO7_;u5c@WkDA z6I6G*lR)9BUXS;aD2GHrP8S(bb*T4WS4CqV_Fev?6wT0|DJ)z^HhvGCes_drbC(nD^ysfURtIYvEIH7(v9dLRkyr2w**wK#xc zJ3VEOTH_waWK6SL^-s9w%&2=^yOURD;&Qq8r;|5jcgb5Kv{4{3J>KJLJ-Z5>M-uQ9 zU^N#`$@*|Pc}c?)wPUpQac#wGff;Aw)xvYtM7LMT zUsrAYgI;j_FZltH);y7N!~tmeF;7=pyw+@AIK1FQca{FvJBoyQA=Z0% zFGB#lKF9gktIkVAG`URlzK6J|=MV$eEt_x|lYlZ|AIK?yu$IS?O@l+-!o}0fx6MOs znNPf|gHJ;mHjh!R3@1aK7L7uTF*7}1;6D!wx3B^uP@%0cs9hSJFq&gW7zod#!)}V+ zicq3au8~3^(1_@gw2}n?4?eAo^*>j>JEU{~%_}c>eLCM0zYZTGaTDp+krk zOFoP^u_8xO0_hPTa*Sd~n;|oj3dfG;yAUKBsw`wP;}~4y{;{KXK!r$+BZ(H0_>aU; zj!^`%D|j#=k(*!t8O^%1DaJxij`CazV$?+*vky9URhe3kme-Ap&f+I?Zz%ni~oVxGzW zQs@44c}zayFa939o_%}w@8QRnKc9Ym`}gq+#=oC`{(t}f-_uXB$N((RzysZy48a8% zY_KsN7-T53uO#%!!TyB1&_0PALJ6A*H4IV25lI|Tz!FhR5y2CkB2dK_`O}L<7-?)U z!vjz0?WP=ytI?)0RIo5d5PkgTi6AYq0~dB4xQNFhp^Q?>6&0M)N-1ZY@yaPdvuevP z?Ypr+hMFV{n=-fL4K<#6^pU1D+364{G{LOX&M&pRQ_lsnta8sHLHkosGvypKMCibi z61tcyG}O^YA&pehNhz(=(n~STRMSm4?bOpxK@C;ZQLj|9O;TwzHBB~AjZf85S#4F; zS=-B#)>}h*^(HO6lS?Ka8G`dvJ$3bQq+(V6^phj!?qjyrjgVze%PvC-cFke`iPlhM zaqTuhZjB8zMQ}USHd{F3gs?_yQNz|wbCZQORv5{3wmy5;J9b|8rWN-hcK6LSU`NUI z*5I#fjo0523zn6p2Q2jCiAIYg?qL5CCb3=}=fiifj1g|QMK85u2~?3UP8m$7P^OaP zNX48Fu=$h~%w}p6Jc+oLX%vv>nF|D2#Eso;&ttHJj><)(!L_(VpfBW^U#V5Dn!cnP zr25O4<%1f&nhAVrK!2awdFd^y6xwTywRVu`W;tg1>~H5*`sMKA)^KeG+y1z3s{xnx zZvzL9vJlbiIvg9+{xK;e#^DTLuU`IdYjM$nPNFG*rz$Ket?07TY$b{m9E0-EMXxL8 zClIp;90Woy>L1(K>PS4(+kKoT$A(JjiEb>a9HTekY+PN7SV!%3)JJBSUE{q>Nekfr z=?8VsX@3uKsaPTzcg0v>wy4$-{@$MO?Ve0=#vS+2q3M&dKIerk;_IKaa{kBclK?JM zv+uQ1yO3z%BK-&n@hpOxLXGYt>Z4!kZYH*`bt!DBix1AGhQayC2yAVk9|i9gG8ZMz zf*X`z^Bh>hv8C{V&pIIp>xL5wrf+F8G+_wy^*{~!?Q9y^o{WNZ5yxtERGG=Cq$LFuL&WUP!@~F#rAA(Dpk3N7QmQ0h%7NA z)v*X98Fv#v2GJrzY)m0Vs6i-3af|cwB2d=kzez^Yk`@8wML_f>n=FufN(qbyZHPh= zwoq;u%%ux?sYwv7kY%_$2?rN8%nZuVOTSbm1X<`aoQ-jU;({R#X?Q|tR?wF_%%KK< z`OT4uPBfxx9^zUA7}Y_N9%b>v!$g8fd$2_+N77mMFv1}S6+)ibsb^Wr*1fi{)1B~y zpgHqN9Ta@V4o`?({y!sPPpgndG1-CS9~I|GPSy__|HzAG)HxZC%qB?=onQV^hfY)y zBs)(SM*}g^&wL(9dqKG;WZ0OH>==br{CuejhVsskkcJ;@;psq{m%5bN)GF2zo)g7p z7l{7TlmflmjeOe9iyXtFHo1*UExD2gl5ji7w8}1zSxjSMvzNl$h&I1@)|RObt>e^; zQr~J;V%{}_B-1NGQOMU_y7gsI9SL1|W>^Jb?VxD=j9SzBSD``nq%EQwUNa&b%5D#& z;!z#GAeoswcIB{bDWgbu!^P2B(Xpol?Knis!n;gFk%y%TYb{6`h%v349>S>-)79Cr zMus$sv|A|tA4JEF5@4d99bQ-Lx=5Sm)RE`%pZK^sK-gM{H=cA>1kK6WU=g6LmAx$y zq*=?Vgb=It@+pzX%SM=*1!&O(W@RnQ*XZ_@umh?O$m*Kkapsl4`UNap>DEkSj%|be z72F6H8(9U%@VF@5Z-Vg)Ucd^Ln{16Me&s`832RoboE?pGH9}Ez6^eBJVu&T>)JSc< z)r%^IQ-=aP$-W$6Bo-5~e8+>Z8{G(!yyM<*Nv5Wy9D%S9<{wktcRaH>ZNuxy(9SH9 zBRc(qSvKBdAM@fR@ue+L;$^CO_uFHWrPpjXxsjKP=s&zwSFB=;OutG<=EpvhzsxLb zVuSu!VT4|Dn|mhog)eyLwRW>^Dim~;8SP;PPrAx|9<-kK%*;Yd4V(ymFk&G>; zvg#z~;k;h@= zkh%zfy{6bU$EngQ3p9bi0ok-kXA#XEus2#nshsOdvv*w6h2rlWZ{VYv=-hS$6|&4j&gJbOCbeh%<`Db3g%W7@!X z-S?**?af{)Hlym=?3sld7}4!*-m)$xK|LGPHAnbmtR8kN{e9`SBw?EjXQ?UQBvF-1LaTYK`vFdfOZ!NOH5DpfOF1;;qT{F(C>zPXTT3+DT7cb|*) zyuv1VwR)ahFz)b@TC&5x0 z4Re{a+(I*jVn5p2Hmw;{Nzlw59`Sptbw6TfdEMta{upw6;2*Y6GV`AP{u)wz?|gT^ zfY1Kv44~Oe&H9s6+>oY7HXf zX#)MA0`u#X)Pw;Y5CZ!zo~A(s8c=^^;U7e610$jW+v4?(E%t(CF@_=v2Evgvf+l1l zA|B}kQ_v4$zfT4)03zN9$cY2Bnl0pO_;sHa43Wvf9 zrSI_u@CZGQG>%TH1i~J8j0uTiDh30quy6ruAS1X?kVha&A z$?+C4^}f!6Ad3(|aq#>O-vF@57|u`NF(U!cDV8bHbVWGx` zHU42Pkmo0v2il?y8_$f&Ai^f$LkQIZ1=`Ib%A+}OPArU4Iz*x@XF^BFCLWb>E3Hc7 z><52JCU2rlhAyWG{~;jtF+o@(H4M_0FjDYlEYJcjA}LHGJx$O+GS3px8Y%7naH!K7 zjhD=?A_!o((Vns3r6$m6kF^ee_3x^gg$9 zJyjiV7~4>iYr4o^eenZw{XvP&U8)jG*9)EQ!b7@lEKZQ5m&S|D;dZquG3IsN%Hu;G~r_{5%bO1+`XRbys<{SMy`A+(Qe1a5#qW+468Wa*B)WAU3LT zRR`l(^~YDGby}&_@79weFt8Qdq)1DnNa+C_cw$0Elv|6YTFv!bJJmhG;yOTwJZe-h zEuu04h%3ZZRbAp;sS;iFbzk|lU;Xu80XAR-c3=s%U=8+Q5jJ5Jc3~N|VIB5iAvR(q zc48^kVc~^gL6t%?wpBJ(V`4QrEz(CX_E$ePMoQLdI@WDYR#P4muGCdwLY8D>Hvjr# z?p8Kjq*G)EhHY;4{d)FdQZ{S;e%4Z2wrGbI;c`}H6D?_x)*^!zP>xnlqc%60HeILo zQ~Cf^K&ro_YNO_Asdi?&_D4I&uN1RQ{mWT3Wkjv-Z#1><8*+MMG5`znGSxT!W;0Xru2+J>&p55oXxZ;t9S(f4w}oC7HZ_sl@)t6_ zH+!c^nGEh(nDmXTVu>zQj7Sl>22zWX=y{=(n$U=dh!Lq6XN_L2No%*G?69dC!j3os zk7S963WZzW@tIKgj7pe&9)e#EI5A42gn>=oMsp$oIB>0ZY|D4iPO^LdH;C^0J)Rhk1C^Dp%8{cmUtGeusE?pZJLL7KsJ1hyT`y&9^fL z`0)Y@hgWoTD$1uEiJ*eYpbp1Nk>}^)DGh5!Vl2>XO=!?YilIy@rt~-b% zW<^aw4 zIB~E3s^a8M3~9Md#ZY8M2Vx?N`qqn(V=JxdtM&Zva1%<4MC(lljGS|8B6iDec!_OGP%@1ToWq6e(N5(Xy42F{{4BUlI6 zs$+k0(VT0kc>ZGRPuK9Ca1NnJPWNc=%zO&RWST&LI*J7*Is!FkOwE&1j+yp(Y2jBS z6>p`ZtC<5Y(;#}UzIu8o(=`28p-+06vly(k`G>35sZIKZix~0pPmJgHqWe~I1umjf z`tQQHZ4y!8Fd91nPclon!?O5_-D02B?G|y&4UMRkuueht=I|u7bfwYtD%Ggt(#VR8 zo;&$vE<3JAI~5gsw#Le;Lpx*%_%pkiHY<^T-5S!umW`>mi#PM(>d`YZvf(zmtpf$E zeHl6BT8rPBMeN#(@!GHT`j^pH{PLQ)aeJ-37!nN|HtBb-QyHOKI$s$3<%BM(O!WxR z3ut^y{)H<07xh9^KkB?yv8XqK=Y}Y$L3@-9qvp2ER@j@9Ee~aaj^z~B;ar-2Wx15;OO(D>J!;Iqnecl)1XE@p*-)_LbWc zxTAYGBQ4EFEy0lnp!I^QrYL~N8M@FrP7jY{ZtuBpi>OrC0c3z zSy)k!SXt036nzal@Q}@UWOnZ#lA{o!KzBzb4}I{GhE)X}xU#%N(u1&AMdw)e&}px_ zMPS_z$h;FzdAb+8pqoq)Ee@?GG7yQ`eV2K{z5EhYJ*{zFuVCCHk)60RystJf&8@tM zrT5vZ{j3aJYguO7rQ6>c++|}KxdBnOt$D|D_}Bj&Jq!zl$I4s5At_jkTX8WY$TiXh zqLMB+d5;mi<)+h_F)o;^E?Cidv$cuZ1ZNIjEf%?qu0___orL_+d3RWV)2GeFeSLRb z-QSvs$6ATOT#dawG;OxGF_*3Rx!lb>+99qYZ#yNsIM_|vt=C+770;_ZzH9!`xW&nL z#qW2TZM&eGU6W*d;Pz4@x-g7PSa@_M>b>Olu7p*+;IQXiU9E*2_K zq%vRG)h_M4Dzj&t0@E{K*xpD8E?UFpPu{I`-k}+Dq9Gh^@t%h%^X9AgtZzNcLzCmt z@7v|P&dvJgXWqUt@xbj|#5r@$bKAp_Gw@9^ZKL~{>sC~r);-QsKu4Nu3v}}nvGe;-rd^BX+E7Z>zjpJR1@PiEiUYuP{K-H4 z)!${3J9VS?A^>PS2~~NHSAuV>_SZlE_1|a5_bc2VIsxJzm2vC}7Np1GpTd8q3_2vS z@R&n~`gkn7h%uwajT}3A{0K6n$dM#VnmmazrOK5oTe^G+Gp5X$G;7+ti8H6pojm^) z`U%u$P?CO{A=Id496c2Z{YZSUuqZtg3++6Cfl+G0o?N?n{R%d$*s)~Gnmvm)t=hF9 zfficmwxm{#5+N>3%8y9XX6yoZoXa+_;K76o8$OIUvEs#yOU70BcqHJ9MJF1pxRA=h z14lMaZVWoK=+UH0n?8*?b;!t(MSfQ32Ak!Am=}(TW{}~ zn)Oi0zB9h=m;_frsJ)LOzm7e-_U+uecUS&XZu5*1{f@-Td#`ox?AyD44?n*An&97F zbZeh3I|97@WG+ZR4GSf~3s(PVF^viW{^N%%?Bs=!MEo^1UxgN4h+&2rs#YIH_;J+G zM0PPWn{`Q9M$d=~h4|2hF1`q3j55whQ-}ApmJuo881zmE7ma}nLF~|T08UPWUai-J^|u1u0C05_hSkl2#~b ze!z8#s9B1>SLscla@VP+U6txmroy?}>ZbFZ`YEleJsN74tmXu3agXil=%iKls;RJ? z0!!Mj#&(qIX{@#et*tmh`rKKzx;7q7)k22sM}T!pAGoiIo6)q(l0>e2g%bM`yM(5D zlDnqDtC+my4n;3v&kFk?T+MO|DYe`f{87RF(z>a;KWTNFK_ukYGCThqu;fp6(9$H4MA!!ukU|m(gMAXs zhMCC#KY^P<;2>aN&;R^PbABx2R*+q>QN;ekvQKnVP}GnOU64YwSp*c)GXJymk`qG; zwm}Nj_S0<(MeXSm7o{DM+y7i*?Tx7cLa# zw<Ky4rcL!Ii zl;LiHs2d;!6KFsMa%6S9OP%g=r~WF=bufYg3|-0oW6K-T>d|`(@f|it*9Y`rEc#BimK^^5Kh&N9d2i#8dLnA(+h}HQ`=2Yktsi5F3 zg|JG~pcu45_+g5Ts*De@62ytc27vF|k6y-rjejJOhxx;o7P;uf$;l2bTH#`&lCqSQ zJtZp5_y<*dl1Fa!(Ox!eR1V)|tVd34l9a3*0kMclczwu)4wDtWaF|0se$tT|gWLl@ z_&8Eh43s<@B`R0A!tmIrW0<6*xy~iYOh&Sln^a{haapNc3UfKcbS3M8!buuJQiCX& zWx$XL&DiZwjC^^(&P4f-{<_E#Ju0N*Rth1Jyr{B@@`D$(97r{a(TwJFrNBa| zOCu*!lXQ?J&I~FmYq>#c)-f*TOrJgrfwcEor!oYUrLdlp&WZd3LO=Nvk&eJrzCa|J z;1lTM=Bc|vB&B*vO$aEx${ALM(2izpD%OO8&wqSXp$#J`QaxBYl(tZ?a}}XYPq<46 zcG9YhMe0!_DnpU}CYG0&gPjg9Xt1Kb5VOmKX)H6itD5dhho&5?OeZ_RiH5XeF(g?k zPdU?v9#v(FjLY)0TC}3nb4XSkALg)HOjX8gNW008Z$(+w^>75Oqf@IBpE?&-4p%oj zb1Yqz3!Cy;hOKf_2z6Vz(3I}9chW4aCkJ?{$dXsQo*ge@J7?X-LUyPd{j6V4H`>ik zb6J{AEoV(iyTIZ%cA^C)X$k8)^q%*!s^zI)HF{Bq{?n(kC0AQW|{|a#yS+mpS?{np!xxZ+%QZmm_*=r^=k{|iylIhmSh4@o|22`MQn#T^Z z(5qdX>%-27F$q+>h=lr6$zLHzK~3p4SD^^jaThVUR-BxR{}G#i*kj&NciSLvqpDVtsLJ>nR)H=i(@A>*+$hkWBY@3=2N9!gbH8M!%^ ztesywt0cINMHjWkT7fBI-pIP=1g$RFJNlHdi^uWA#&*`KtFOL%pIub&jnMxLO)K6V> z$;({wL|*TGdFLty!!X+BWi6Xc%X5`GzRxZ1tW9S(c~A|Q^7ieun^*tf{+iP0{wekJ z4SlwmdH*B|LZX=)x>4|+C22@r!-$S}EaLNQ5f!f-?voJP3o}M^8wo zghl8c{so0o*n(YlYuE9FDdB?+hJ;k;A}8pDVJL=UNQPx-hG&R|X{d(&YsiLe=!S0y zhjA!}b4Z6^0frICg8%n-;ZiYK2!!#&hnaPUbx4SX=oR{fb03%zCOC)=B#4T*hy;d+ ziO644Xo#1Hi8`TXR#<4UHaox;be89bfM`)iNQ!heikYa2t4L&~=xSFeYG#&-MK+7f zrgSkuEUw6kyU2?U)-FCJ6StH~GZA{a*oByYH+NNe+QkO?`B3Yq?p0qKExsD~BVkQ@1r zparThld55*z%$ z2YVAe1L1e66Fj~#ToAE^_?b^^st|5^bR%UpO2af6!G6s5rs}~0e>!&yQKlDRHwtk8 z5u!KU!$u)d8Qh0@2v&P)$xuvIK@FICY)NSBD1d6ps$WW~Q`bniL#w?aps>1!RVk{; zsjF=%ipj)!JQ^=ovq75X7D)jWJZJdM(FdTv0)F$r&q)Cb%B;%N@cIz1E@?$NZ6?l zO@I;N#HaqUKYODh2fJrdV-&;FBDQ({5tXVCyzoEtkmRw1)mKCIq;s#5UANG@cLQxmu z3bau5T*jiC$P}&k2DJasL~H~gZzLOY1QgjiL`%^WgVa0!gii$f6Ge+3E+(x@q!3Zt zguJImg)^s6s}x(YJQD&(NaUpY00SZN0DRC4Y*lDHR1i^=MuD1Q&Wfc$(?m21Eq8=S zR{^H>fN5m(uV*wwD)JNdsSt8owSBr&2l%P=wuwAjb1N5<2zgU#Hmjk_g?rSMH+dWNn#6~9Skxg%0-)YCWnl%wf*v%bc=I7zz4CUqnDO0G+K zALF|Jcfnu=j8Dj+X$oO;rfMGf!LTU4hb6wF8yICnH3#uc1^i?|j&ZHSH3@A57wnwtU+zPWe#V)!D#I^|`n&B7jOHcWV zXY*^r2UWk`>$f99#QxOURhtoSW%Un%vK%Z{xm~x+&y)qyl(6| zSWCppm7*{f#9mCj(>gX%$1Uoc5SiS)qwK}VQ*X$a!Mo|kQ>+kGtWH?$dEj+*LqWe* z1IE+Kg*~&v)HQc%JSl8UKJR-UaO_Qv%#@a=fd<&4u^39A6@n5>klOrHk{HO@JIFFR z!qVKq9t@My$jCb-kcm8m#HLgA$QJCxVd-JXVdocCEK3{KVHc(<+R40Pm1p7RVLMhp z(5xy$T%oF5{yDFy&q_SZZ^6%cQ7u2`n6}AAQ(UKdVZ{d}z3}_XjS|do8pqgK&NL<+ zl6FvOY?91uxzGGum9uC!xwaO4(Mjo}4kgYr`NSIsQ-Zv7k8GntjcYC0)5mnX=nQ3v z<)0kNUKX8kqXy5SanEbz1ACh_5vxzhdl3L#(x*Jkee^C3VYPda#si(2GOJ2fjn%P5 zwt|be`YsnUF$)bE+(ia9dL)n8+vADF73(X5@|n%zYZF@ z3%rzi7-8Z2Qt9%E3uu8O=WI8v){>pNuQ-9Zx5tlIYN8$4<4KwFJi;*v)BqY2{QD2w zHY9}pBM}E+V`ZgIUF0B$_s^aj&`CTg>NMNEO;BR9Zwk?G@Kd4!-6+)x8|hM-drWcL0Mc*n{iSCxSc}p?G3rV}$hIaB**9!{q=1RB?{52+px@30ieo zfPXBzK&`Xf+^d~vWivZ#oz1I&$mp==gaO!5p_;0cj;lEBLCn^%JsY5fKzwt0d^8@% zV|OE=Ubv&)<6a%cq=f3m$2HCK06^j-=GQMu{tv*%d`6;Ky5)8cwZ!FJd@!Ku`5jt{ zbLZk6e&bhu;;q*U%gbbrz-v5yQ$e3=Zqk*We~zjuy1svq`Vqr@b)r1%`(HetT#^W+`Av{n@&zf$rYTa|!RZ=>D;u?wl-| z8n8VRFO4M-FPfTYp4Q0lH!2uB=`6xp7!EHJ5^p6SKk+9ypthUwAS|LN&+#pK@f+Xr zJ0bE^67wVPk}rSADSVz3zhIcM@`K^=F){N}67)1bk~@gA>Us1;uk=gL^iA*dPd_d% z|DEyi^S^d1FRzVQ5B1&H8sN>3)_I%Rt{-Zb^lDM{8JYFcJmQk2l%M{LXTSBA*!2e%ywZ}^sZQR1#G zY~B%!kHS39_q;-!kl*M2QM4=kYhKUwzgeu}+Zu$d0%M{nt)I%J04fCKM{>Z+k8 zyn*$evh1$uwts`TZ!iH{vCE#L5K$(K9opt;6#BH9bUvpv7^O*4I_>uS<>W5lqprN zWZBZ?OPDcb&ZJq>=1rVAS1Lrwlb{=H?AQ??QfN%j2LplX!OncR*T8=#7PMy1vZCt1R4B^h*Syv=mk!>U11-w`8 zTeXF|24+e4FJF^^A-BzomhMBuhe6(j$XMrR(4j?-CSBU}Y1FA*avpgX=+>@O*fITA zm0(ubcx_k2&DANDf3yi6+uE70UyvnPU#_gNxn;_FEiPZa8o67KlZ{U|oSl2d>v*MG z|Bn4R$?DM6hgV!Vy=wUJ<GJw0IpsWyu0jf-bF949ENp2*^Tg{ZJP`#OZ$j`k%P=w$FC1}2^&*TABNsW-4?i4p z)Nw~1d-U<88(pjo8>ajNkOzW_91yAkc{)(91gHKw=AQrzdT=`lCv0q@5<7&kOAuxB z(!-R(6fsC4+qV*_`E@kI1b~8?xJEm^cvD;+qqp!0@kK~=ho-94q*v1)a71;%PZ@&BX8(l7k#^!;s zgn9>sXk`(K9u%PF$Z3ciCy11B*rA80D`8FhMGw=)_BxjXSG!x9ORN=aciEoN?7UIG zxNN;wr;zTs1HT(@=l<4xciwyFbxz-b_kDQci#Pswgs%Qydg{`AvVe|`4bcmI9(&o_F%WtjpeT76OXVyl#!7Wi zD8f<66Trw0a3BB%25IBs;J7GbZLy0=Vc;B*v_PgvER1`Mqa5iNu{-9GktnH(7AD4y zKMskGP$QZlNzy|>vcn$!EQn$iO?gTwat&{9!66gIF%XLVg9>hB2O3$B5uiYXA4MUE zu;f^!fe=TIvpHl+eAz+%9kXb_6c{~R*+4=T?U762MF;69Oh*<|nS)HpQkr1RLmr5e zg(T)D83mF54AX(AWM?}|s2I)RMwDaxk6Hdh4}TSmI1j+(G*qz0Cme|&>9hwU{qO`8 zM5~5LYzYn#HxN5KVUh$jC_)P&&w~D=o)CEw(TMVoqYO)-IUMOj{}Itip2VX>04Y)k zxyf^K^idI!9B%lr$HIZoojc_z0rgWI+&o~76nT)5b{U~129q5}ElE-pI!vbGhM7=Y zDof2dEUS{Fqe1@RpKKoK)Qf6msw{a;SIa5Rm>Oh#ITYytWeErveI~jr>=9P4AtsPHR)DFxfQGh^dn-)>e$FWc2PQAYgz{) zEJ`U=v2!JDY2CLu>L4*Nodl=Al4+UhdA~)LQ#?mSm4qm31kuJU3D7R;6`Mt zkNj;j(+iRD3MI5AIc}n0s@z91*Foj2)M%&sUjTD2TXb0>TZluj=K#y8#9^vA1uK*P zFqOesrT*z|>Dyb!f_AYfi7YtM9eBwmF5*iRt4TjhtmSiqQ=dYjCa8n9|8r+HfIQ$rEtl#$Q9k*O|QQ z{)5$vVSV@j)rTVqDTK|AcMy9Z#zr=?c}qC*Qv0H)W?TPftP6~}nTJ#IXWvybB+Cwa+DesYwj+P>^Rjv|rFkfZVyHnk(=Q-$O zm+mYX&Df#`*X%;ErBjkt5a(73BIVS&*GZT4(Um79O22tct?u(&KYZ({ zxWW!sSg=K1NbCvH;JfhoYNgY&*zBaLpSI{z&xv91S=F(b>)iFr7ouKUOGA=6Uz%?9 z4eE3sGtK4Mb;jS>fCsGld}WAsr~^LDnSXv3vUd8iXQ=uS_Q>i>reT=(y%m)&H;=un z`@;Xep2-IG*%`cRVLkLKKoP<@=wqntB8gSIyj!Y2{i6x_`;yOrnc=g)`}>;gTMXgj zJp=r}Av!RX0ILIokp|-py!yHbtclc1KKt_&v=N`;>%bbJ!Oa6f9Ay5X8f&tD$T47Z zFUlGU9`wP1_>X_!F0c3pf1wO6TO%*C8O;+Dor5vYvq5jkzZeUdIibRwX_@}Z!W<04 z5;8PrYqsDb!}lr(eu@idVY{gCn9i9x{UblV+dsV{6E_h%42;9Q6B_RGIWY{x^jWrB z+c1V8#FI#=gs?V*$u_C09k;LNf;EJfEF zgMa$06r&$NG(}e|xnzN+`f0^itVN8gH7uhmQnW>0>_uPvMPLj@VH`$cyblt?m5?h& zWn9LTIL2E^MrMpgX$-=N^Al*CMr_PRZQRCyqs86B2?Vs4aQ>{9apXpG>=|#gE1M|C zd0|IhamRCv$DI>9In<&%YLqV`h@^9hG7`2l8nb1aBy4)VI*KGc;-h2pqm;5oZelGf zOQcI;wt-wfg6J!ukffFvI$%pXWxFG91F3|3BY_+yx|2tftQWsan^t-ySZb76G6>9z zrVctmLu00ie7{mF2}4V!VVbIyltqVhD{3Ohn}oW5*h!XHJ5EEpvoi>#{IgK&Ae$t~ z{5nai)D_ahLdw&Mc`AgB(x`F3C&=S3H}EH`3Me|FD6g<6Dsu^kA_$ZksLIKxEMiO7 zn!K-Uvq>8YmI|r)inOSqGy0A$ztFN-Krz*{rfIZH{OcJyj+nX?xfXB() zO&+NmELy<98m33GNT@WgY6MKKoXNtftP^WI*KDkZge-vyuZS?L1F)=>kUpG5%)8tx z@B%{K49{Ef%{-emncOS$YDx||&gaa?;VQ26%+2*S+s4e2c%#mH5G^sibgK}f&Xce`ln}v`s7=_c zl+*M~6irec0U0RNy!ktpz}UfsAi^{|sUHinxg4@7J2IrfeG8JetKM*sO*g+iAG431)IvofiY)m91Q^?HBHdRtVt&g!GyaiRoS}KSf zDmriwib8udOp~K(l*`xRNjZYF0#z$Cy*8n^v}cjjBHXmanbfHCtM{5LG(@xx`p`@p zR9BUcsZ+@mOpZSKhcsG3TwA1FyU~D*2u2*XVhhP+L&$Dh$V}Z)y_7b?F)4`nRczC? zh!NJ0LvwpafBR#p>5{18`gE!Tr1*Z4q1s}hzYHCK0CICO=N zSmdU6tyhPOSJlA9KebnW?N@*OSAY#zf!(-W99V-jz;rxVg-yAHU08>GScr|--D%kS zNLY(4Sc%P8KcQIrxLETuy$sY?k(C*%13*4p8$H~^)?pprW7#__*+}fYmz~5%jMJg{LKVPGOj(lMI-qUYp#8d@^~9eIJeRe*ki}V%1wAaxlgxV;?0dl|oIuq}P|>Tp zpJTnOG#!@tMy3s04CIy@yqyiqLrf_@3gkZtiu+plbqFAt;O3F z1QRQ)E6&3|q^+5`EnF9*+5U`~Ks#L8yi-TV^;-)ZKb!3u6!E_sG+fM$8MPINyFFZ) zP~5)t+zSNT8TmgCl$mYGT*KAG6*(8~vx&| zT*aN4#~nVc>_RW(+QiU6CvDl_-QB{K+&&~cScA3Xqr+J3#GxfV!LweKty!TZ&&h?} zhuz%m1>d}#LQkwis;#>*A=+KcUhEYaqa|Pa?H-Q3U;Uk{{M}#w-KqZlUjaU)03Kii zK41h+U?2?q}00rmh3$jN~) z;R}ul6Gq|s=-?Gz{s|4JU>c6$(P-funPD3CU|z{!9_AAqRt*@w7Z8r%mKb3pb_qxT z;RoIXNT@SNc;F`nnlo4cD_#H};Lj>vfEy@{3CZgAn9`fP_*0WMU?WT8@ZiZenNtgja@$ zD9(gr{$)`9eqs==W`nq9gXm*q?j|c{0D~xG20#)wFl2V_;&oo+g7AfORx1TCWo`|-Ix#k%r&Sglb1aBsYKK|=) z)?@yVw&qcGVpjg-f9U3aK;oG8WQdq$Wo}}QcHk+_1egY4ltzg@24R>k2%7$f$rkK? z2y9#aXlgMdS<3GV1TeTv9bp1a*pSD<z5Vy|cdu|{jCUVtiz?%b4TJ~->qpx||agbk?R z31ERouIcoyU<{ZfA1<}Kh6wYvW)IL{_@1O0cB{H3h=@k-GzM@BU;zQIV}d~A3eHJL z$Zr~s?*u>Lg7|NPpm3jlZwr8MgQx)v#{g*khyFfr4Ihd7HV7K%a1Tf+NcaE@c>Zt- z(|`#e0uu(~Nzh=k=VJ#o>fe3ITkMJEfu@D#XD1Yw>2!Tg-?2|C< zkpSt?u4#-m;!j@Y5mxMxCgsS6;GTA7Rd!&&Ch3tz2|Gu0&}Q_3aNy5AbkY`Qoo4hq zhjiCQbl5Hkac=6!#^yV>W#$}iea`BF0PmkL zWW-N5yVRfJ37-(Zcz^Hr3Rd?ehjxR2_Z^n^D_3_b zzw%w$5uy=f?FduGmv+(ScpmX~UVUHGWCl+lc)^jNq zXKW7S(++e!e&P}S<5*to&o=r*Hwg!h;GX}7JJ)$hhX}?-WfH!6YR+`gK560R?TDEA z#b$L;FYc3u`m>Mp)8=Tl5Bq9HZsYQ9ujXeiw)O7b=UiuivbL)JtR8mmzV)!S?&s#` zbQXMpW&jWSb;BQgobYl2pMX7Ta0C}^4Te?|ruIj-fPMdm_AUs?$9&J9BpQHLZf|#q zFMZ4xclECP3{b4p_h}8Le1bUr2>0)Wws0TTd<)=w(#HU+vhpO-VF;%I4Nk++|A+sE z1R6-G4G00NLVk8%cME_4Y?lBccx&TlDM*-M;Fov@>V1OPd>Mvs?+5?YxBUz@3m+DK zws!J}sPCH2{PO>O+GqWNzG++$WV8H?gBL5&s zl#p%m{Eow6-(ve6r5w!WVsn36#uwJa%G^x&kK!p-bDE1=HPg@D{?3$Hn z!nk7_wtZ_8Dc`hXhq|RowyeOjVT71;Ia9*(BhG+)3LBH0moAf}}s$K8aoO5PMqZVop zxQAjs*_84AtdeWY~i180uUS(4yFk>4elCvO41^7Ys|#y@%eyZepc z&;NIkc+{a6-%J{jL=k%}=~SM4{VBJQO9DyclKw&7Eo72J{aFVce+g~Z(171fR3d&9 z2H4?(^o>;DeF(}op+F&qH=c`{N!Vb3ggNLRgfFEy5p)Z&NSJ*QDfpd?Dgr1HQaCBM zlVu4FC0Aww@#Gj|boq5uS5sLv*g$I)CYfbll{pxhIaL|iTmSUcmt1g7Ii_R-*#&2u zNX@xdoQNT1(_#(zwPm1$S{Ybkg`zdsQg1z}8DIlFil>-YMmbw&#`yr7Y^Z^j5NrQ@ zmYi&R}zXRifdoTj?@AW&|qkxJY@$nln`K$nIhMt(W=CpE{w-M}C{1iGyWXKpZI2^Ca&L(w#CLFs`R;20 z<{2gk-NK`*yCdz-GOv@!3}5`n6kASsGBn8m27ht04Qy^@kx%KZZvz?C;yNQ6UL^!ob@Rb! zjI#vEy{1>T3S8YH2RR|uhjW&rNParjqWQ>ATP4#8u=>R>kLj*lF}2t6>Mj<@t>kt;UuU&BI*RmzSf1etydTff z_82JH1S@TspiVydHn}uVCl8bo&n87nKqiovZ^{dIbVkZrwk=GbgcqN#c9UGrWrcEs zP2uR)8xQSmH8Omhu1bYO9i|30uaewntSJy3js%CmoE-LmWvq40gp-LG8S==3y&I{g zde%|hAN@nfF?tA}V_XtVWVbSTuFO~}d*8s=gFQBlh@n!9Nb!z$9dIejp!Y#2ATdhG zE-nXR%z7k9xgYPuDi_7DzyCmxd{3 zQ2^7GN$drcN&Aw~^c29zh;S*Ifu_)SS177}5NdkzY0{>I)hLmPn2}N1Ry;UVLTT+H zYs*R3MA_4y+N`ZwjV1*ZHxd}0Q-(vtRpE$OL(tU9Zx;E?-FQP-UAb^p=1hn>*QuE{ zQi&y)vsXc@B`isTU}FHnz(?67u7!C-k|FpG=05N{e=ZV}k?n|PYcN`EmG-oK+>v!K zFf4)8AhY3NBC{^GM$aZ@10lFAu^_e(%q`J9cC3~~|22Wv(x9@|W7lPItJ_RTw&SdkTV2`Afp=a%*u~T2m>w zrcb`fPkjkWhXrUTzNA&eaa%Bq$96%&U@A&>O^9rAW5ndpaEN~WYvc%bE0ZKPuSGUr z4Uy>B2Dy|uC7J+@fQ7Cp&Wn({8;O;JC9Pm#z>hRdBtW^0t}mM?%vuyn=ZRo|bvYUIL^wK8f-rg_Z$7h`gC!FF zJ6k$)b!N$(k#y)J&9r^4(M8i;_Kb1&TSIgiO>&IBSk z@qT{{;|u2j%d<#RjmKQ!4G}rVsl;=L59AVmw(os^{xFameOxu4ZJ{MvNs9g_OW#Bw zv%RZs^{Zn&>ssGB*SqfZuY*18S6{B!>*Lb0qdo0hC%f9q-1dA%5A5!HyOGYWTDnK6 zo_OCo-}~U;0|-vdAR!XG~I zhada2AOGqw?}*HcuOHs4efhj~KJ}|_{p({t``X_=_q*@??}I=5;vYZx%WwYkqd)Y8 zSbrg?zpzMZhW+jTI{VY_^?lk~{$Q`a{rm6#{{!Iv=^sJJ-vIiG0siJh0rKCIz2B1| zVAn0++GU#H%>?uTiHV#J{yAU-Lg4z1!7980t~nnSw1Ox|Qvjl13aViDJ)i=vA0Rzo zLb%}kF(6C8A7R8`?`_WwMqdUv8W>?9#|#)S<>1!&0SLZA2xcD@B;hNF!U{rR6iT7^ z6=7Lap$u~16n+m6rd3Iqs3jVrRk5xznt6ao{rg3H(e6DDB^=7bfnLKCur z2@V7jHenOCLPCr|NG2gk62vM(!b&!w2nym8%HmDp;B_H+aR zMjGcRWQm+cLk^_{fWWiJM^6S}w;X`U>M-l`_o+K+4hh$o&2)bfQ=45KBruOaR zM0i9YfW)P-gnAvwJqj1eu>^Op#A~jf=EaCZvf~>Lpjsx$PCXJwyk=~EmqjS19yZLv z(B^#1A9}H$Z?@$m0;e6Wlm$d5f)FPRSQ&g|2yy(=~q8G`jm;U|bd6ooz&L;cSrsw_;q<~F`Ted_Cn&Lm8A{uT+M?ykoioz<| z3M<&bKujiT3dAa2s6g0(6*vt{<^(FXLWfeMO>U@2J_Ra@pop&Ki^6E}5eX3(V0O@8 zcUa*<+=pJ8;v~i&|EcA}Sb%@P2XNw(VxFFMcG8WC2Yu0Kk0xjqCKA7mh+0}mT8<|& zQWsvH<6BZqQ+>XN^0+6XFv+iLXsT%4C#jyp^uJ) zF`lEA3X(rXAU_^N0bYptAkt!*Oa2a;>Q+jrcU`JdhH6E%CP0enZgHuprso2xZz_NURKNiy3erg$9mYQNFZpQmg<7?scpQ1gEFB{2&zDUWN5w#N0wlR zrqg4NW@ip!ql%_-K$@J_dln#)d`>aWDv%&Vr$*^MCTo!D=B6r1sd_0niWHc7 z4l%xtg1%}DCK6H7YFXZq@!YDvj%skWAFmGJtd`7seyYO~>kFc3Kza`jqNi~3pZj?1 zv(h7aDl3ENskJ&GwrXod7Ak5UqGqnEK*(fA_GyadY-OUWhSqE%{zJRM>(L@D-Eph| z`e+2ok-Y+Je_3ow0q499{%5WR45>OKuU?O;f=|;rICH`ZRTn&*Wu~ZZjJ&TW7L}Jjy`F2N)h1( zlfJCH#wsDjlNBx(zf3IF%9Q@O?F*vJ#=h#O<}R07Y{;f*!CFkO-edi}09HV$zp2E2 z=@tcU^15u*F6e1mjYJB>w$|)yD6Y?*py7_@&vIrX4y}%b@8+^^`&u2I&aP$I7WKA@Hxo&V>JF=LC}v zd0`erKrD0hF7s{IMD*n~dTH|@7jyK-`dP3HGVuQD*4;9M0p=%e?PvYHrGGw0Kw_|U zZ49)stOPSr77ph~K;+?`{Ai?@> zq_uII>G1~hZrZBlr!6D!j_?_~CUvZz9~Wa853YkCV5GrFJ0hzbuHS#|rJJEn^~xV4 zYjXSw1c^Eg_g-ZFMIN!@W+qCqq=TX&&f;1t&*VVRGD^M$=02$ThH)?ZGTjC+4D%eo zm0X>kT*Va}(EZBL&F~v5U`Z?;9p}U|{@Wen@y-<-#_3}pGxL`U-IM`bFuoQcOK+Aw zM>Oy12;Y~!LBz>9@*^`dLy9v)I?)4ebIbnmK5{Yv&hsbtZ~=a^Ysy@*Vy3yGvJrPH zXquoaW-Er8Z}pLM=qVoYp>(EDWD<&C@hNmn6LnFq9!OW+>L!lqg!Z@%4JG{dID6==DD&0WXC1D35k& zM_^vlL(|zCZtHex`}S`GcS2ABJH*Os`?cxPpKUuNZyRDW-Z zSwHB+6LiC3JNEp!0XFahAK=121i(d(13mmm4nDy^umdqBkW0WE~X zV*b;^0ptg7k3lqawn)%-eY3-TPj`YV_+{rcI}CtvUma*C1TWM#g3ksv*h4o61U)c; zVt;mi#Na8g!${d_=3}Tjl;DYbT@I^n`8gO6Qp;^ zEH(jH#28@1KRke~V8emKfQVN&A2h>^BX2^`0}5QM9Xx@2v-opw#x$q^b@(`xH#j@k z14OKLe=xU=qj{RUwIAR@kk7VG5I~m0r$Dd+nNq<&Ab5B`_i%%DUPHO(vbc_i@Jl*( z)1CQ-HbZsO+o7v@qdPiThq*n7bXhcbK7ZfGm9YlU2Gk7XqdunWp~(ryuc?fBIwxxT+5TjS_mR z2YP+CI-{r4tIK+{OM4h!x3g1FuIt3Evv#jbIIw%VXlt@SBte^3Hziv8KXA4^9DzkJ z`nj9>w8MM6C+&5kyRu(t*dvk>lbIs{H{p+&jY<9n)rYN(#Ee}r6c)2goAs>Jb0J>e87J@Z4<<5 zCxob5xUJ=)?Nwi+<^w{(_VK>8t+gvwrKl{_Dej?92Y_2lrf`bZM9UYR5h8 z^FC|hKH711zW%;)5Ikukw^|4P*Xh3A_I~rLp6!EO@gm!yz@7|^bi00Dz{~$wf6pF-x%dhxA`2;2tmvj2M0WOgSoHW2WJr-CNtQHu5@kx2D_OR5 z`4VPKipTVIwAfJM%!m^gy1}Lq914m)*^#J7)26^eOAE<#`g9@FrZSHe{U;S_NUS57 zqHLHjYgn-qzbZ^g)acBbE~};;`xa!wcL!8-1N-sR!Mi5q(zR=rA+7;61V%9!0A*Ev zFa|n&02gv($&)Epw*2zc-l5nYFVtdCGf|D~5DO%_b|F%VTQ5^)4YTdlu99DaoXxkH z=GMC_mQ{H==|9yiWAldV+v8_{xdEp{9x`v|lArhb)c$Q8dv@*H!}_eLB_q3jj7?*! z`6T=S^8bADEC?NKT6C#IZOUZA{ZmlJbJ+x-Sn3 z)1=Sz{O37=DkalB=2*Jaqv%fZRHy#98k5H%S|G*4BCSoMyVieQyhAX>-ikX2`!N_C-w zSS86PZ2!@gTb`Vy=(8=2S}L!K;*)JYjrQ7=qKE7Yaz=0|l4!t1HR=z~(I&mm-SWC@ z$f{OfwTaq?DH0eWQNOAcqC281&MI_jyN*2n6Du-4ip2%kl?5T!DS2*8xGeCsFq zSqK67c|CLu4BNDNB{5*F&@U7Z`3+k$tMLTQdwARHmTHuH}X zZZC)K%b#$HSU{D4@FQc|Uhh&!ksqSPiyV{UxTq){hCQHtH#r|lf`!HE*+emEBp=$u zn3{&Y4})nuNu}Jl5{9`Yk80FSLppQAxUA75hT+H__ZLPo1`v{wl;lXXNU26vQho`< zMow}?Kfvj)Ccbi200=1?{@9Q?D1695N=PgLQAZ&ne3HTpgvx)Ya9GCDBq!s;!yZ0x zcc^R_xi(3J7kaW;`mqSnq-c~su7-gQ8O=Yslq-ZB;0QCS$ZIP3$EG~fk?k|&N32N? zY|3q6m)xCaj@80-8vbuB;9Mc~>NifgJqDI|Q%{m|Cohpn(2pD=AvEy;XMBQ~rJ!_K zy$X;jDdM8I2}D36+lef1x~8OnGnY#d=|V_q$z=A_r?QbJC5w4Xqb5a0cBENsma0RZ zY>Aq|sS`p5V9{UFl6NXxD*nb5QHyMq9$f|N7R~g|Ou93q?cC?S`e(_**>$2!?My{g zGuHkI4TyKklS%b=9kiDl(cJZrKFiDNQUX|tRokf4Vi5l55e_}g@SQ+)E3XIyFywyntD9lmSdHuAUc%TS zTd8PRjhH_oK8A?>S)#Et%FSZ2bt-Yx$<53fl0Yh!j-Cw;s4z)1CEL-A>$M^qIWx}^ zqvp!~Qrv6)z-d{S+%J$Pk(3W`tlqmedCT*3AW8CB9{V;J&v|~!gYTB5f54WD6K=DU z#{rIcf+L>I0N8-?s6~A7&4XRR)1Q*~)rofd1-dLc=;_0J$% zsa)^cQnAzMNUCxG1kdTs>19~Jbpytb41A)BVaymDqi2UdTrzwnN;ot^!14%s&T{?} zBT;g4O8xvXsE;<#Y?ks+5Kwt(m zydq2^#m!=uD^y3Fjz&~Ke+WN>p7kwh2H^w-@YVIA_K}p6Wz0*Mo8y;v^=`~6)*Maw z41baEV2Q90m;B^gB60Kh0O;?y-Ni#|>c}5Hr)P9u4j&YqkQd@|H6b}ueu#2qT3#QR z7l`Hu1i=sO9MsVj_09PyJ(BWVh7hUq|gela0Z$12(=IkosbK;unPrc`r;%E z%g_wZ5Dn8%4cCwj+t3Z)5Dw!|4(E^#>o5$L$PV*R5BHD{qs;I6{%{8I5D+5+3}d3T zsxTzp2RjN;dNS@1dyfVcaS-*)n*MM*v|#(*fwFc(63%THC*u(Z_xym&?#sP+#oS&M3Jdt`|#D9D%VB%aN^$@Ez}~{??HO+fghQ z5`ansJPsm7poG<`uf^VD=Rm|QqKfQ_Vnp~OD*j`pEbT!4I_GToBsGMQA}3@$&ZJE$ z#694nzhH#ahN)8IFHrbQ{I(BLprj(jBT;xVsSz>-Hz6igW(7F?(IZ-q zzb0ntR8AnFWAJcOTGFWOO2a3Arnr`l6@w8wH8VIa=IZPY?i7YP528y#Q*Ea6E)S2c zrih`&(j0e_J{xQB>~wJripctCQ3KG(EkD@9v^Fc5EIe zR4-;HHyX4l!7(gtW`#l&MYSbkE-M1JFeG&Dc98Xo>ZxCs>FuI)N!l z?Z$WVri!jKc(PPxim0wst=qJxJ!^CG)c!}X>SixoEqlNsPmz*$y61cJ4{xeeznI4! zoM*MTE!_llc-&Mv+(6fOf@xqSQGsV0$4Z_kEEUNT+o+UN+YXH)rwSR>QO)F1RY$J2 z$WXT}d@O|@OM+(r)!WFeRip1!iD^y$baQC6ie5~No=1M@L45d8RprMqw=1xYHCY!` zni`c^p=eJ>M>;zOSMhXi{Io(9^iJ_k%cSR50b^V5;&B%4P@z>=w-Hr#HB&E*90np`f+T2JC}<*XuH(kxKMlkWIH*6`sJ7h4B?o9TE(8v`9+$zkST+^WwTKN@8*DR zRAobwRs739k+Np%$Y#~jG5&JPhW3v5Da{J17s;qr8R^cP=IfpVj}-QTx`seBY=I_7 zX|0xbPW6f~D$T04tcvz4NfwWyk8DT9$Kr^)TU!bYoXfEK}VuX{ZDgn7{&5Lv?dM3yu(s zXzvPl_u_S}0s^y>A(N8+e|S_Rj`v%`3!IiWK_Q3=^g#)*0WrSRdihgcrUBHB9b?tE)*dvbNlKseYs2`vUhvCSM}Ui${MRn zTnzU%mNncarD88RUCMz0L!qV=NG+FVi6C?77ievFq&g3{5(B~Pw{%0|u&fhi(}IKz zSnbBj%m8XM3s-j6YlVe(i(Cf6cGo>Sg--uXeZ@<6U-gBHH?OQWWWq8wepF}m?mFz( zRt1VeJ5*FHSYl#`g0ki@3|5KLX?}ZGA+%_V!`FnjFRi=^lWKU1pSbtx6wdg}iHF!K z!WcIMtRhYrH){UkiXm5vSvZG#%X42WU>oP?ObfO2LA6+GL$9}3U@J7(4um%ND1q36 z#S)PBS3GG3jn_9N@=JJ9m{7N?b>XX4Vb_M;)_KDzh{0?ljsSbkCzT0`7sF>a=^faZP-iIZtr zljEy|PnmtcEr#otc5h{rl{c81l$Vb=uddl7mbn?4nR`RFt@MP-{@C*rcSbnu!n(I{ zH>|_*GnewBI`%JDzHEO9S3D&QghBVf6wGd+41Yv+B%X|q$0!=v78~{=7P&ctv-t_- zId1c+q5fCwP2Kk{s?3MKu`0j;Yc&+39aN+jDt~~-EqLamkeAFF>4p7hz3ld9eK{D@ zIKj;G!nU?nGzM)=nI+b&&2su?>C9_W*N))UqCI(?r$|}L8JmZZr-@L!m|BXxxv{*H z>V{fyiyEG*O-`d%&80EUk}pfa z&Q&3zZQ2kqqMI$>Zp9}Jd!Ohhv3+r@+J)W1qgnqttr3xSAX~FFtzq2A4wMJm0GqPQ z^JJQpcO;t?KU>>|sa@2HX;PJjBlaIg8zBJcFjNP#qYU2OWZpzr+2}D`r&qK|`>P4{ z{@tAIALNZZaz(BQ1g_0ux#KOkeR?JO4Z*4#xYwhz8T;8ZiUd7-qNfAho=se%`K%!o zz0Jb1d3)QqyScAh@8$)!o33WS+t>8=&@^ef*L&hBjwW?(<^uV;upz6E^B)q{rlbPo z?powTtQselssr5X2K;k>cO=4->T>k$h~#~_=CR@#s6SjZaTLT)8xrMCT)1x zZor82N5_t2=m8wWrG2+#>~{Do#TqX(V(Ykw~Q zX7KYK_lwDOyr-9{>`J<}PR3M(5 z?uO~i-<(mJJYh#%L#qhP0sQjTZ!;9Qz_s*A&PbR#1ExmA^lWY^VyA%1$7X*x{oIco z;19zqIVCvUA~^He&hHyRVgauyCf&TbPm>{lZeDqj7Xy$U1~9V+{r%Wa$v<7yMa+9@ z-6A-MZeRc-b|P4IJ=1O7$9Y(_Ek`fV52P?%(}%D4vSxY4)z{S{*vAFdWnB!ZPcKd4 z{@ySA@DfY9eI%+K*fRpisTaNq@R|Zep8kp5pHIeLLi9W$-VZR&OWm9rkO@H()ky-> zZ~dD;In~F#`#exC$FSW|!rZSNQx$&S%?HnYm>iwr6E_MV9dh77FysC={)vTA<3nEL zb8)b(57nY8vpRm{D;@;LCoD%17@t50aR)x!b>(j!=X-i3gtNg^KIbDD;uH_$xhx0m z5`2Fi>65;rOWvMQUbB22>7gEytf@6&J_qA{6O~@;x1Q^}-s`^}?89E{$DZuV-t5ob zHk>|yE*|aM-tFIh582*-4e>NJp(x6}O)BdI!XZ&ZR`(q#Vm8tWiOZy|{ote|?NwZ_g-n_}MEZDOv;fnqGmhR55 z9dWY6YmseRyIlhd9!$8f;lqd%D_+dFF;6$xvS!^%{@5>Hn|#&6HAxh&=9hlWz8#Gc zu;$QuGygq%`624kn;pxZO}n=3+qiS<-u<#FJr;~DyNyc`jkaU5QD8e5+6F1w-1}dmv{>fJ8pok`_=%S1^>gav8f%xd8lvZl#rI>glJThAQf)O{%F_ zo1~_y>Z+`^>gubo#wzQqwAO0tt+?i@>#n@^`VxZdkl^cKzzUmcu>c}Fqq4&q2pKz+ z)dpF#xiZ_`v|MFs?LW_EWo$v+V)gB8*ao((PUS+Cu1@E=*lx1`R>h7$wylfnySmwH z>9*lsH7>W2d0Q_w)Jlb~Li#e5utEn9*f6}|mG{7H3qy=s#iPpmuR$6QT(GnRXZsY! z76Wz6#{^YHZ$ag)Oi;h+imG+?^L+siBrwEF8?z|G*|`iQ})Koo;>W#mj}A!-DiYt z<5!uVax=e;FRnpJkbjjuV*UzS^>UXvWA%$}Pw-#N5Wqa~DbRidNg!6h!9brt??#k) z-SQ5CzU{^Df|8+ILNv&Z*ddR8kBb~+26(vw?!;~?Bf{_5Aj zo{ceB2HD~QRVX&;A*6@@3*g+EAeog-ix(lx7G&(s~Mr?GWwZUv&$D7tAu_DThNKq>^ zT*w~#2uf4}>_#q2{#OwVf;q{6&2?=IWhyOM$L=90e4U$~J~lZ;ocX4f{`y|@$TrJQ z0&*Z(GzcjrGp=4{<(JzOSQMitJyjNyYPjs)E8SR0eXLTLi(@7%J4wrH?xZ}%+GQed z*~}y2P-*`hXFhGY&(KYiWB7w68cj!#UGfB<4JGK-_&HC5tdolFJm)y0htYT1vTXf4 zNI3U5&i8qZYu?1lFQ4hVXh!r#-^!*mO9|52Jt2}HCBQ(&5Sg7lOCK;GXRx zp}G8o0$>B4o`?&VGo`1kh}LYsSlRVk1X`rEGMymc+>9=ol-D zA$`o^1KZI*v>?J=|m>JozO^g$yr1JXeg_5TV=MNusf_Xf~fX&CFG> znIpWFDW4h9=t{4195M%1O6A# zg{bkuQKfFAlZ<3w(o5XbI(L-yv4krdakCg4vAGq9Zef>u&D5>zn+;NIY2Pr?g9Z1o z&vR(+H4jWjI5bPu^Q9~J z@Ok_F0v6bHy7ze<$XyRtVi-7X z>6Q>lP&t{Veg|=bdR2i0H^X+EJgX19G%=5ud^gQcTBp%;TP zWQ6uoNF;ZEJb@qxFb*w850xfW#sl&aKJG&lpjdcl_&hNaYPTneY&e8VglVEidVV-?pk`~9;}f{HiDyWL zxkrSs*m)YdNc%r4>S(6rZm3|Wz6m2p` zj8s%QKXs9s_$;QGAgGyyG&oApV|Bg+4#K2~KQU5oDL|2dPp!nP+IKp4!HH5_(^X1nQ3t6b2_6hrS*vu)nSh~pZZXu zSAn7@cbvPK5xoN@%=2Pop*}$h{-*g3A#i~{8ZAVcLPpA*Xy`IQx;=8l6Hy8| zQ(B#2DN_I0UpjiCDGG=Dqd@zpqDq)BPv9j&iV#-{JXzYNz5_flxf4o?6-)}D{OCJe zI(-L`r#srDz?6?UYN9-vo0UjpP{oIV>7P+Zj>^`kl?g{X$(`uvoRj)3j!K~hA*d(X zq)6Hmpt`4{T7wbfrrUF;lUj!b5vO6|ljf$XcA9t5WvOXes22$+fCD#E(W|KHs|v%G z!dk4n0jzw2tj4+&h?R@2xU0)rgpU}l)VdhTswLN2twRAU>?Ezws;v+SuHwox#F{AC zI<5j%U&d9g=&Gyj`mXRAukt$nuk>24_Ij`Qny>mwD5kQn{^}>2@~=!0uvtD2+OZj(iwKL7!NBIs1hCqdl(ga6d4;S5&I@Vak2l}vAiL&Zt@iI@v+IF zvKqUwbwaWZ%d&%Evfcr+5ZkgcTe3Nu6f2^z32Pv#ffiknvJK0#JL@7Y+Z0JV6-x^$ zO?$9o(Hix^vQJwod6FVR0vM_xwe+zTox&e1GPM)C5++e0TH7H}d$w2GuU_jKKGL>I z;iQxEOo1C=0tYE4x`D zxU_pQRm47yyCaipxhKK762c}t0v2RZyvBnp!bGABoZz}=g`3Ou<5?7MTMQC@K*AhEwH60`(d zCMtpwAWXT*OS~6c!r+_1BupLm;UOs8z$uKqs1d!+o4r}v7ZQBA?h7d}yulvQyNbKE z>Px?3Yrpv$!2UE$!9{Gq2fVm1+{AOjzYiS4INZOWTeuT^!b#k?6U)IKj4B1p#b7+P zSp3AL3&dyAw&|N0$7Nsb79r#-8aHO$CDyCgb%#L_#ucx=QeOv)x~%5LJybBn`9^2!hKXJ#59 zM%>7cY{%A%$k1!Nj0?!2ytuoIzNgE{t!&M6Ou3*u#-Mx1y^OZvT(z~y_nmCVcF?7XM^zMUM;ns&&zDeJyN;C zk;nv%B)9Cu{;bLsz0e8Gx})sA)qAR%9Kg)H!N(gD&%DacJk9+qxeray?rbMvJk0!S z(hbYZG~6CJJks3D&VPK+Z@kS`EGgN$DV{;o{~XXkEXz(zv`wtkcT3S5O((IO7O{-W z?3=pgoWt`h(JU>xzI)0J4a@u-(Lc%+B%q#HPa4NgdYV>d`(4kd z9nM(|)HQz7jl05o-P{Td&$_(kA!6c1F5_8_--15QCvG|pLFJG(S06pr!9C0ne&7Sn zB&ROsm|G-e9@Z56>d^h-dIH@-ZrHy8nz8>mGoasMY;b*+XwXMNryyQ-<>|Jfq zlAXjmUe*!((~C~V(B9!l-n$IT+6R8r9gHR&PVL8@z(XGAP;3!WUj7KAPKKub*1{~! z6yD_#9^W6X)7hNZG48d@jlg&U%1ctT-EQvxUGU93)U?e@O$xL)q-P1|}6)8~HV@awZQ@3E?z zw`J}st_u`9&+|F&^Ea;}5*zfhOY}8=^f+(y4j(i;6ZmYe_UouX??9Lw{)@14wiJNBCFcrE585b= zPa|3&`IH~8h0h&_FBq4<$Tq$ipMNTG4;9=RQkCDYsh<>?kFD%_6s^xFyALC=|ByQo z1={lt?Kk+G0{KNz`!QcPl3Mi0KTeyLR8Jt81AOz!KPsD#Ut#(uQaB(IQ)koP6OJc> z;(<0Jp<)jhJ}@IQmSr>3D)iz@Z#V6Z=T=J?-Kygj2?@B1q~iV zc+d?tb|erU)5im0A&P|(Ui^2gAx4fJJ$?ikQshXGegqOkxG*9~mIzI5Y-w^}%aJls z(!_c3rNf*(eTuY+^AtOJC<@x41>@&ZrUg&UtY~ol;e&%(#u2^wZy`IbUD*YY%5bGY zh!UGNjhfJ^SFU5vj!er^CR&X=S;mdo3}#EbeEYryd9vkJw;2l;tZ4CLUBHbU{|uTE z+u_ImcG8UOICJHXmpOm-xOwDSyMR^l(9(@-KNu9XPUi7MHM;`}vGL=B>uVt@CyNy<9%&_*`5)Um@nFCui$ zK4T;zAw$VLs8W%pyt2yI0$nnsp_+3{r6$_hldTYav=;yp=0m+l$I34)3EV zzsX?rDk6$hVz(=1lT#A8f@BJ}EB*%qowrw9yP^l7wIH;MTuE*Hcdy>qA~r=6^K=cd zg}=Nh$*x-6&P%pRn;2k}DAL#~5)?D|ppd&l&SJLgEqS452a?vUlex0@pMf_vsACwj z0_o(2|CxC&kW|h!Q-knL*e;#18tF}Lxx@BiqYGO4XP_pv4MJ_-Q`9Vf8O|zbyPR&< z>yiY@7euNPW;!9y4yw9hhFF~%XeBvj+iH)3PI>NnLwdWh>i8?<326P}ihxYVV5m95 zVDRz*KAKsn$z2PwimI1ZI>jwt9m*2jUW;z_fuS%q%q+`=8(b;F!K_a4e;8-3SwSIx za`M9dde5Hz61wkRtYeRl{&pw}iG9b$4O&Za6J=@JGQHUGy%4KPo9iO0=&8~VjZl4w zpVr3E4JOM|l=RBhuE*Rr1Wo*Y$aEpzZhI9h^1k-)rcq%=!`+gJQI7Hi64?)b@q!_d;M^8Wuo|38fS|>^9a<)ZBng~WWLOXyrio|m;~o#eClCSt z!-Y=7i4A?HL!O+_h&@c7p1hbpRK>7=Ok9@NSUA7}7Lkmjkzl4mxWXU$a3FJ%T~oF~ z0Q_8VD+uvboUk$e6JNE;B$eacYg)CHnH)n~Cef8uv~?^$MBysw@y`QZf}Cl&hgzc| zz|s835I_n_A`5|8A&GEEv+>Rivw6n=Y9JW^LTpqHsYoE}^GCP|3Q*&sND5!_fK2rz zdkN8qz{bIkoSD*L8uFx0^g_%B76h8sTc**+^+!LV?m7YK`Qqik1$DkICAUK65(T9q(p*N}LMN0Zna^mxzsFI%EKBAIdJdG)$ zQoEd*n}N)Ia`xKYaSU|6sUfJsnw9O1#vZ(ZS|Yo>zDMvkQ~i8W;>hJvYJtz*tRXW1svAGDBu#J&q(+AzNNwl*~b?!_Vl2+w`(I+?^9&8fB(`Nm2H$qLMH3tF_ zAO2v&SlF=FF^J_W$368|QnfG0iq=W8Vih)`gb7!%=~Z2YRjBghh>7?_GixR5VZ>>x z!+5$&xe}4CShMRRPjbGdUW8~7x+hrvYCf_?7iQHwF>({LS;TSIwm%aQJqBR37$Z_e zHqx=HKuaXv2Isp4`7F62HdSB^cqOK_tgbXtv-dcp$G{D))pERJA3}(Zdb=_bKf7CX zQ8uD_x-rix8fJrR*`OTFvUAxSMj%pmx*oFZ{^h}+ zjIe7yEyz=A+Q%D?Yrk~(VHQUjofkBwKql&u@1+H>gMKlJB6C&6N_R7H(TF{c0K(4} zBnjnf4qh*kmO@wpSSpe6%!Y0#Sqb=)dltUOJ zp*}DwZvtCeSGLK=qdCw~)y`rDQ-2QwQ?LW3QjI2rgU#-BV4c{PDZ^U+o&(otTGlG@ zZyIgNf8n;WfQce@y0j4QtoFGBeA=9kh3e1L9|s|x;-(-xq2jIOm&03jpRD=cZ(}@U zq)X;_ay0TGIXuH%+wrb*1npF|P2%O&YR=M@cI{xgz{d^eE&g`zzZVo20*i64^JYj z5hE+uB7hpGi2VbP8RMqpdcRqM4h768OtOOtvI{NX9|#N~Z882p1hh6@PzvkGz;yY( zstdPhilc(4AbtCx?KmH#JD%m^G#z?B5L&_ZDU|@>i4HUf2}CgF!Z^&yzhYSwslF*^v2*rkMdcFFOe6$(Cf;i%HD4zy1gsVnM8t3AbZJ37-K6amkdM z0hrQYM(B`67^%J?BeEug5GvC}7c>~<`$T%_#$RL=VYG{C{K3)FJRD>gJ=q(EdB(ev zICUI}nXxia6dHT%GCgrdXzWFiAxE%r$1j0Ld{iio;76_UIwb*KdBOm=*zeK9co$02sDzoEXHUGt-Vu>ed@u*ObD|iinJ7(z#PlT0>XA=BER$# zC-exs9Fe^gF(A}TxTJ}$?22~?0VzzP)MQK}gh$fk57RU#*8IuWY%|c@OoJ%Qzr+aL zL@VBmvyPC>y@JQt@lDk<2;0<4)zFsU3{5*}&e`+`tXw}V!U-*4kRUTLk9>=d0}Yyp zFUN=r@+?o1P*3MrPoFr?_mt0%AhG$ZjQX_CpUcnvWTIYP@_Z7 z6MP^8Jx~UXx&uAB7K70JB(e$Z3H*Hi&oMY7yD=#X_0SIm(GV5UreLb^{5KGd&!1RJ zDg00e?XVD)&=FnFypmD+Oi|9*NVTca9p%v;_0a~!hCDh820hRlz0eBPPY`ucUHj1{ zbRsWIi=G&{ZS*e(>&GFJ>}Cr_0vE7iShUcv=p+l(9J1r3_qX+aBwaPI!hr13`J#B z&s)@t>0hRvAU5`zf5mX^NrPBHA0G!fS?i zfXi;MnsyqWX*vs&z*ZH|RyDiUZ0$@u3Dg^V9g5}D*q!Cso<-K7 zC<^i8LXl81#h@|E^0AK%378!$guo<#y*gr4S_X_+?ljoWOsThkH}R`CpY__W1zSBu z)qj{)qHU54I)*`=z5XW%hkr;~V(bX2ZQ3G>n9j-|o*UU}GTDZm*h>w>Bh%Vys}6do z*swL+!$n*(EySEN&$!5-z4Qtczy|r*%9f2=rVXRC09?vtk{FdsiF4S^;|NQ#hgxks z!Sx%$P2AOG-PYw&m1qr1TG-u-J4emR&V?Y7jZlWo+`6^9met)|5wy^aH-&U5i3P$+ zdRNzF-sW}Q8f6TMV4Rc{yWIsx1w|3NRVUX7UXazc6pP8IUD58{ThHs;oPe{TfK=qo zNXdNO_l4j1&Cg>Av0%kr#Kd1fNspA8ZG?o-vee80#poy^$(b&UA;Ze@?EZ(72RH16bH^o zL!;msrr{bE360<$>FtJp*x#(lNexyJUhqKKg%ZSE2)DIly<>1DQNyhr+jertwllG9 zYhv4+iEZ1qZQIGjn%Kr9cTS$?{p!4@>f3eIu3gnXx~uw6_u6Z(#f*{*QyS8$ccyVy zBA(N^3j-f{9>OLjw(Ge8m-A$_B;HEp9f-(5@Zb#_(z4Gcak#>Np!P{kzxwlPh|--q zyoQCD{MtZT8paP6d4)TC5weYJmFAM7@>w)|B{R3{?7*K4Gi-dJR;%3!qe+|ysg+uP z)^wkJ^sn5twl+>!pcGxI^WjH`iMU_Fuh+k`kblWJMRXGoCJXIa97O22rCQ< z4`ac%=?4x&0*I6>xpSm0@%L9f7=A=a9POd(>R&VSV}JfRP>KjXtP&(YMayGFn;k`4 z`(wM~WBbwwv=DeQ$dgZklMi}}e?Kf7G)~;iPu8>y<9ZfCJT2amPY{lyy{{F0?N9uU zPyAbzzn)HhW1R+2o(6KB21%R-Yn+CdpN6_y@|tyq8R-0w4-ZeZoF|Eik}!!BfWNVw zd1|rDyDbIdS01=yV(eA@Jqv54!9zHsLRzvIt6qU^9+`j@5#6hjv1-Y5WLawYcL?Sz zx85rI_t_es75$Y}lloa|YPqGteleEW(}@w7MQx+!X;-A#@l)_!C7f-`_Ts@ zP-d;4qeI*gE+ScC;V`~FU2R#xVuoY+&kc5?o;>1>SVL1~Z9PwbgUz5rma)3RQe5{k z2L68XilrbaTdW zFmN|@Ycqs6VL=6N>A1p)3=VmY8zwBlIIp)JcG!~xkPJHQZD?Frc2TOv5Bs2!qo||H zLB}!95QE2gOAyP<_wKLi(*u=O;={A_QL~`hTvGm~wCUD438jcSlX)dls+^m_Qlx|s;T~9qvb09m$ITA3wl5v~kb4ZZeUs?&Gs z*44wbY#QOARXJ@ZsqCy%a_GIRq=#|CE54csnzaY@d9DXQOhIBAhdG3Pfj-Br5>)s75ht3rOd*7iUrqYWY2&v&lJ_sB4 zmdd6SUM9fp(k?38{k-)<5%SA}-mRVwAf&%hfk8Zt|8-cesj4v!uX1Z*dSQW~Ul=pq zihq2buPN@2u!aw4=Wg+Tp3o35-q5ihbe6XygTas$^<)L}BtX$H=&J z8mry;Bh7NTN|{QH_0##Xhz|TGStn-sSYU`yG(*JFwEZe_9tTyhztrdD7uf?e z@5nqhQ)RfYA7N+P!f}k|soWcJ075WzJOQD&I@~zYu?t7r2Bw&<8&2~3M_6`aA0~6C zq_CP&eh3ooN`|1EQiqydXPAdh1`BSu-69icunmi(4~Qi;Sh$xIbkEst}OjndY0A@9=n z%)wSQ$o-CRU5S1}Ye!J1qcR*(i~RD2Fjf>qg*3`lLXDg+q_BdsEHSgQo)40kfvE_s zsO+Szs_C2r@DZs*p!v4x>%=SRtSld^(kcKa@I4j_ItYI!(!}@qDYJLCtv%*tY*dsC*Vy|R={Jq(ltK>Xx*qB zW^&Dr$SvsH)nw3OG$OKssI+Jj zwU(cHcu+!<(kp0j9kwF!34dM(tGeB}ncjz`*N=RLL#2{77Na53>N0GbM2mqTz8NMV zz;i(q^wg5hMtk}^M1Wn~InN21>Mm?UMa(~+^rgx>s$|{pLsG+VYhmq=YHg1vdfbqL zkK!~jZYA$UpWxRgA7oWErzl$Runax9(S#t95O;ZY;O~68aS%iiWXF0+@-9BqlT(bo zKMZs>?xK+^8mcJ%X$kYB(2Z(AdOy-Ri@*Jgu&6&T16tcYX1@f>I(x??6g? z_ZwtR-jZJ#J};U0K&7rqiw( z$E-{Wu@z&=(rh#cCq+{Yw^-3hO8rnzqVAa1Zn)E)X>4s#i>S6S!Jp~EQfqymsMIww_a9kI4`%=$697SU~=skC*j_At6PRc&86uO+2k zF?tSV>Hbl$RQMvZ{2I?n>c~v%+{LVOUCA=oy1wbT?P1bClGT2%#qRl7y0P6IH9XzG z?wf&RHiyn`0>f_~urp&08He95d&jPVl(==Iy4*vwIn~FEy$B=pWwr-Y^hjhb>Uve| zs~dUt0gx2+HT70Xn?1XkW+S6{5O(mYXva1Q8`9WexDnyj$DTp}acs$^=o@R}GS3a( zX_q=w&{|^}wa!!()5|P)G`aevGa(DQ2P`hNQ@zdg5gk8F!zmy1grA-54!6vis=U$y zU4Reh6_GO!nXgmil=rz;z9#}h=p!MeEV-Z2bwX7c^EUoX@o!rekZdChVD7HwPqvy@ z%WsQ5&e++Qh*m;jI`e@BEcOwehmz>7{Q(ASv9h0*>?hhQuF5Ut6uuYw*r>Dl$1Pb_ zIaZ9DnXT%SY&rgRm$pd%R(v!#o0?v&6_?r;u14HyUG#0p<1$v&N8DS7^et>u-vQsz z^(712h8BkSfB4Wjewg*xi#GA@6hF6AZPwUZ`?N1zZ$A2z=7biFjkKiQC!)ksL=sKZEI48)oHBGMg25jTH zx)Yt_ot1e2~IYp@caKD4v ziWkhiE|}w{<>q>uYsj_j^3J(bv$&mCwQ~>l=$<&H_}(VGw!m>9JaZ0x>z~oTwHM7g z_2%+g_n7ue2DvSmt%m-e36~%Q8M! ztaXq0Q9Us7AUh|EzTa1sdY>v2-gR~1pEvyCPqoQ*_g%}qQeETdDC+g#48y%`*6iM! ziuLxv-#x8v`*#MxXs+P0c|X?HwW8SL>8EP2QKQgXO!dq1+(dArPokj)nDOy>u4}m9 zj}6>BG`t+B+I>C?`>Ye#@;pxa^^lO(b0ymuo#(8jdDtGws^U8Gc^YZ@cyVqBqZgxsgB3#<8Dg;G-TkNBe}Mh5fuFA|1?Pl-50-6AbK(aY;>Vt! zPa}J$!X%(78IcLQ*n`>o>iKU^`;8RqAQD)&89#CEiHS#z@N)No`xbD90uf(b{;?t7Luv_yi?wR8#KVG-KLs702~y& zuIFBW8Zi&55yRU_ZTPelWj0$k{FZ1P?9kph}u;)Q$c~@BFFR zW|+*`UC^d+H%7QWB)}^U?U6k{+oR0X1{@r=QWuLF6tTdOj@a%=*+;;98tbj5kwV-_T@nSrm)RaA zl4;8)Nr_pCn00}Q%s%-0+GoNh1m%&Ub79{IUOBa>?0bY5}6=o9=+pcZ5-jN zim00@8;=fT8N(H|Qjn0_n`-)#wcj1V&Jsyh=0|O-_b;sW1BfgIimNM*pcJ;0%_*Uu z%}~q_If3b^`r08<+L7Dl!igmIKuSm6G<&o)N2n7^B2A~~V{!i?C(bgL19j&O92WtL z;Jf1>aVq@Y@57Z;9x_<&ldB%?Ct_$8o~#Gzz(^|Z(lYN_DxcOepI$28(K6pzD!A%XAMLwv0TWeTKuLkmBvPwe+)`nOsj|3@51=Xqt zYe)rDs#WQgtJ|Iau1)#PnG(i{6@DxhdJygK8RIlQC|8nVIuFLJlxW&st~@~P$&zY% zW~r)9tyWB}dP}YLO05BNrU6Q$kzGEEW2HuOW)fqm%5r7`I;}E+c1R-cMy)3M2i&n5 zjj0_ihBG7;NHuv~hN&!JdmcV*~U6jbpI`e?~%T(pJ6rJo3p^8+Anh&{#Oqp9GvEf@u5^>08QnAs@$x+@BbR2r_OPjG*sNdh&gv?1o zmkXvS;gZ>_zml!0LXnLZ20AH)nhU$BH3X4LP5ny=u2zGLwnIeJU1%_C8q^EC z^o7Y*38&|MjpfB8BU5m-EKwbZ03~5cE&OSBkjRN+nk^)eK7lVvCJK zi+I74jhCR)V{4%`>G5{>PGK(u)$?GLGBk`B0oQ|AcDWyRhs=x$!b+A(iDyK^+qsw1 zM8khI>{aN+uQTb}gBkmQ(fqd;!Qv|8JCX&>!F#cGmx;>gdJ;9`^wt!kEFTb<#bY$x zVm-dL@qg$#lxi@PZ4`iFXo^yG_mrcdyoz$npkyQT!*Gm|c&8b!82JZEbFWN^ADW9TLb?lhkTMp${;XpLJ}a(8fld=NeaYuHMNo4_sd1d0*Y>68I>8QQX-=2TsA~S4q|M9 ze0_XP2{^m}aZdW#z|8SbhH%eK7Y>+;ZFp~%@DLk052hgF=yIn2ew!QSbXvoWY>V$nkB#?kyymEWQS#oqRW3zYF;dK2BvTa zjVNcS84NjT*0^#xL?gg2=?;Y%iiS$ZL+Qjtb{TU7hL1K%C`u)BSdl>LE?qVwxa(zA zO388hKQ0(#O;#{IDj7Ww;oY}0ySE&mSlb`~#cT~2I5pDKdGr_BdU!g>Z;8nO zX&^25AT{$4GB99Y6rM7GR@ydlg_qCQ3Rl*ku=ZV!kMyZBG%0rAoR>A(COldtf%coQ6zpzb}vkOC0P~o0w@h75bowL55Imm|k-|6tO*) zLg^E@AgA%hAw6CRwi8MuxXu)~TJ)mbkZT55z2MWFbZi)W^xRa*9O46S#?+uiVQ62y zuY$1Wz4=&2wk>@i<)Y1oELhs?|x&D}k8ah@73M+P`|c3f1EtJr*euz=isJra;l9=}6`+@@gM zcV_4bR&}voh{u(WuRG7TE3~5_`%T5yt^VeR+B8SyOYr;<>!t{O1`5^~j&DcSQ^)Rm zh91I7-1Jgdqrf=)MN8L6vsOaaChx*pz& zjQmlqeNT{2PW%iWd6QCjrw>1c=o`wMzGsVj?=SBJ@56-`Tn2LS@Ay1@#7m$0GZq_u zMlSK@9wWarKMcwYKUjR7dMjKWLaY4z4xW}*gO*$@_Uqy6;tK0N-W3#j1s#ngiTDML z3Vc|K&KU?+gF!0~V1{MFfo_R5k^CJlqJ4SV@OlE3B|rp&%_-N8Rwx?1q$c+`9&0$3 z42rbzCN&3`$owKX(6dY==kuXOlAvk7|0$CO4X{sst2+=c)r=yN@5C@`ir4%y+p=^i zlPZPpBaNm_C=`#zyCSs8ggBctG07rb22(A~ixaGCm22lRU+N=lT2-%PrPsp=A(3Q+ zz`CRfOoJ6@KTl?rPLg9Vp?qC=m?%ZaBSMH-KN6|=0$xrxde6&qEj-J4Kw5Dc$tf|BZ(p)aUKMs#nTN6Qe7!~AWHI8V_?}Z!hn(`+7bnKj$#cDRR^H@;SmDi=JV`Vm zl_LzuG6N9SX>RhKkc8}d_h;{AM5}RZuengA*;&L#1wO9$KK&2pgl|ZG$cwzrcRBK$ zS&|m^BZkP-mph7)fzZ!tfT4>2O|^BVc&VMblg2D+cH%}6S3~X^^_O*EL*AurqO$#C zgvLh2BC^LaK{|C^$>OLSn+tCKuWk&ILJmd|$d6oZBMD(87mmTT?nM>6W9jse1CH@1 zOXkg;=_Dg&SIkl(kJ!bo%BSf~I=Ao&VY4trAWjW;^hzJg%h;rwlCL2xPaUBu%qvv; zC8SS7_Vq*Mnh+zMHDz7^84qKnQvv>&*i6|hwZbT4BW2#uhWt6tM5skhOht_1fH5fc z2lI~u9kEj->RtRXU1#BgQ$1m?ZFHUO!D0km-?SD7c8oo7B^~+-TMr5gpPZSx0C@k~ zSzma4ng~lqA4H`))95rUYkY$<^+4m6no`#n(fIO2-#^z{lce^k2YyWt)knGsJ&79i zjI-&-=$fWlyCF2K&&0a;evc&aFYKMbzTk9)6wXxrS)R43hFP79nvUy@i@E_M-OGkP z0ZOIDh1nHb$R+ztyWmxS{EPOZ+Rf{(gd+SK(L3`y+pf3kE}I@34XxWDR7JhJ5nQUL z-O&+$g8K>l2MwnQnmGdJ=?kPEPIF5{q9L&o^eQfVJkaouOWF?GPit3{1nw$kd7sxC z=wsW@+e528S1XXv{+H!ihx~wDbhMqs#FKO!O&Ww?x@`1XN((kOZ)=RU`QzAS57Kb?;u_PyZ!#yn>sI6fEGO6Q$EGB-zRc zRNk@-JJccc=S4ouLmG9nG>SWhTDBQ&Iy13zJRMQA(SvokXmC7A2%Yf0sa~2GPAQ6w z%4H@-jb}d@Z933lD9IJ{)}DvhzNU1XTZ zgF{LJEb)aOlEfa*l9-T)8(Yg06h&dL39 zMJ$RPQwqEdC@Z+&qrg-Z7{tayVoE@%bn{Pq_eT?jz`$eWYe-xRktRTZFQqUL&|-<$WnrqQ*QMLGeLR1kUU~rDIlFOT|Bs){5nmgbt}DsX3Y^I zjZmOocdmv_n^d7mxTn(Ly^7=gl%&mIgT6gERXwU+saR8mnE@ly%R4Lue zY(xO79>Km23`VhOR3VmUwoNF9DL#l;q6;=d#Hes2LdtQ@OanzQ6~X}Vc0bQ`T{-!g z;(~%E#L_$tD^0`JmDv0{H4|1ES4R4Rf6~;QhwfZX+Or`s1qqEKpMFxNGf8D(nW{8I ze%zKu7abgnwE2x5$Ji!I_2>O+UL9nz3HtrIw}3{M$M#=?qVu(SW4Br-w>qn_OoOU> zx5{xA0LX=!p*d+%rAx4de?_{%dnHG|DMP6i=$7V_J7({*UES{|8v}6S^on!8Drx|N z7A*E3u4hj<2?UX{MVyDiIIlr&gMX@={P|>_k;ekC2m2zwJy~%J!r&+m!@80sGnoO~ z5gBwqEZlFKI5$+L${nB4P5{%tI2`{=MF=Fql*oGo=uPcviGaf(PnDxv0|3@RH;vMJU{th(Hc zTF##?HAYL-hj&fsFU>leBPO+nj+L{Wv^ex$NBuMSbHq)|36GR>|FwTpPmLa|XmZR! z3^}GUZ5vBk38d8cG33=qWvLWqJt~7q8YA;-xbN*!zbAF2s5A6#6-D#;~EZ0Dj zkHaS2;gX!|Pb{6vSb4?>8oqQ{J;G6x`14ly81w9#*mkt-fM}0Si$@HQ*!0Mg%A|JG zpqO7MAd!e3&4DR7_n)ciN4iTT^{RxIMor#}G-*#Y(mnV3hwqDpy^;8Ke&;_F@cvL! zsn44MA0Ae>`Z_~97Gta?I~-o4EsLtS*A}hO9qt?ndWP8*l=aBSJMBBjOr@A!19GWDIu6i`!L?>p9?&% z#|?s7VTt^H?ig zmqLB}F-NlV2t2gsO7)kU`3up~P@T_I45OwrGR{!@oYyLu{Cb`1_CusTU$iD)MwjQs zj`^?0(e=ly?A*l}m~~qb(P(E01;UG>Zg>3$ByDuk%XT_pPkWN<8?{27584$5)gMd; zSjhhr%0EcrQgAAO!0UGv%hVk^YxbK(Zl;jRx+Vn0M-0kqh1%<0>x%yKL2t(1?Aj+e z+1Njd7yk06)oH=FHoEZq)Owem~Xq>MYTvfL(ht4z;-&p(A|IUcXK%YiUP-Ht$BiQDg} zH>f!UZpN)sgbECW!^&G2TjMXB3WPXB+I~dkMu!ker483g(3@HxqF@ENYp4kM=M8!2 zwAgF+o2Sg!?NFo>HD-w2$z_s-S9T}V1O=$Ga2OWE6N!09m-w~sa$K&4^$(l%SSEDw z`qOxZr&y)seuoCMK-hs9)=ra|{P+tf%U!W3s2--|gPCsfxszL3IGP3=K;#aD6ZiC0 zt7QW2g3|Q81RlJU-YL>7XDMB&>1V4V+Kf^siS^A-iFsZ{SO6^!YMi9~6^g?gnw2t< zegjkjET(b-bV}S=DAIt+?Wr*{=2HVS&)phE!k~`RvMcg;9Uwu?aydI*8}23vV&+5#>@!D@H0k< z5#-1-)!sUIXw=`sq?40@b$E;v6f&fwMYLOvloN4`>0ngSl2mmP6q|!qAWDCm3sDO5 zi#DoZQU4MLDpLss;yck%iAKQ1HbNyXG9XBmPMc7UOwh1h*K8;umlV?WAVp^G&p0B{ zPB0M#A){w0qUPN|DoU?+#sVmuh({8Z?r&G%R4^bDU(pr^0%zCnownhc)^n|)Zs1wu z6R?Dn`aBg`$W$@47ua~5(LLf;Ih|K|Rmy@d-Vcy~ZOlQ$^utr_rfbE27gmFa`h^SU z5k-Ofpy9Bhi^!w1vs9{b%Q{tbRhP*M1Fhv}m*MC^@#r?*Y?@LB#8Q*>QrBzjN`kp` z-13rgq2Zn7=#+hP>0o9Y(X?}}l*&*unVrRQVuKG`(*W`z)`O;Oy@cAW%7M!}R7ur- z&T0~T^cu^#{y;}ox+GN1q&MRQW-b?D$-8rV`)`qciHKDQ)s z84ws5@Fi&UyKtcfQ7#O~rzj|C78t4qv`vR|DO3>(*EgYhB4l6m<)Zbl)e<5H~HvC7a|Z5~MlR2x#tUNj1rpdlA+2a5tx7H=P=F zbsuR<3308K6ANb!?SycZpeLOQH@%4`y#)^a6*v9$7X9rf{e2FDBR7My7K5vnSo>3h zCpW{l7Q;_BkNYP>NcW$xtv?Z0LxGW}KQY~na9fQCpN#;V#uVW5y0Nhzn3A zG_5B5&n6{dCKZyVyP>9Sqo%@~X6nxdEkX*f$+xc&*|~#-%y66=6`GDI8c|S%B1|?L z*R1`*3gMJLyAvSkt>qb+y>Lv6q)HWIpUU$?vjbOYX$~!5jjg>_zfg>ew`iuLHO%c) zZ8Y6&C)^D~Y!$X(S~y{-*)Jrpg8BYl@$}VL)Io{mir6ELHl{z>6|Cz2mc44ka&$5c zKVOy5JFrSvVW*#$eb8tk0CT#jv!(EGK5Ri@lqfWfUgNza6`G!$w7rxNnJqm+++Cat zk2Y80)Ttgt%KgbX+e*_f2jq$lbji7-1*e$NiJpmF_^Hw6)&Rxeou+L(fhdMO9&6%) ze@LT}=A6;yC7)98ZGL4>F?4?3%mw?~YRa8{M<85sTS`WYJLo*w;9b$?Xy3L+MCu&% zELX2=V_zs*&7xCHMxhn$<2U7X$Ms7S^U4yGu^ZF83;S`{-D>qHT&}m|k_rXKkRg0&T5MGb0uyzOue8T~_}I z31xazoSjSq%*U`P9MyrsOGGyhbSPD>4$U86mqFICp?sGn+sMn}%*V`Rh1jy$t=e^X3*VmqTS648y7U{S+*FdAP*X2UjZ0l5C;VB;S z>I7ZcAZ7Wv*H zCEjR)ENjuXVr4#J@(IEx@QMjnO86^HOwC;v--0K5eUd|sNj=+CR{5FhfN?^n6JO61 zUMG`0Y0+GdSwd|CU$d;dePdUj;5-ox{jsO}ElZXV|$QA7a8kG_4r-kYvf5#M&n>>)eEA^vP-GJ*~Yf)U+pk%-t{ z_3S~qY>}kSAyr@1F^M*#CFKFQ3tp!;s4bSGjs7@%R!PLD!hdJc3H>2i0Jknc8jygZ zk8e4?`$YzwI4+yG??*M$gK{2UKR6m&TQ@6wGseT8_M#uiD<2gt9{@u>X4!|QdsNgB zz3bX+j-~Fo1k}lD46^e&>vr=~vTZ*8Ib6@u`j*m!-t4Dd6CL|3 zQ&t;v;&Q~?GM()T8_TM`Lf7FdKjIC}+w+SBn4G;XKJpBcZ?fC-Vr6T=J&iMzBW3c+UaMB_0m!AbfcXKsPzbA^QUXtiS z{f@K@`#5js#nYida`R2@W7CenR%detcN50Kzft*NANOgW;YkI(aX=ma+6Mo;4ezpz zZ>P$DHA`Ie}1F`)*fr^K7CQxDv4QnDY73e*OUN zS65{4XtKF71XuCWdyoIM_O-LLkh`aicqL2xq{*<@G5P@cwVd>IpODR5u_FxL*gMeM z76TNn^F2T$o)Jgo6#Sfn&6%EqqiD+gr)l^R_UkyN`^_(Fa{tFv->)}K{5!RLtNcynmA4bq@_=s@Z%>C7%T7np#K)uz06#2kBa^b4#(dKJvL;G_jh)S#a`K_*lr$c=l;$Jy1JYPPwSi^RFhI* zmzTxpfck~mEI;Sn(O}vVR;~8^?#XF`jyTOWpXE?z+}PZO&ZpaDdsAD?FGC;MoVFa( ztqv%{Ksd(npFuF^CqIKft-hNFunfYDLhKw^$KNMJoLBTrNifGvpym5??|(J<&R zNn$a6D@>(j)h16fj+H)+hE9zz&$O=fG7#G$0^UAfObWkQCquWDqE15NKrJC`4eeNTA>lApbkSKtRAjK)&byZ@@!> zAVGqlL4)8xgAzl7kVAsdK!VVH0|7!00U`wY|K1){76e=t1X>0ZQ4|W57m0uYmmWaM zNkGL%KraAb5~5%crDPYO;TB^0A;cjd$R{8mAjmKHUxWntg@gp;gt>J@SdGLOjKpX) z`Ke_%D5Y6Q#2E2}Y0(6z;rOW`C27GFX+d=9K&{yS*B&m{m7>#IXw_R}{XaCM+Ev8a6-3x(23sfknFl)=``MW}SlH@W_y}0Vvsk6k zTj$Z)6w%uhGuoA~JD2nO)JcW3$%b{yh4;vX_bNp6Y9;iVXZKnc^ja7F2b*v5I&G5c z?cyq&6U)6a$^!Dsf(pxmODck^8^XGK!g_oEhw$Fs@b2F5_TKQO-tgMq@W$SVw%+*8 z-ooDAqW@Cd)At{``bxX{zSDF%di#2M`+EEScMJ{=j*X2?Pk(>#P7VzX{qKeUta^KU zdwP1SdV7oiFFn1*U0p>TEk(_Zg$;GtZLJACJrUne@jvvmhWFHk_cVt0wuSe0h4*&< z-zN?G&$=s&b%qrN2=WDs@n;|?EZ{qqS#P|)U?>cQOeR~Zfm8%xZWy(3yx~v?^nl%) zKzfl(DuF_^Qg5QMWGao>WHMX2sdOfb+vQwL>vnH8)L@zWO}ZH%kt`0#-AaEvUMyvm zMaiOqJRjFoBQ&nDZmH4?*X@fWlx?*YBNp&3tSK+G(+#scd=JNQEf?>AKN?MmNHa1F zmCSJd;8VKUiBv_vCfnCbj(<3&ixBUgb84v7(D`Jh59rN9b)*K2^+Y;=Dq(-9b zl@8AH|DaLZb3{aPjSPU%c-(UYH)z-W1$W$LB=$T(br4SO?}1~4qW_{~NKHGOBj!}G zKx)9iORoO=%+-0!`&5ZXq4Eq4JF_281x9qb?C__QQN;U*R zUaBm|vlG@LEr8baC^23FZ`&|Ryx3SYSiN&T3S*+2rX+JiDmvgmEwtF(D^#F)kl~sQk(gVI+`(X%_9Y?jL|C`#Ke>!!xrj2o}lJ zpi zk2%98q5`d@y-KYKX=o1!+0u4gq=Z0QGAH9`&4&F7LT!NsR9)6Ob2VH10!Tm*0JjV& zt5jOyaz3y2g0a;_+M!~mYD+d@IW)1KNcV#fO~wHzNT%&29r|BFwO+c}$QZW=5J^4I z9dIp(iMtTzw2}Voh6H=R(T#06FNr5(_l5Mr)L7eK;&|C_=My8J`!kW=-W@pCkGP^wpiHby&*#4#YrB zwEx3gM3qcd-S24)kf*yxDi*SF~KpTSO2r0CO1l$Tif60uWDuf7X0gCN_BXAm4*L&d6 z%tzEccLNA|4S5p#aAdxjB)_#hl9>z4py2EOK!hBLcJVma{SKdkz`AX8KcmnTb=_pk zw4eoni!u2XIgjswF(%Ps7wZqUEM%`1vF1tdesdRsZ~s8`QyYcUv-)u3evQ`(wub8k z7xN-ms})2*$q``!>v!QP)uIw2`M;&j#=sHcoDhgaCv=5$?)!X#o@(h*3}{+y9+}Xe z&Oz<;Jn$Q11)T7XjiK?-=L)uOq*TCE|23B#Dus zNFXN6BEgfF78&mmMBE-=Ijk4i#m&a|s0$?oX_bgoHD^`}{z@bRNhn-yE9NR!T>Kj^ z%Y=jus+?wLq{9#lgxcDxg2ApO)<`YiODTkb!j760e=;0}?&bpGD~QlBDK<-4;r;=N z!Sr=z=n-+Ux5eX%DND>Kbg^ahHy%s>?3X}ew6%u?D*=*&)?hrCL(xR84da^#*g{z2 zQCr24c=X1Ryu>=)dXv>~4+{J9sj!t~;x+KjGx@m^6>4IO?ZCI?srKfVR7a{)mu<o<%+6`1w~X)5c8<(Yvj29> znwK%-r3XuNvH32*ietayNHYFFMu?>*6ejnkG_KDtNEktbGDsynN-y2{Y(- zIgJn-bU@Jw43cWVeHJFb5H0dILX9Gau>cmmdqBBOi|S4zy1u87#PeD{G@?04JFequ zhK9?1flZ9zHcXZXbg&MFWIzVl78vd&7>_67-{1mSm}7#N_zIP$#T!7Q0EgSGgM!u! zL8e1$4=ybQTn4F^gaPW*#C{+Bx@?5gO;U(wH%*XsQ*Xj8_yeAKC~IPllEh^k;hQ2? zQ*$YJ?@9$Em^hMjbKo1|fzZw~-nBy3ie^TAb4JV+LK?%mKN6S15!yj+Zo?u9t`Y8X zyvSq?U&dEI0qjB{6Yi)kf}Bz!f^vWI$bd>X_G9(7d}ss|DL@Rv3waZVz-Q%Ay&Tg>?%60a}Byd zI1~x0P!$9gq_h#9xsr{{a%XygY57SwFcYrCS^ty{KJSebJ-4ubt@l%XHa9pNtq=>U z_UF93+bESq2Ca_~f}ORKa{%<>c>=;9vJ1ftNqz@ltLM3pC%hn+75z%lbSyPz&Nu-_ zXG1AfrpcpXAOdH_Jpm`AMyWORc4EN;A3&08@>W?@7N`dyCJW>Zbmnig;xBRh*C5n( zVmc}5c#CN(rwWHVfUjF`3pYS{kWYpyZUMuBHy98oeiBrO>Zg#7A{S0z8w@Getn+!~ zmiiY(CC!iV1h)kg=2O*w2-LqcNaC6dhqMj<_(-repExf>U+i0PIw=hN=Q=pgd_q71!mSrxU_Htfq6ux7Izdk&c879 zoOU#u7re}}U@_Fl=QQy)7SN|4(+-FT6czw7c~llRRE6?)mNBog2z;Nk*>@Prdt)(Hhgj0RzJRS(18r4mh)ljar@p3~9FVUh)Tk{dZJX$lf4 z4icI6lg&ZBNTt!(&ysjTl1UPi5Lm=Txu7y$<1meqnL6S%v~>f+Q@Bc!yH91^_Py|M z$QIO0EHluQD&nP|gEjWe=tLO3t&&vV;!jx8C{UC9lnuQ#;(kfT;;xI!kfv6Nqz0~| zn(>e(;nG;clG&bd+q==mNvdC}WSqN1TL99uw9^09J#}je!=ks3Cw3WJBi$;qTG=32sr9JIWuL_ zpggT&eF76jot+3zD6#p2lhdJdQG>DYmQd7CWm&kf4V&1Emlzd_G){*Z0n}aq)$A2^ z@04;BbTTBcgaDHN!`4|v#Sv&-nxKulySqzpcXx;2G)}Mp!5VjW_u#?ZEx5Y{5AH6_ zaPR*=&CFSQ)v9`}m#W&e&$o5>>2{#>DAA5?Elga4EhVu_Zc&5TvcP<31C&{u09Ev{ zd`L>&{#g#ML}IFyKr~7;B3p8l1`a}WlYM$`RP+3gD~`is#E&+(dnuAt$^u9ZHV&ww zk9?kYubA5)cmq|D3~~s|oBUk4%#*%=uW|*8I|V-yik0~@;g1XCc8k?cv`Y>p#3LAV zyo-I|N*M4G6bUj!=1S^u)BmbxhY$Q1U8NkCD`A}jUW@Yuws_|4L9gxb{iuj%ph$s` z0b$f}0qeZLThK8;v0`{~+FMZs*hpbwNfCB#5rIrUHZ#W7VT>#Cd_}SR?j&zLG5m7w z0w_>Hf_3qaRBt%>5@_6lo(8->VLs;alqKnC`h0rhK|X~vxOh8Xg#*d}JJgk>XtE%Z zuk~o!JfPo{1%cNUU-?DuYdMddD}!B1br^nrS{oJZsq)^Xjd6&0&%rF!ip+b|3Z z{3T0~HP{4|eWNwHwlxa;*@JCA1Q$!|`PkyD@hI;UX$Kvzn}I<(tn^ssnQ{`YJ5XN- zbJ)$&>hW{^;W2V_$dGI$D~D-auSth9B{8(UpS)uIFpyki>H1j=L5BRFH^#+gzmex(y$CLWx*Eq1Re=Kjc|;W9)#JBi0M^cEmB#TkUAixcD%ip2!ogAEBzM3sMfkaP2uG&A%IqpUCXFk zfz>f{fcEc4ZyTqIRu^=|4^h6MVBqk+COsCe!!znsajOr%^X{kJ9GO=jN(CuO^?RFc zv$@E^z3g(n4xL&Q;n?ygC{I(YxL6xwJ6Id49rVi;&kzp(=C;A}-YAd0b>X$F7@VmT z36U**s{EZ1{YF#mD<rDv)U0Q2B6&}5?ioGfbeMtf>b#pB??YIX^ zU0l2L&WyNXAwiOO{qBjeFA9!3W(cU*ufdEU!vG1BNdRd%|MV| z|2VT{DF;To6_z|cQm-w_vDVDEPKg9)P0VWgs(h-bocFL7X`)x98ILxB(s`!!-|UcG zQ#gDR|F19%+}(0R5K|btvgTMx?@oY2i864IOOYw!2)eFRy5jgG>-py=?YT5N2ar?% z_)Spdj~CtJf0jn-HR4s-Ry_Q@`w<;D-6FgP&u5hZisJ_EnuzS^|O#r zbzD8c-AF0B(|8?s;EY?VszH&{DAu6MfQfBC1;vTCuVQKPul+bDcTcl=RU?9FPFgp` z^>Ds4o*R>&$JvCZVh_3ZB4O`q)(A9Hsk(kmYP3zVPY?Rp z6fAR1#Oe%Ib{~#W@6FC=4$@duNAEeu7%4xlSRXX)65m;=StSwJv)UflTdcO9DvLF{ zRaY+G#|$weVL;b;K+C$f7in<*Gm=zmXuYN9ffn=a(Qe3Wnv1trV`2EbQ<B3; zU^LEWw9sak-{yKQM{~26Q;57EAEki3H1dD z`E0_?O5Q}Dy?h%0X|AHu5q#o!;=-4qA^t4RDp4T*RO<9blYD%Eo#I&?8Z z*418wYAubCMr*PQ3oL-(x-Db8a08y12yeT-f_TJyz3|fNwTS+_wxL-VggN}nt2(if zE0$DTrezV{8!V7?42u*0Q5U(80R`BjW&S%is$jp83H+9PVs6{^UV-OeWbr+E!& zvP%_)LqFx9v=u1O(6nYRy%)i-vca-!)xc`k3_jT0|7W!LS;zg&b~*XyvX0kikT4s> z`G!GFU%2o=Tz5vMVO%)UarSuaU-+ZboYutdjH*+H_|x8go9%Ri>SCYY$(Wv;lAciJ zo{k_-#S(EqD_`h$`oz=P6omRBee9sI0f7_h0rv9bUWFnI-(OVgeYq%uv|9*${Co;- z<`-x%TxdDYke17W&IUYKUjw&2M&-_dVJe@u$wXnE3z)? zswURsMN20`bjv!n5&F3rqs4llWaBrTVtPWlToO$}73z0%(moO-)SB$mf^B;RVEKFQ zaP+TY`t5Bw7-_|%V&+Bg#BR3l0%5e`6ub&~?LUGUpduAe=cfoa(qGb%O?O=K09|I? zx0&^)^6)wEbrxP<6W;$0HBZV>0~9hs-bhkHDqA+u_7M26$~m61jy0S2F}e%xlS~W? z;`EZ%qPx>c56N4^zpuIfqY+ZYesSGJa(F@eW93$!vBqjYkW507%69O^!f`E~k|~x! zv^7SBtw=7?OGgn;h+yv{_s>T>{sZGI*7Q?K?xjsn+z!GcywUaBC#Qg*5{>sb<#Yu6 z)N(^FGB_s5s!H(A_5+dtD%_|)1D>&}Q-Y@yVu-ICh=6uC((^|hY&te&t~ifj~U@F&>DA1uzCy;rkkvUyIF5xE8Zl}4HDu)Iljd? z@AP1h23ek6yI4fpeq!$ri1fL(ic@l@@NV7i2D^Q{E{up@clK9z6%i$?^?3$!(%mkX zJ_&)qHIbhmR=U}H-?tHkTA+!qy`~V_a*ZsOkEh1)o9E8^R^J7TueZ5VooecuHtvr% z5jDHf-Y-s;ZEVAU=r_F&6MU!EWx{8Tr!_24tOSnv#TbTk!r2hPBVsXRKELyiwIfjq z5e+i?QlK36rUY&cGg)geX!+~J^NkU!gs?$LXa!gjr&j~zBqy;_yMuT;MWMn!5JzM1JVZ04!+$q(o`d$@ie1Wj0aRzH=-=j5>b?G) zh76@8jxKr#v%H*!LU7BbJKQGaFmZ>Fi`K?g43@SUVhJ{;!S}_KWxAo+hE);xdRNIn zx{YPEk6!GwjldJFmc;;g{>MT$#KPA6V!W-}JYiBAAiF;*KQ*zjD3|Pt_YHGJOOTF| zE~6$Ycz!`wWpPqVKG1#`pDh+HQAgv)C6kx=X?~7d7vxW=kugT05sd1P!c#~k4hK95 z6p%BS1as5o3$1z2ryeb+jb5jQ!}7~^ zw~6)MG|b1P<85_cJwdgzj@P`APySlEH@}j#D|8T-9=(Ipi|tiAf|KEOS73XSiv()$ z+d!IuLC#k{)|ZD{9ZHPuTSLAuZL`UQWrp%J81DH~hRtr> zS-D5Q_25>svI~9(_BN&*QuSbX!*pLKZMIc#V!f=D9H&q(J1-{=9`z` zGmOR+p^L9CjNuT-3)s)paca}AGIwOd-DG{NZsBbNcCDo)AxEOfZcj34a}>0V1(G4o z@$)F%5MM!M&WKPuAe4QJg1gm1eGFGwo6jY~EQoQ5y=QzsoLWXQu)N$c*$PrHUAOtW zdBojM0yN^p!E?j!l9HWrF-MP#L=m#m!dNmw%|%qz0kh#E#k+zR@h$T9eK=8^;ZoXK zWCgYCK^>91SpM3B2yUm+L7j5sHrhnJ-G9(4aDU zA;U}2u6+_!3M~l8zH<)wBiqJI&&bobOQh4nx+K87EEL&>b#a;{{H%F1C;Sc8kYo>p z({d>;BEANqX(!Hwbz{jcZ2Ta&Ojoxo3(jQ#Ehj`)|D61Xbzw#xFiyM((k6ct>hyM%*m072|62IS|$2TZ36Uk@ToG@ zQ1V@UD>?_x5f9U10@@D_5J{LPjM= z7h_>fXq7(xxm4jGG2#0J*^l)6Uzzvx+Kb8EOK?g*R)=NuLgM5i#K4*=LVabaw~OL3 zkbMdqY+^77jN)tF+N5C3(p}jq&X$rT*B6!20nmx)HiPQ*_2O55=5Qf3TMcH6W?(GE zgjxA$`h??*k0&xSE&VBWn7lQ)1z{5W4>nk=P$gwkPC_w`U^VU$u_9M*_=?)E273BR zwS;#i36TFV|M5peZ>X24r>`%k=USI?gdBSK4iE{opO%H*#6TR@!J1W_U~^rxFtYwk$VsHG=x|X{j}8BxY>Tz|_x`l2NntAwyrYZvvam zkR}{|7l!UFSVH%UV%7%5XxFcTpVF|w-yFCb(Xbi%5X~`yR%;Y#l6>6A>^PFvnnh_y z5|7&ONr2xfvwAM)e)Nj;6nkadT#Dq|M ztwRBl3C9l3$aZRNj13t>w1L=+)sMicO-e~Io}$2tWwQ0`5)kWa5;Eyk|3CLD{&(-{ zV|nQn1g#|`IHrj~bOiSR8Hkb~OJj7AzaTVl#@)8SexuWvQPf`j{K}-DI_qZqlJV;y zd;%^`zR}dILV6v!GN2!O+&k~`i6-E}YnDlX+U(ZrR78c^AT91LZT_j}bRK=1kYlg< z5z(h-`eBNl)WGH|$!q&@&aKyU{Kh4?p8C9EM#27UrnHOPuLX$D@q$`^O#1l+pM{AL z&Qm}RfdxfF#!1cw-(A_FKhG*CM~MXmrPd1nm7#RruD+O#!i2sq6g?b%1Erer7jpI& zMU75-vvf9o3bMK0`FOyN007ZYY!6XD-vAKh3@76XM?;Q)`UZzqT&SlO&>@CR-kAk? zod(ZaSQAeLo%MySwz%6_C=!q_Ef3Bh$mjypi<6snktk-6V!^0Bw-+A;!{7FUAo@ja zNG*5rNHRNxB*e@z#VQ;6VDYiwi+iCJ+6%u#4+T&-x1rE%^naC)=X~pBBjQfSlVn0l zOyt9ll^77T&p4*6ny4r7Hyy}s>#U>{A>$O-E=pH`PE(F35q$3FvPk9#7XAViO*4p0 zXI~;D9&(A_Qlkf7PhS(OU+_bNkT;#Y1<>09YUw^LfC~;M=*#(al|QJ_BbS{&_lib^ z!5c(JV*c7<$rNsD!OdI6J2{^f$S0f|)wNQHFC2*clrW5n&&=SR+O8`D|C9I!FYy(5 zB5*y5o~jK(L!!T+$JZxE7#ux}{>%?GPvJ)Ni3G*agXmsws0BYu6G(P{FD49jBNM6; zR<@^xnx%)&Bn=RZ7a*sM4Ng5+6S5G@w$JV+Fd!|-msL?4xkCJN?aJ{}u&>u8Idw2N zEqFK%nj)}@TLwf*T^Xg!+rif$64xuxJT4Wu9oR_ELWNhu>O8hPSJpy5ETkEp)DQ=S zh^-gVZ^IR?4wT7M%`9hU4@B?tM;kA#m9CW>0EvY+4aWMN4G#%~>*6Q>#uABU8m?gz zGU6NuiYb_tLH{U(w`-?j!o%4JhdEL# zET2%WEpDG+J0hF}&uNZR*F|IovG8&7b}CYKMay-&0jh~=|MbhJSYYeaq7HKbW;W!1 z%1tgS0(Ocs)x;Sr29z)**nxxjIsv6UOfXA6ffeh6{QKy)QGM3E`6pGWOB2z%K2=(V z%H{aV>_iwU6dkzVryql-pA;h!lcrx9RaQMi_Sa+Hl1EI@{eDyHBJ zw3ceo_T-cO42-47B~mn8$P7Z$45AV8%is+1!A!!O%G;YN47O?;-Yg3DET+_K=gI_@ zJ)Gct<>DRo-9&{dTGZTv4c9ubB;*}z=q7NAB<2Kg{)~XHyb~f%%%>(Ib8(QI8e|? z3!e{1n-4A12p`diEt}^yiV=uW<_>4woadvQ$ex*De@CR7q!l-ckcgRPd54o= zo(pc(5G&D;2$2@w){KPE469x6^%|x_9+d6U{1c#=4b+fNL6ox$S2Y6YY60|f!g=rK zXXCYS7d4rU)D_$p!d8&dbTt_&5LJ|Z@o*s+FwYnXwHDq17$)cTo)*IJv?3suOsYrm z-L)krC$f*UTTQezm9*@bmx08~4AiJV;s|HzCMT^p>><8c=jGR`WlsIY!1zT$aJ9yl zCpe3)W%({`0f%{2hiN^fH8Z6kqBDv<s zAlWc~y7FOZtwvqv+r{teAs8EZa+@7p3&`3=>ZkAu&tZlyf3Y2nWfF8H zrA%9qH~Phs`?b=#n?i`XbFjM&0w=WtA(k?f^w7bYB@XKceBdSJdeV{=_&`xp>&}g+ zCo=l0or$ZR-jF$p#gxESOj6#EAd_tc7a}UJK&;Sp=yHuW_}xe>Qm6_X=tAPvFRL_& z=7D&7^9K=zbm6Gf=A5xcatdn*9K$1Ze@E47DTYY${`i?7lFdJOnB{fH-p)9~Iy5+zZgW$~H=vL7#G&`&{C6pn)GQXXnjv|p+X@N0`UtiC|fr_$nsgas`Mns(y(qrX#n zz+d3f*sW6kGH6Z5V(y18>D`)Q}w=AV$*Md6mhu} zb&el)zIV&=GWrN!7oJ+Z`N&-xf}=9Gyz!P!^j>ULPkLESSUG~*G+vl1SM zVl&{z)iJ0$^U7B}!cV<5l|tR&o6pJ0gzy4^aLV$EnU9sR5#zZa&5kdN`lhgcKFoYi z>IMJe>e8WZBf{qJO~S^KOd`g7ckfXRaDH8RN9Sp|xVlR#R9)LFz1!-XH6$^aq%u7R z^_h{uJ9GCP->eCnPR5~{a<2x@?oh8;;;*dMuT$yUCgJ1p{)r`>K>{F{n;D)JSYfMG z9%Rr_u~={X2Ln{e!;I1asc|R0WKV!%Q+@WtLJRG*h7Gr%NPLDVQVl81sP7@T$o3cB zz#%CAdSdPS*Fzl+{p%nABIP7g!B6l;_f1{&gU)-W?KsZLGo3D`&gJQ=%C0L-bnp2P z_XVxgCE$fM{p5O^r-Ar0tewXbS|KN-F@pya{4NIWDe)2@*AX;bCuY;U!(MZ<%c7+ zmh#_dK{@`gvwc@LUCulVy`$rbhRQ{4Hj>)oQuh%Ea|B^_hL8&pb-Esw3nz9Fa*Xf8 zqH#>V?pwac$4Vp;J-T?)dU2DyPN5zzhc^;SH}W~?Y8s5;)HnF(SLKBgkGJZwh-=RH zR+B6)`Z!mz(+x3J27bc-M8O{}(O|SpuDd+!i_vmH1j+4-=M^4#6^?~nY=DU~w> zEk=(p<8t0E8{NNGst>1lKOai0S6p)*=yB1Nk-hZ)rn>*K(3SaiLvj<7lThZm)m1g% z0_Uy86aExgaQfutZtBiG;x}K#A!Ht#B}&0>&Q8X0CWB z1d=$lDqU4x7HJv_0ckW*RVfNpwUQ=HLz7p z8SiOVnwZ3L6<6U}Dc+KwV(QO+d^3@Up^zh>IDq$qj6Ovdiu>6@Oij6MR}zGNtC9mv zf2ESk0MFQ$6mvrq~|Xf%%#frZaVAvxwfOtNUZQTcX~poyDOT;o=12e=0Q z6Y(?y;Hh`cQmF;Y3%^A3Mmsk_)KXiHr|*ym5^r=y3$tX9_9RPtw9 zNl1|#JLLR0e7 z0hiW_tF&PrY_oPfUI$mu2Q-V?I=WYv*UAN6#>sLz>pgeTPZvZj1Mje6@Fl2H=Ad;U zF@qO7`a5E)!1}ADj?dUOB|LcB<7?Pg@ei^okH4|XED0OYrTS=(qvp_lE2jttO>$9P zW&1AD!O4%;jtZ>L3QHHXtwM4zBJcDhOZpUyNsX7@CKTDI6vee;c-78K>XC4ypAARE zr`!kRYx7j8?L1dDl(a3@$Ml&?8h+Mka$4fnl&RxNHMvSFnQ~ye}STT`CVw zT$nc@5f~_Q5q$xhw~1!e*0nD%7GAcN(&cCO;?Gas@JrkVR(u{lx)691@V7>yZepCJz~P{ty}(` zsy_96#$1F^Up%F$PRRWTn1!L&UfSGL1LI&BlBpLNJD2u5=g9tt{Dki&PhndM&|!Ra zJq+y8`s2RpyA4+FzHoBW#Q%rN+|sf2&f+=1xOJV_(s_8U0w=f)dMAJE^mBLA5Z~WA z>;KXH(8cO^Tlp=o_(vC5-oReID<78jEbTW0PNa_n1><0(MPGJGS$gp>%9hzeUv`wW zzQQ z!o_tEdAlB^udXT1g~s>Cmn3A$#sQ%w#)u-O1A2|N65F!!0Qj@D18&`vtjaJsSDx1O zxp z`wER$Aa5GJSO!@6xHwGrIKkLEv1N-+LKor06tiQcg&E|XvBDvVL1PN{ayIJ#bY;m|ANHv89l)xobXKhBQpq-w0BKJ(HRMA{-=IIg0_kp~KyLQ?9X^7PRY7WH-c+QdR*LlhYy(&N-!L z5d(VV;3&V9U6r)p;BAFfeIvA~`_7)S)lGAQBKf4gy>Kcm*jVC9PjQ5VvoUJtA_J{a zYoYbQuHBQ*YkEQ}NE&61Z44EUf7c# zWP=K~ez}dPLkc)=VM8Z5>fMmo;RLWYUgTdK;D_jOZ*@o~Y7*B;b3c#Z!gGLN+%`tP zF(4}dDUv>WQ>}w5@2kAl`uvOh6bU2qI#6S8?sNWDr|#6Xow=&CtxHW?6}#% zyDri(v8kJD6sMdqo&Crtyx{TlTxex7m~Ktj=Z%PSr1tBD`BBhZOdpP77HTgECio5N ztQ>T{2wgr)LVT4hN%l?Ri!LFbq?ON~rAC=A{IKTRvGH_}kwp1NY_Q_Nfi3`1s6u0) zJM;_sthm=GwVZm=mw8y<=&CDXxjRWsSyN9gX?XyIgD%N!T@*`B@J<4;AywY=M97X7 z8DX<2j2R9rI1Sc2M~!K-sc#D<8gxdS(?*;FcNm<9JqTX`A}ThS1?B*VbqRCCRaQ(O z`{cf{70O2wXCI*x8RjBRg+WXV5THre$WjDT6$tVXU_KBF2$5^nW}!0mqRJ^9Y~$^6 zqn3<9yJ0~yhDshJ!+0QV39|L#TICZdsc(T`42JTJ(e^Uh3OHDb>iP=6C!^%5_9hoI zxfq^(O%WhCeadF|^s_H!QTV~lQkytbo7c=bzSNVkic8z^#2D`=hQ)gp#HKKfg{cAJ z))3^*bc2kYSmokq;e~9R>pZzydEBPrY0-y@KI{n2q@l&-V>1uj98bGu!X;>bvU7 z_DQ^MNjnJ}5Sb;RekUqSNlc#|e#nxO&{{glK=8~CeFG0;?&PYg7-Q`sy{p_QP_6RY zWLSeEV~aZe48E3|o}DW-MQbQyv;I=sSc(~yc}sI;$J8>wJ+0MIHQr^p(@(oSb#bGM zvFD-k=VGPDCL_~JPUm4|4+&F0O;tY&(*RG^fH2dbbk(3T)6mjFtX5jDcGa*W(;x4( zAwO+L%QLHeOJ!pG4iBcW(yB52vycew5rQg{CQ76dSyX$Tem}_KV7w#vdltyrmr4lB zzOzMI=nks$jMb1y3fUVz$HsmIdljfQqtNHa?qFXY68+wvagz09Q&%37NiL0>H9*6; zf=l}38m&HT)e=@vAEGQ2Y6ZWpn!UwDB`iq%iOIt_QMVMH49sAuYh3%T8E999_Ah_O z)-RFCMdJ_mcLuOLKhXqIvxe~ziH69SNUMz59HHQAUbJB|EwR6ueS6AG$vfnMUKO>^lS2^`bE!}F1G z)-hRw5tsSGOPCCWitHG$H4R|uZH%D8%G;CLP?KD3q+Ul<>PslfzV{(x(q%gl^E@yZ z^<|LzqcFa#9)^6BJ*;7;4w^5BL!hMq@@baxSgN#|LMS%F?uD4qpakk(eyMY)vt$A) zFp+xHN`Y?QVzKaFb4Vu)r%dhOGlpY&g5)ArqqHE`!EoKp1PwI9$h_huwoslpUgPzl zlj$tl*Hhhfw|?py_^r^@YPq|0(K6}AMxK@irH&mWNyA)#v68_I(%**JeOI~*&a-S} zq-o`Kax80}^k?_c1hG4*REJe|x2OI|DU}9)yo+c48PPEYD*c4#cLYC-pk5PnZr@AY zy)d~3=0Gkd{uOXh%S_{67JPQRnU}&Qg@${jOYSLr=v-da;&N(TeprazLal_$+Ns>WzEUspyGgf%k5M|<^P#yl6k1OCJWhjwQO}!vz{D{nEPI9ryAv; z@z~Iy`Y@3oYwtFy)-bGS(#I8JFCcF##?ye0fcC=z*4BX2aXJ}qD#`Bg58tmA`d4UX zmlh~ucb`WdKYs%8GB<0{ap{`qFrKJj{t0iSAIqMW&D-PZbl+W~hGGGTZ%WrKCq{!n zM6bM<9&qwRGMSR*S@`xM%RklVPzh;T;7!^QV*V3E@6)e3Md)I#;BX$gYQeICWNz63 z=piKN-dYc1$kss0@bq}OX!qLP9Z- zesomeOO0!H6EjSU<-kK=Ox&)h*@{ZnX{mri&K#FwvYLzD%%bOrScKCNQ z8xbu8TE&qe=}Std&cq{rf$eFxasi{0jzVxyrt{}{>i6NrUR0evh0bAr7g31+@)h9!hpzwu(Fk=3^$Yy| z2nN4`|DSn#e}8!c-@m+HKY{;O&)~Bc@ZlTy;pO$|>E*wAet!DY{qytH^Yi`7%j@TS z9-m)cAD>2JKotp+S&WJx3_<>xwXB$v%0pi zyu3O$w>Z{6*Eup>IWp5cFw)o4@wrgn($>+`)ZEa}SXbXrSJzP6*z~)(p{%~9tfIR7 zf2XXx{C`wZUS9I6tn}Bf|ETmo`tRAVvR|bob-%Lvent0{gtV80m6s$J7G~w==NJ5E z3X6)03X6&h3d{3y>vFPdQ*%mFa*C7lN)t+IVoRE0vTLK`E8;>66Qa`+5|a{=Q{xj7 zVq#*#BO^m1qC&#L5`0}Ue^^9$x%hbhbocye=jP|^X0{ zL>*%K?V`J`!P>1tTP*{umSBN1Xm%agHno(%Ix?d&3Z+bP={PFMC`RcBUZtNh8s=)6 zx@zj0$|~wI@=8+Da-veQB9gKq5;CIV65?Xw;zD9#98yB8vTO_*w3Oz|__ovxw$vh4 z#5ShbiTb3;S`-e7Y*l_cj;%x|I5Q zSoLyW_xjrK`qJ_Cy72b0dG+vj@zhPU4TY=cLR-e;fQX5PUA@2?Fn zZ)Hz!g$J*hYtQj3FJa5?{tIt@qpv<)Z@$e>-qp8OHMfTKum8hW-~$lJ*5>yG{a<{A z!l5WUPTP%(vdgTY(`<-oNSJ_{Qlb$ z0EI}R*jl?Y5RS=cJkeUW_a~lGAy=`j{$MwYSrKuiMAly92dI^N#Y zkKiRSlB?9we7@f5db%~)(Q^5>HwckbxwG|pZzPHF+f--U?I&MBAx~L|UmVk356ITr z)$s$FX&0R7tduJlg2n(`(4Fq?dVRdw8_!ee>3)BGx;_0n-P7~&0Rc<59RQ63+y((? z%C-ZMc+$7Um^Nkte_&|?MG?Q&s&0k44@pY^V1nsB`3kAP-3YqUvfW6g=A+#xwqd%x zXs#vTUJUPH*hmJTht214R%D)Izs03ZB@`F@E zkK=F0k8~onN%29 z#sJ55d~sxgx#J_ne+kaku?zs) z;1q9$)2hZL+tcdS8~BQFsJ_n@!H8xEsLH_#Xahjv1)g2a1kdSN!;Ey)X$?7on>cbW zq``o#MkZMpQ3cM=xw_Gl)~d#%(#nhWv*vNiCKv!!S{9WL;+a1BtY{DbKchC7DBJla z6s5w?Afe?;5aUH_O<|chvS|J_GlA%WGfM<+8ZZ#wsnawR{vwp=W`rs&n!b}LzuhS5 z-jM>XmLMJh9r^3o&sijI=qgTH?}=WqUM%uAW?BSRMU1xJu>fci#jodFXtY*>g)PcK zb~lT<*46h*mn3c4S|8%RFIQA8Ws}0c2D;GNKVjikTV$Y4uPA}alv=s2t|zq z2}FwU8F3U%He&Zkt8LKmCUDynb~#>#<#}JfNRTzjG%km^+p1{NX_If=WCmYw9vOX$ zC_nd6=4Ter^Gkp1lXrxAlr9_z8LkN=iBqlaFuVlhbzpdZmgj&7b26R64O9QC`89X< z73>xBLk;B}>nCKPbS=$B=wRC^vOY0=e5d|!RhWKumD?Xh4I{e>q`FZmQ0#pIf!pOR zQ=JC%L}_3Yg^J2YNBP7{}4HmRxRz2Z6lF z(j;{uFiu8-s5nfYw1G6qn-FT)V}{M`n1O_f!M-*>0loUFXaVQZnBZTxrmd1Gwd5D9 zl<$BQnC>ed6pAfXOZK5%DD^ihIm(RCgM!AnRvl8YrX>-fF6{Ar zP1f%>5}tv!Ni<*96mkM<{3`rDomg2=P2(1WfV7Zv4M)y7_>PR;u2xy!dp?_(&=_9N zX41ECKD(mWn*T#?Joa8A3&J-@lyI%ivydYn9lK1ZAXOA$9;3&15qVVq%VPfW4lN*J~Ww;@QPervFS>Umf^876nb3fRgTE$ECUq^ z``Ft^YG=0mgq|gr5w%FDFje7II3XF$>;23-U zODbJ`SdY5ijwE9nn-y+-o*dADod`Ul{v1C}9ZDzI3}1g;FGL(EA0_#pox+L=#?(^w zxp6jHxq_uZl;UJ*S-b0nafvOnK<8e-`c!^u;dIN@6x z->f5wM?RH4o4AZYKqM$WwYRd+3)N?FJJPKH?86o+(P)b1$UE3cZ9M0lw(TOV+eO!1 z3#s=u6WPSu%u?z+BrP~6kn=P^E=;LiqQ6&+{5Zl#@U7eoC|pOa<2!MmExAqG6DzA@ zy)abn9umn!8Fp0Wgl32-bp(o1QP{n0f2zgqRu`aU*d5&3&Vc2y@+%k> zd_Jk~u}LukAv*s<$0msGwIBiYL|a!0bJf-695C4snc_C2Cu5gfg>y&ip-e=AI)=eyhQr4u(w$z&6_U`O~q4fpcH1hirqc?k)LMJHLIe zdV8norzhgS>ri?@eO(cPeoSzy4cHXP4t1=3iB9HHTS0Tk=r_)A8crR+&fzR`9boxQ z0_Vqi|DacrAImGB5rR*>SJulIqv~Evl-{sWY87wpS{Jh!dFni2g zF}2S5y}{%pV*2i`n=&8-NWUIa01`3B-4!B68*%d*GPlVd6}Zz%hlC>(!7m zkwl;UDN@YoY2vfYtx0DFsX4>0882`!EcXvbUI0>tw%(kaB7|C8+fO_sBQS&-GK7Od zhL(%ckdDf9B+z1o+ou1^a-yMQJu~4Aq~}%8mmoM7ieM~|59f`f9!Drba~SQe0;n*| zk0UfdSIF&PSXsb)!FCLZ*MDw7d^bDsCE2F5NQ2-Bz)7M8F zd#H+1MAqC<7Xl(H=%iWF`HL|kumTwbbtA+*BiIuoD$}FdTcgf)!y&)Z)s7HH&AB$} zMl=H`TSubCTB9dq8N2Dw?92>DVQ5`-qZ?&|C(~orT4Shgqi1A=RbZ)?cw<*aV*bNd z7-8Caio)QKz!Q(&(~Z!&AwSlQd+?0QtdE5R5l6eo1YnV{u|-|e1#9&~p6rkTGU5^1 z;*nP4QJ&+`@Dnij60r0VPQ_a3Chq3HaOy!@CYeHA*odpX}l8YG7=fu5}8&L zS)LQw@WDwOd`Vn-NjzRjyctRSZApTwNy5)bqWH<;e94k}$09_)HMewp9DoRLAF3XZ$o5 zzBD(zG!L&d7x)x!J@i`gl*Q|`0Q~eozVu+d^iZ$#@Qn1xw)AK{;-Amyn0@$(d>P4l z8L3_w=@}WBZ5i3C8M)6H$?zG4eCXC{nWbKtWf_?jZJAZ8nKjRuwfI@}HaJCkSY?tiZ4Bz5m~^1Es0}uype)*=h~%Iq>VrR&1je@w*Px#kDiG%RpV=T3 z?SKf15Trsnq=?WCBnqQzA)`A(qd`Rj6zZZ-8l?%r2}oL{NJ@MlF%HXM4-28CTpAM+ zI-%aM0z|O_8Cne+DiB&~48|}FU)rTx+7RGi3U5jg5MT&Hnx~3j2oMkwUJ9pmY7u`b z5&l$arB;fi4dJESUJJ1ls1-4%fr=3#kPS~N5dE2^24SfkF%6O6 zsFcb9gUSu1$_;F)3i1G_Y-$XU>JXyJ5SS{ZxH=PXxT{*$5w#ksaq6eRx)9xPqc<83 zBrp&=dY(NRsd0J@jLHzdsu0uK5FX$ULW&653Zy~m4K<= zK&jw>35}|z!&<5F`Vi%M5#nhL+OUuN=?w`{uM`0en$Qefs;UA34#+U8*MJD%;Hn$| z4*LM8sJaZLnyB-ds}|c6oB#tFyRjV0vAxO>_3E#JTCoRVqc@rj$;tsCzyaEj{-M?& zuUzV{BI~T->Ja-7q=--t?a&VOzzC1<2!tRKAxp9oF|!4cu^pSV8vC*R8mI004(kfD z2Vt~Q`w>pMpBs9w{E84%`w$76unp_39B>V1FbN!B4$fc?i~6q88mtTZs%=}d7dy8$ zfwW57vAwFLWq=H_TCjZUs#;nHt_ls4dbWgX4E~_Ed^@WKTeyEZ4QyJf=5V;D>a2n* z4~>hsemkj>Iggu#Ni% zTl%N|YPWa0u^*egue!a#dJUxDx$s)2=4%h$8>h`nsni<@o$I=MtGQar25dU33~{yl zIUXjkpZMCe?2Eh{FuxHixHqs2`fI!cfwuPWv=EH8w41!kV8Q$gv4+d8$ossIYQK}Z zx&pDb>wCbFOSdR265t!YFp#&)z^It|r`&)DS_-KID-e^*zgo(u+yJ=Cz^-&^sfwz; z^7_F)+^|7>#4${?1!20SdjSP;0V@!?QVXqYJH)2yrCJKa_K?FgE5j2TwGF`zLi(lq z@UxE~1HcNyNj$JLybLz%xn2yfJnX|ZNlGvw+;kOT4NK%Mj(ssm&^$oSLsDAfPlm$}{}Ma2&Ci47UaA zt`K~{iR%YYtF{vxyOm48IE=e8{Kjky$&k#&H!Q}|JIX0M%p5VucU#D&nz_|$zl@v7 z!R)1Po5gX;s%;v<2fMjG%%#!n%Gh6$qUO4@uNZ75A47W{ou2Vunv2i%=f#@PJ7J_>&$@M&51kBZ0e>4%ecs^ z%#rZ4^&H7eEXXYEu>?WU7CorbPzSoJ$YI;4T8z;V?EcIgz|OoZy$lV=55dXciLabo zo}fz76ur_9-O?~U5MVpDs~QOe`?VQtu$4=`!VJL_4blyr(s1j|?u^eR%+kbM)fr*T zN{h^^OV5^i4T#ItDE-n~`nIh+wwf!o3@z4ytgJ3O5G0VF<9Q9;P_+f?s;x}aE-lag z0M;!%wutc44RNP=x(JNG2#bIM1HIJ>J*-~6*NYvqW3AWmEDvSf*abn)AKkqu%@A0f zw7rViVk^Uza1OXj*O|@Jk*&&Powf@t*_+)E6|kS#U;&(J0{%PO16|juZP%>5*?1hQ z>WsOVa1HG02WeXn*FeO%{kD9)!IN#Oeht`p{!Q7(ZPnI|bQ>+cMV!zWEX)Ftu#;TL zN}SDWd#m4_!OuM2jm+I5Yo-}WrWLRP{TbJwDyrp8rwtphkloAN9p0M#r2s3i4>1DR zI;4w0*oHtC;(E$&Tf^S%*Z#fVmQ3Ee?9=G&;PC3mZYsjukjM+s*?7C%8SckjeB8}F z;*ZSX8x9Tpd*7(d-wpoS3=!KD%BcaW4cU+lA4%63zS6r4)0RrY8$7v*tfdU=4O}|O zT#M0^+T#u$<1nth`VF%#&fKm_&)1#hN1NSCE3b7>xW^m0GR(*kE4%w0=0(1xvC9eq zOU)`B%xDhaeCy$mtK0{%tmx^fEjyn6=uFp!YYc4urKDQIjqBl(+SDc-#&)g{{4m&r z-47iAtY3cCnM=P89o%K^yqjI<`@QCEPUe?=zpKio+&i#r+6oy>U0mM6p?<>DT>i4MYPe&!Crsr#u7qTIBx3aORu=`RlF2b{slJ+`_V>z&)S zJ3SDU9=MKs(A7K;u}-tfZsnN!=31`hoL~d>u{M5gH17SM7mDNlNuCq|%ori>V;rLU zzz_T&(7C-Z<$mr=Ycv;t<1|q0c|*1IuBECx?h5Y^1$wTWz@#K?G~Y=BXUd=N9uDg% z5f+^h8=s}AJ|_)-t`M*AM%(`JBRtXzpYk5jwH)%D<;kooFzo6{@C!lYYwZv=KN2jj z@(UxfIdARA;Nd(!^h96uMt}53pY%$<^i1FMPXF{!AN5i{^;BQ=R)6(apY>Y5^<3Ze zQE#YVANFED_GDl7W`Fi*pZ03M_H5twZvXahANO)U_jF(Pc7OMHpZ9vd_k7>?e*gD? zANYbl_-~JodZGfjkobzf_>AB9j{o?OANi6$`IKMzmVfz}pZS`<`JCVRp8xrvANry{ z`lMg_rhodVpZco5`mAsIhMy;h-}>vN~KmYV!|Mq|XobUc)0{{5m|Nj5~0D(*3K!ODg9z>W>;X;ND z9X^B@QQ}036)j%Gm@#7kjvYOI1Q}A~NRlN@o(FRq9l#RjppdnpNvou3Mdc1shiE*rZUqo<*Bh z?OL{N-M)o8lk8l&b?r7a8&~gMzJ2}v1ss^|UBZP8ABHJd@nXh}9Y2QL7x84um6_&^ zoLTc`&YeAf{x)b?^k~v0F@r{(TJ>tyt%a6`9eea?*R^fm#+|$M$vVLP6$1|Z-#=h) zWFJTVRQGb`&7D8jYqHMp-@%Jf|7Se8$8yOSIo&pF-gdmu&7Vh~UcF9}$Ns$#`GWY! zXxN7j!^gD#{qZKde>bTcW9<8y zKSax<;R+~4q!CM^W)*mv>drupq8Ts66-D|_rE!q)ha?2a<7m1(Jjx?G2&aO>1(Qm! zA`}ppWU@&oaT4*pkxnE@#-_UICBcrYq|rMYanw;f9yto~#{$Y!DMFv%P+=u2VzDWg zSVj^4B@{dF#4}Gl_vEurKmPOY- zDyi?g8;4VIOX_m`NI+6K>W;cqpmDK)|7v{kzWhSEk7Yz4D` zXhOBpRFJ6o=U0xb+_8XefWZgWO*sm0){koC=$cvIU2z*+#}m-rj_{C0*kWZl7TMv< zTvjMfhCRv(nPl-cWRXWExnz@17Bt*(SAMM|`$+r<-H4x#*#d{!U^09Oj7Nd#MvMUtM$kXkx1; zOIB;;fZCX;urG>5ZO=akJ#^6rh4XFGbBg;?ndh~;)o2h$IwgX+M7kTHz1*f|k_f&r zRHq?#JaVePE=*ZvQBw1!Scp#wj*CVaJ$mVWEO9Q1My?E2szP++X^z`QCXz9$ z8g<8RS|T5q+;^kK{lj{ci8zzI(T$`hQ(!v*=YK{j5*ByUh1cC=Ha)_LS-#lTNT_ER9g1t(YC zDMqMn)GAn|%2y&$9KCRLjm8b*8lxK1OO8mBHhH856w%^GHbfCHcG8odG?X4VQ7BI6 zp-*i@M2H#w&ILRqrB$G2qnI!Qeo0CW=K(a(mg3_121ZF7m{!m6jc_I&|Ol2}1 zBFmNpkD0QerACbO5f@Noh#=uaFN3*FZZZ%L#2l0-@PJHZmNOyGREg5i3C*795+t~c zNaj9*1#N=v5HE0sw*C-P>9g*yN+jh3ww zMSQgAaiWP4TS^U!5-A`x>j|h#$lwJheL)+xbv{OFaNqkX6v50275sQ5}-hr79$%SPe=> z#cI)wUPK2VF@r^75t5Pm2@^7S!kxgNQf;yHmolYkH*LE9r#iqvPdwcdMSco^lMV|2 z*H}nV6WZ0RES4rseQH!W5)P;iq^Vb>=tH#H5XUa$tCL9)q+ z3Px)lb(?$56DZEGiNB7srxN*TIi7(FUKlhSv`~m*kGhr4$^^2N?MgiW z@Bjc%gCP0<00Y44kj*lrxe57fMMpc{S;7q@7zwFISPK!?;&V?WJt=JM^j4I@RHk5f zL0m(D-;>7mo@g*>e*45<0o&=GV~9aY@w88sz7?jSu$t!)inA|}XgbRv(Tg6cK>m=91gKdcf$(xrQwQ^s7 z)^TwN2n3+w=s;{B5>SqkKcF1Zh={EP4;x%lBqSf5$XP$)yk7%5!TPlmep~9`JmHnu zv7Ppa4eV~YLSC-!1u?j%{q9gO{x}qr-+Z+>U-}qa*z)Vf{CN+57c;y{l(p zJ9VNAI^FkgBjRsf{NWu1(1uZKeB*9*6CRLZRC6jKjmpMeWC7 z1u|&iO4qu$@C0%@J8)J=eE$qD7v%1__IFo>#U#B7v!RZcQ6NO2rmbeGkSm zftfN*(JaM!Blh^aS*`mEB+&s;bJl$I$-U|gekb|4@t-$iBsNo1p%Rhpn zD1$4Agpxa4$Ucy`2J;(;qS81DG&-yL2;nlQa)<)=GpePU1P1_sClIxYcrHqS2b{YD zfjGKwU<2f8!_P`UkSGUckSa>FM2aZDraG>svK><61we>_6JP+$+B6sBLmIfb{;R`} zK&%af2Xg>C;wr%KI>l66#fgeB$|8tEn6grN!5Bow!}$+{fWY&6Ok8L(B6Fw&6u*NgDFv{}LL>-Q z2!rEGzW(=fs>(tIK=88a!-YPO0atkj#?-%w^30el2-&1fP@KuRD*$hZ2g>>^@*6JC zoQ63gN^b}`C2Y^L6g_xky=CLV$U{fa!%O*uJ#p;DAmlLi3{2|by)`f; zGvv32@VA4DI9#9v2q?Jbi_FE0%%%!KfnWtGz=eDWPUPaghZ?letg3@DuFCoYX+VWM z7>EKSOej0hPWvaDtKmbTV4ka@>1JM~BtkkqXtur(zwa{r8w9gcX!Ro(N_yXv<%J6j4uo%yW2uqM~ z0mO5Nj`9e2VlP2KwhmJ;V!J{faE7>qF9CJ7%fm2ft55ely=-gLz63oe6urM>z5lF2 z`^rm`x-fdv69j#>d4o1bHNr1UP=LC(PymITGR!k%u{2c7@jE`Xn}7?2Or>kCqkB0S zfPjU%EVT=PgW?5ySh*K)2MWlz<1+^whyew-hKTaH2f)SYL&O*G27O3YA3)7ATg^n+ z$)f9qpL&6ZOMtAKI9bIin_D?$Wma$%*Ey63870aW`>YgQff+CX?UGWUJSe^XJ1ktK z0bMo3Y4wJ|A^{h8fkb<#d9|u~y;rQ_*SkZkkt3`fcn2qYh&RR9uZYu!s3dB#(}loO zkMOm|0~7))H*7;GNIj`2$kf|=wriBj`>Z@6JV(I9Pr9l`8W00Z#WqYeR06YE{46jJ z6Sf~r!efinQau?l^pnHHlf)#lf&hf$tFnK@P+QH=Ji98P5{Rj#GH)2U8oPu~1AuBx zNi=J<3-AW5s|P*fS{t*6Rs#nhxU*GI2L%u^BJ%1+AhgE?0>Lt(7%7i(7>XE-j$iyLHUSy#W4fm|Wrt$-1Q| zEDJKbyU2)8f!LMZ*`?juwcXpr-Q3mP-R0fh_1)hE-ryD9;hkNdNG}(drUEE|HTYPA z(1WfFiDisOv|JRkRN8JDCV|p7eAJ8XVyKFUP^;j8@g?8#HQ)0^-}F`A^=04ob>H`e z-}sf^`K90bCEtzR!H#f7dE$r+IZrdtfsPG{v}&uo(oaLN-s{~aQ6i-V<=(jP-tTqQ zsHF<~wcrcJ;0)H_4d!6^#b1ZOf{qBAIrWItDhS0J2^DDGh5$pOZIlF7U|

      GBP7H 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�V#RHl+ix#Gc`SMMXa@3Kh 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

      P_FAAaUYFz{1^fkK=IdD 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

      4?&Fdb!aR5b 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�??Vqo=T$L63LmdD#(BUq~mP? zm77T71Jr^7^d)W#RBjB7Z;YI7j00~>1aDN%e-E`G$UB>v&fok8f@8;X`$OW^Ugg%o z_}0@9lO6OgWS%E&+?P>1=GzS10m^a^T zpi7hQg5vMM`FFwfcOm_Ef$0DeZR^h+j$dE`LhAjql@}?&AaR z6XNd^^Y4@D@8jzM8Up~${Q%j0|Ihn6`um3F13>>9E2+NdA4t}gkS#ME3nMmbJxrj^ z9YA|OV4yFcWIUjB@1gAWp&aqC0{^j+_OYrxKppc&%_cw=Ga#?ezbf#tA^x#3|FNn5 zvAO@TW&W{s@3HOnu^sWB2oC9E$@qijK0x~}KzSeGbH&E0rkZEqZ+y~t4c1>i`5+TI zX9zDYsPH9VqTE%R?0Jgkd0OImM&)_d_<7FBW9lrxe;%MI4)}TNFYEmLYyNp3Rbwj?0iDiCN}co*Mu@&%xSX*#f{Neo%Zir4U}C-gRU)pK+mGX@$8 z0rkm%h4>)dyQeFamuusfn|~rW*U*{O7l39%KvJ83dio3G_T>c;Nf!rgVaq(WJ42~{w`aS8 z&gWyXIEbf2JeG?k-?C{&-*6fYMUjgbl@u!Kf6f0|YIglMg2M$74^@@aZMR>HilvXC z)6|@=vOKzB{?%Z&H&tqW%d*=(C4n%G&6)JZOB-tI}OB18A;-{J=|XW ztzK^_4E~yoccR8=lo`vyX!-E&aHdG5+Un$i%gj(F86AG^D6T{{UJKdpiR&GC z5P2}~reFI=loaFQvoIRRsHBLj%tjcZoC{xS;Hn(t!@d6-o+QH`uN2M|IJYCF30(e( z;PBm3#Yl<&PUOraR}58cnz=+_D43}t;anB_7lKpNNRw>YbWf9FJM^A5)nUnH@7*|? z;s|SP##As<-SPim?X82_YWqfA2q8Fy;*{d<4yCv|lv3QCLXqNb!QGwW?heJ>p}0eF zEl`|7*lC~VeZS{>&pxxyH)m&llS%SdCdsUowbp%I7XX!Q7<`|}wZzMv#~ZukYOMH% z`vFUNj`sh%1c!Z; z$>*fH7Zt9zf^CHJQl68Qny=DzO?VzlA-Xg?&s4xqjIM3<%7Sh(iSOwj5}dh9Gm2`D z3%`Le_F5_qZdKECFYaZ_vUcv3PhX$7SM5gyc-EX&ym;2#j@x-Q{z!0~qBA3`M?-ER zI5!$*HC$K6?i?Zy(O(}bN+`)%wxqOweY2nG0fE*l!v*;c3us=SH47nI=5tnjh47u! z{8NJS_N@IEXvXo&`}(M4k|%+? z@8Lp%_q*vnf)9rQU)-kUts-p;FGl|%!4Z0X`t>XX14r8h`?A{i9}=9$(S^32%a?o<=6?I+)h*;mTe;mc@xFypGh)cj<~?~8kI(yDa@yH~%mt257h`)?8)!ACNT z0NOsXmo*`h{9F4b#VunBRl33qN+7PG?qSQRfR$}xls^)jcj3&QIS)Ow18i|M5oY`p zgfqnhT(vckHl7qj+q8pkrY|D&`!;c^XzJM*eN(AuTfb`Gpyt51{?Mf1$gJ_`)7K-9flI&fU;dL2Xu;TS=9k6XgVnd&&)pYR z0So4qqZZ~PpG=0FO@@3-hWt&3z~%!1R$VSW1^$82z5zj=KEAH*9*$1Vw)UStTHBbI zTNxTznrNHZh^yH#$=Fhhf25EyCfCp=(~~Frz(K}OLB>i(&PYm5Pev&~!SI%jU!3Ee zsF;b6wlm*HKOQ$i!|xp&GieRECL2#&6Nw z3yG4;$sd+ejrua($}__=(~~kY)3bAON=i#BDywR08|v$t8){qY3p#3JdaHZ~D!m4w zQ{_ES??2EHGT0wEI2JcJnJ_q+I5?FwIF~uFRXMm{H@sUvvePuY)jGV{HniT^zu4P9 zJJ>%lJTN*s{3o_NIxzHyOq-==5&1#-;(W;y6MkmmDRtPj^9wn>e~AH#`>S2GL-As{JycZy}7;p z9m;k5b%Q=w+1_v8y{X)PtT=$woVv z%D=IXQ|SCAKmNp&|CLkz-BSKnNcnd|`LBfXf5elaCLLro;m_%ZawGYI77KLjLD^$3&?feutaa{nJ@66n*P$B>;x$nq=% z>hfI}dR(i$TTZ*33;*9iBV?i;7!;z8(lxpL;rJZT)=^E~U^J;%7?DhE{%|}kw4A*3 zE>}G1ze6MM3r0f(0+3(J))#;K?Hy6Lci5W#S2_7ZzQU>Q+Q?tt5$bXJzo8KYIp>O% zCcEvC%+Y$fzskwSjZ7PzzHlhSZ8KS&ekd6)^~RcOwg<7FVC_w-bmEY-$gI}KS{&Bt zQpg@&oln#q&J@45Rj4H+7kXW*I+~^M)md?>QYN7h>K!@TAfkHT7(vi{u{{*~iWr~o zw|7M8SEOQlt5e5J6||iEWPS5vvlkK`{ovJhe|g}Pq%_&l?h${yG5STRv*YR4-R1Gd zWM}8|GYp7!(-(+qvFV5SfAEgb{wXJKh0+!lZ$bC32V3E+1GL)_obwjjk-U4w+fn>C zv!VC^%$QK&jC|4~4Jh z`4Ybj6LQ(2%s6!D^0*|3L}P=^lEO=850;#x8@cr2eDto}S8iKx%9FL7HOdBugU=}$47bkkd&Hi2|c-*xJ7@<{I9r0{};U@pKg{ciYjiFt(%yp zafGn;SJN z+!B+^j+^#;nsC){&kJ;b!cFv^tApU}j@D9dv<=|?)BRfMaU`#OI95W++B2%2$4)<6 zmc3=(E&Bc05KYx1w48kQcsV7-@&qj>L!psH^Z$7{nRNW|A^^ZF>??|;xWODCob6{u znzy6?=d#!02e$DS@E|=f2=30Li{X8JLI8`x>xc3G6B-$HhTjuDM*u8!32#zkv|zG^ zm!xk6Y&O2}Q;j91dNexJxp=|MKFF$}lZQ_QZuMtX4F90xyCFN&y!Mn06>uAGvKsSr zjMoTzUZx8Zskd%_r~yZ#4x-6R2~Wp-BQ{B(r1J4?5rgbIhheRg!!1a^)v|Z&C^NBi zy?rs3&CXqVmG7f*8$Hs#{rP1%g~)75zdA%LvF&jX`E$@A6-oEPeNa*tSv=mF zXbnbrctBS4l4Lr6kL3-Wi1A)}HxlKS zDlXxW-rO@IDcL@QIMVoc`9f<$^6ns7SGaDSi<{IpK56fw0EPu*Ef#zM|3mKxttzUN zH~Gu2vnoYGxs(!M#*%;!*YE(z>qQX>hri1~~ ziCq|~*|Wvo;39mt;SYXWGXZ^4W&ARw8vUh!stK+VGhHjS8a~W&WMGBooYnE;$U<^4 zP9>kr5%SOxEE!@>S;V!kB=TLraCJkKA{(Pw86W&K_D!|O>l38`dw)RvR$Y4kD?v#E zU(NEy22wJ}Cm2AC?^;4HYF&Gm@D-c(;tg68>=ct+d?^6W6$TU)=!c+#u@t3aXy+XeF3f>4~M#wwlL6SQD%*Qd6C~w{N z)@)|vX3S!bDQn{!NT&(6-*KP;*CX7+&r9zU)S`DGvYMS&Kf`*vD)gff|cE?M_ay_sQxs=S*~A zY3+`hqgugg4`oO#9AP2YHnrWzKSr%-j@YjrLG)Baj=u{##cv?cV09N+q z_V|-ZQhHL(36Neo1|832IHACVhKvz~!u-e7VuIgbtV*@RHR{D`|Fll0Rwl_lbx9!U1*srmt> zn55@1$8qDhD=vQ}+Ot(3jqYT>cQDbpmGS6p6WURGMdmMUeco;L&JpJepJ2$!2Rpg0 z8Uv^9#n=4qh>D;+A8TV+KVRTsy-wWJNq?GI8fR`-W`M+ogTJr;x5@c{PW+g@hCrhi4+{1rLR{YeZNyhn8uC=i-EPr9?Dp1kJ#QR9lGE z(rV}xM-(6i1xbf>xdx}I4b!%+R8Lgk2c~vZ{%u9^tEf)H;Wi&-sqt_&9juScha#QDPlL$ zQ7~^bunwa+8%9gPPhwA(?8r`l5aH;Pi4)7hDUwRw{2lA?T zwLmxQFa6v?XiSYB-la%4r$j8JMBS&v40CG1qHkfOo*KS5h)GQgMF)ICgLJ(}N+r&4 z!#Kb|hnxe0G1CtG(APH6Di6_iFwh_E(v<8ZaW8yc**gl}VRr3nn-%(^9He*6*)_o% zTjp3a1-hX4y&#Kml9)w%oO%Iag>o72%ICmEBzUMzDxEMVon8$CxkztuP=9&Bv6?Gu zw#n-&6h1a|L-WfBQp5b=CZ2@^ziJ?f`kKCigA9QjVPi8`%xTX_vKg17X>J`F!jauCcO*E9G}Kuy^puBG;=`wPAvbI*MmAF(v zSCEw^Us3%v`e2fE?5+97fr4;nd!L5_2=0CWhqE>fecpY8K8K{%Op*4k9U?Dbu35Hr z{#=2Xa^Y8a?YqrF8d9A_my$D5FVx!tO}-N7X^ZVvYrPLcHS;_O72ebeA$DzSzN8<6^VKM_u4bgu(cm^5FX46WQ))2 zvZrv%E?Tm_zB5KCt%ybV^rOTAi_op#Et_UOLpDFh!o5r`CiByS1ALkuWGUAs$PFgV zRW4Xt0S`ur=S%H~zB-SE>TLxm-04({5S{@cjK?$UV@CTx=^mB+>WCTaP$f{y?^R6A zh*|!x57jDzrR03tByTHu=ItbbkSd~9pj1p*@lxSaVL`>N3jotK0KvQ`%}B<)e89cx zPNEul1@tP$4c@9gHMv4YuENY9gAchOe8lRsKVzk|cI~JJ2>a%vZq5v+Io?+Ce@)N*>CcW2c)%S8$t< zY~gwstmBR2(5>wPazP;kxhPhy6``ihC){tz!y03;0*T)*5t)km`L^59W&6ckOva)#C== z`y?H6F4CKT*sFLLDZZ4bRieV4p=Oz?j`pTUls_f4xrcH%PKzLMp;<-5x<^klPBk@3 zwLDgmDEZB5#M*VwXQU|V!+vL^z8$V!38X}5p3r(Y;Wnkuk*?>1M1st4uc1y7vvnU4 zPQT7w4`eaQr3DNzK#kSV4A#+!x6=t^YKh8~?*A03;$Gh47@_5x5jRJhWMvtt8amAB zHfRV6MjamVIvFx$?5opA_SWeQD32Lx?h9-S;k%FEib#PYh^^E~G+`XhCklHL8X3=My$uQSR~5?!&_L#LxM zRvu`G*rS6vA!*p}DnB7%IC0EBar8KGPBi(GfAUIa^2T%WE@SecZPHBy*{~X38v~Tz zH94Pys?7?=Rt;dtw%5)^1){wknF6p)Apk^>33=d{Hm8U%O;zS4IbAV?@n4d?#yXSI zM7PFtR)@S?O~qVCdf7hQ-1`QDMb~ffxS}GvnmeZhc+rjfExVJdVT}M_p`Ejm-0)4! zOAOZSxS$mcGv_r~B@GjfHU=Er(+k~m0G@@NB&!mR) zKzor_HPiUtrtxyhqtm^D!t)$-o23=KRAVy5C}}7gl8E4CAlazEg}?CTv4i zIOrd9WaQUyny*0w-Se3Wim%((-g@~|A@EQ-^1_j>=PRtQ0Uh*Tn+nGuC=DnOnmEiQ z0%76T5&h=3GG%w4Oeqq4bZ<-xg8f-}JQAFQ>4JT5E_}$f8oCQ>B!cy6WzExEI=+fn zBXya-Sl5r?G3ILh&Z$+*r&Rz0DrCJ$N3zQ&_0XOQ?^rA|DM}L|ya{7wpvB}|dv?96q^NCNy}GTv-8ERy+NjS$UB--V-@((~{RvCE8UO+1 zz~jA!(~ZG2dF_(X4&4lh;#}#}kbPWH70nB95gt0=c5!}&LEthExQO(h?3WCgAWV<+ zNSQGN0%Z^debRt(0mcs5YVJJQ5_q$RZp7tTAB&usi#mez`pt`a&58yZ^*srjZ}|#I z1&fzoed1!Sa6TarfV7HSOZY(uX^48;ociENB z!wcD>VHCGSOHRvkL2GK=@xWuR!f9t;5D@&fnWD8J{g)k2P)Eu`F+3l2sqCqA)5#Ds zg3|s>uvQ5|^w}ty*KkK}%*c5gm)G(FvR>M$L6?4|dzSn-7J}C|mUH;$YzV4;HN5{6 zz%L4u8s8K_{9qqVq;+r}LMk0heUzEMBy8dTs&EY!-7IxNl3D7K?abXpJ)joDDFCt*DCs~!b2t`!&hBRd2Q&ptvO;bYgL^oq^2lkubGI+zNj@RKC<49#CBl8}li zP)(^U#*tio?>uyud3te}<@#cFRITw-%=UeO_M%qy5BKch`yct*c~V*CCv)}fkuy`& zm8{Ozn9If5kc#-Cm5G&Xv=NJW$-<~F7~J#O2U^9mdbi?Ud6JlGNebWK*x(i;F$JS9 z3)rsCo_@BfPiG`dW6u86k6hPwgj(OGo$;330ii6M%nZ;DA8P zvj|>pRSI~_c3|&v&`{dL#&?{4+YT75>QDBS4R)0;DuDZHB;!#Xo>Z+iSdE&IK{M(a zJAM;yTf-1$b!ln_bFsP6X-{MJ#9(gL+vSJE!)p>^+sF6@fJqPLt=9B^sMHRp>CT3A?6*D)N<_dDdasiRsy zuea!<5nWZXca4b^NFpZis&Cz1Bj^$ed`l>N%x0`&9~*KOQ;&S{vuVjT7ZL`rB!hYC zVIYSc|4B#Tl}}!d<~Pt)|Jz zh*!re`oetV5k@l9i{tPdAlAqJ{^%cHZS&gMk4Kn02LPp_RBmJ6B3=jZ9Te9XQ65!= zMzvwkL(0K+Z`lS_tx*OW?{ee(q(co+*gy4tZ}Jg!fPCWZF_Tl6@T-I&Z?dz|u;5-a z`4y2P#1S7==d&3@)%pe{6M*;~yIp>=C+KVL)Ex3BX08JpWzHEF|L`A^i#86-NODaK z7M1>8gjMLlg(4|xO& zy|#2`;~>i6D-j~~!nP)2b$@xXY?>^3^Oh-6Af!-ViIk2EQ)5~R=r=+jrkO&Va03jF zYj4c9p7fW=4Sbo4Ilx%;(Rfhd!v#dArF>aYKTBxezZ7i@pTQ95yb5BZ?s01kB~BSKhv@ zlM}pNgx}_}gC6RHY9>yQD=lXnr*^9$-#NVPLRyRw_~h*K3|QzHbEBCV>$R% z0o=PI5N$#gHl&V6n-}n%#AHH5jh&rS@z~f$bvRo)|kUiHLkXznLojtSQX<|XsLlxN25DRCz)FftX3+Oi|eo+=~19vjO!OMyG6I;@m5od8|pPXA#^M)vdPgxm~DDhinq zhM?&r7Hm^ydp9|?%4wGBa#WTk2%Nk=?o7&{xEcG#tgI$;d`g`sC1(ym&Tv^JKD}+5 zL%n3Y7m*{SUe%1Z|Bd2j@3_=&j(bdgZi-IabxE@(`^+1fa%x9$Sqo!EZy7?z)jF`U z;`+9!?n_2pdmOUh#*1i1Ta<&iXLH0EX?bw4lzb%XzW@tpSe{d-^km}_@B>XaMV1vk ziLo;-%Zp`PTBhS59C?82LU9tl_i6L9g`M@ZoQ6ju?t52hw~Urj6`_+}fY~fsiGAe- zO;xvC$25{adKFD~rR1Z_qI&*Ag@)D-m0>fv$gj;*zR9RMt8u0uIhLv>w|=XG%$8tN z9cib_D*KMi<-IrkNTaU>QEPXetMY-jrtd7Bi3$7gg?yJ%O?P-6%zjhq#>Jor*Q#2Y ze=0np!ER{#qT=!l~_r zw{`9RHR2!Dl)M06DL?*I?*`P=y!GM4TqJ$&W`3c=ub|j-ylnl~%|hohyqzyRzX1Sm zu?s=c&L5}E0K~J{{UXQ?OvP`AtiITTH((dU)nXPDa~?1t1o|A|q=WAW?j=z=mx@Vj+j*In_iEj@ zmS+eP-J9qhNgXk5M{+UiX3Ea})aZ3k2WlKZ6kb}uNOQNxLY%tEt!HghO6ZYo|BXH@ zvQifZcJ0`kbk4}pmY2&fCQTE~{LV?KFQ*!lno&4;DD}0DE^(Jm%w%~|29=vHu~;L` z6|LMSt1cZXTZ!sP00j(YbOe))U^Xg%#Wcy*RvCl9G2AbTnam%KSQ+PFB_$hI2Dk`~ z6!H|IS1?!TER*z2G z8`?f}fcbCT=}IB!UvheE=Ww*u@ebH`=NC@DXdh6|pu^^2!jm?q+eXNkqhMJ{;b4y| zl8L4*O=QoK!;G9A1@qX>JG6r-s)>f%gWOz2MTsx72OTR|-)ax^Ufz?A1f2g;@+JB~ z!U+el2vJCrnf5t2m3+3K@~w(K4!n&?BwfEb5qMLSUJazc&slf9sTsYGI0MZ8psFY2 z-jhJHn2KF<{_L9UWwu2Y&&2SJy$rIC{7Lc|?Sl2wBT9d{OHJwBh%O0&hQ7SB$4vkp zzGC+6OMHDWIguYyYLGvNdwbWsF0(`FcHJ0U=Bx-W*G$~ZJzlTzYjOMV1x?{4Lq4XK zHzvl&p~fMg9nuFsKDfTuxkHHFc`Y|s-Ib!j-mHKJ2LE+!f87~QT13IixCYDw5v-L! zY<_<#0{~4Ir~Frdw=lvJfSEI`n@pU|@W5XsyOuYP!}~nQCkBBW+(UasKS)T{2Y~d{ zr;$PYX-pAZ0`WCfVfUuvbT;juQFAHCwnPX< z@rrHoszh=z&8@NoLaCI`6-OWGOH|5Ekp~k*X-`F^^dbf~jHD8`XlDJTdLc&xhyG$N zj^&T+gC`?&;1PN|ROz*_0SDwX^9X5+`T_m6ij~}|(XhTZ^<~a|gOQKrZPUfESImp# z!#v=jD%s)K)iT#v@mBZY`1+#M`ii6-se)RjkNl4Ofil_ zy{*GuvCW?&C-l*{Pm_a#kB#`X<#9F^bZGRZQ^)U1x?a*B@} zRa&Et^tUnBXE67{NVoD!-^-4MUZIqq$aglwSDf_qAIbLr9GW|lfaLWI4)9m#jLBH5 z_BtgDTSb)ng2j1JrKTCHYW!vDBA8cI21nebv;4~oO_;jc6z1}oMji&hjwPNu#q%c> z-8v&XClbNs3T^&n%eeziSBjgSC5*WS^#&yf(e-I5KIE{ZD zQS9ee=JI6jmmjH_?eFna5N=bB5T6=+sq|e(nVl@~@)6-xV{5tMjEQExQ7_I2+=2*W1405*L_&cegXVYN zh!lPhip>%Y{p=ZiAX3gztvq&o?=G$)dMX9ar2=r8U3*jjIw>ue&!R*!(+WuOc@6Qj zkGX(n(i18_VSk{lnE22(TdyOt{&74JRaq88^8&T=xS9a|k8!poh5MGSytbMOYzK^15^G>-_MQb1p+ zKpqN#?+(CnDL^S{un0a-1O_O47XX>Q4w!*LBOli0OxNa}))oTS7IxtT4+54?16U6N z7C-6Yg}|~(uQA6!A(*xARO?&U0W7|LEUfFhRC?G(>-&N02Z`&41;3$@$`04!|)R@BfObPBQ@TA)eL83_!sL0i%`SXQV8-aM^N z;Q+tAUW29H1aNP{Np1qwHsQ@Sr`O=!-s)G`my-}Vt_(yh$NYV`=^`?_agw;;QO}a8jTLdZ}0Hy3UbTL3CuAuuw9hx1GRW_E(EJMcPY9?Y6#;hTJ z%*ES+Qvj*P9X@75*1K({7+9Hs9h_zpDajmV^j&6OKS9!6)%k6r4r4WR@H=!c;g9bc zL9j|{yV?W0I`g}_d%Jo!yZRurw>DdFtR}Qc+oA?QscbOxdwz!)D1Hupe=s*lWo(nJ z?}l$2?G$9vysFz3IM%-faRN>sf>pTD)0@dnLFZz7BZf zZSe*j4o~Ai&=r=Y_#lq^FkbR7LG3Wn>@exZ9O!GAa%1iws4rE#r3e%Fju+mdBTx?? zWa=99vBS(}3KZ=XWZJySiLSuCw=ofDEa7`39`i3~WZj6gR;Gy7dQST>xKj&$KtdW%prb_HvnQtfWP7aPUDeKwPD5j@e3P2 zp_GrY(6$94T$tV>WA~4flAurH6DQ&^2jUo(3u?z}d#CF+ryHOj|At1^qbyT!t%}vaCX)IL zHfEQOz^1jp2(*u%s`nUr_HrwA+!Hlz^|X}lzzW4+nGm3qD_9DD|Jv;A#`)~_U(iUA z8dxM{U$EHrPV$(=z*ceI|H<1{!~hl_G2mtoY6k;KAqMQ2+A-ss?+BcO)X(kr0B|lq zkwxgmHM>A(Ad>Bwzo6Y+$2q1F*^`YO;`6yU@jg!RIr@SvcI`Qy%lVDq1**9p@}R-9 z^V!tAEkGTbDzHbsImdPZ#_rkU=|k*p(BW_p>~BDyY0Y7Ak}oKNPwXW>!~O>}LUYNk zZ_D51&u<6bk%Wt0=7$tf8!9ry!-k5v{N#ktRAHsGMYL0Ks> zxed6fEHLO9pfPwYyKpVT0;X%aie87)dp5wO1#53O>1|wV6|*5{{zS8ayZ zwgbPbhBx2^4dFP74w|tuFPrje863cC8(bwk0ii$?qyd~Zc$YqSpRsVCxqqK^d;jJ3 zUN##j8?ucM1!dH%`sd@1$(2O9CYIRh%%ZA)TY zOI!HdL_=jya1XaYCcB3Rb01b1M7+R` zvUr{&#mq>K$(a%}Dj9;<9brOXSs<*$pr*=sXum5BrZb&xJ4BKn3t-@@R7RTJ`<5ff zLT_@QT%Z_*$K$*cYQNQ8B=_%fve951lhqC5a{WgE$ymVP_A7ezX72~!$dBT8MJj6} z{l`fK@7sc?Jh&BJ@wojwVM`iRNN=>9%3uY0J5cgI1aUf=0~H zj%;XTBY<2VKdsa!;cMBHO$-f5;LmghL=y_q8|!Ts#74LF<&GXQGcqS8dCR!jZ|2pX zP>*}5rUd4HZ8oU);&GlGi&oAqZ;hU<4_{FI?@$H+tFoF{F>H@>00N#TlnlNVtM zNx9AqXUcF&LZ&Z4yeEj2Ap93JA|C`orisUnlaBvDoSKfS_VN&(MEqm7KTVOv_a4eG z_J_j`Uv_Z^=scUDN7cG*Q&4K51&Jn2mnf7vRa_RYFvHH9fSQEmz)cq4AZ= zp!xB}4LMo;Ce$p+$jp5wQ+%YaztFI6s<_x1*ZqJ}2S2qajjh^pr{s&_(QaXUb9PZh z)yJ0q4vom=lM<=aoZvXq(ox2Uu78$`ZoL9TuvUEs$g@w>r{G6Kz5%6jP4V}lM)d*V z##q`;YM0D1zO%Em{}(j!sCZ03n<>vO4e5m6{wjeFnpu%RMLSlrwL!CDvn6HWeC!u* z25yOxUbC;-;SoCUpV2aaBWy{~2hT+ZFTEdG+i`eK05n%gtLMn)b7QaDF?&6$CTX^N z96DOQov@Ey$zBEadi7afj4&-QIH2Oc^A zEzcB6`J-o)r3)w~Pg8X8Qr>W01I{L5OAt4;j(4KgU@gFQms1vhDNgY z<3{U?eLt_!=9G2t9shwwO0lkFP8y7V^dtN03w}NQZ_vo&o*u^c{-Z?b-yXS*MRc(U z<}a&1!`a5_izAIf87d>c#|emOvL|7}-M4lXS3y`#zdj2-{tb=jcYaMzwF#xV{Wml+ z<)ghQ3X65np8x6Y??+eVXTANYbW-f)0@#2nS=9c;6gh;JWqa-Jtfi+YQ@E zZlY{(3#}azXap}yCcS>veStjE2*c4&`Ms>q1_{uL zVwEa;c-N(mt?qGTV@ABwVey#sCF3f4lh^>H0$McDnz4Ik{9>=%bi*762ze2EQ0d&xpm$li(EhWb%KM4I0FGg?`z3C5 z5C@UG11zcu?>4LI^}0~G`-gJH#5`tyR5OmUrSZ>=by-i07Gk5Cy{U2peRrd@-ek*j zwT%sxUQE`;3@c01jg5`%Og0YxDkq=X=w5}tTLgGS_FH_QN`F^wQ(xQVRcV2F_&ZIF zR{{gin*Cqppqh{W>FRjenJs%Ql{%3wq#ZU<`+NBMU&IsCGN_AJ(HWP;lcyp9Wn zRnPb3TR4B0lRxm!5x$`ym~*mXHY(qK{dYMzfN_WHPdS-AF24M)a=2 zL8P^b((iI|%cvgYb26G`q&Z~(epd($eFE$r*Y9$&H%G?y?{ad>gmcI5a`L{wWy|En z2N1oYA&LP;o*fIh$yT+skr0RbgpqfUrC(0CY6Lmngav0I2eh2*&^nU^;Vc$o`sl$+ zF;X%GpOg5`v`<&_Tb{R51aU=#u?YyT7(!afW>9ggd)d0s0pY3+Xg4!nG{P?Kf@kry zhk98;=4MqLlLE&r*~9_}OhE(8)|tuLb|{3aG2G3)Oh4@7zpl3LfjHw}QJV-~;e91_ zWUpVaeo2G3ymwQ_RRn8!WESLDj2KD#LnYY{t8Eh`#M^^ac^=5o_8r}aw~vDPBJ_RR z7H%i+07vCTq(j>_@$+532wB*>7yyo!Oe1R&(~#H~{N>6Ho-cHA%dcMdj-`IbWG=jB zvAAg47kqv*6#!iZi`9N0Da1D&UwKu)(SE4t!#A79d|mRs{Yb6zVcN+XMQ2eIZq@FR(Wjh%M>$5bk*T zNhtTP(Qh5*4GU8Q2cLH+qRH-u-*@~>>g3byZKN4xPW&Z3ShL`OsE2yhmH5_|H5#-;Kq6c?$LtdfaAtzMtuY z+;j>-E~}oOE<2wgP;w8H4TDY!i<=EgObVdR2K@YD*07<5H4}7Z6em5ZT#bb}l^d4-$v)8;R?KrnngZBLDLgHwFd<78VvRE*=2^1>q}}S42WY zua#aCs}YmvkdPRVkQ$Sanv;-Pk&xPwkUEf%x{#8(k&^v2E~I2mq-6F~W z%t&v^L~qAJ@5Dmy%0lPCOzX)+>&-;t!$jlDK<&pw6U0Fi`Ib6PggQrsx>%bk=L18W zELW7QV32~YuZq8~W~Pr$xsQH>k3qYSVYjbQub)xBzwrRrWDsmJ9B48UXfhgP`p+2& zG93;!8w#};jItg`vhPcG?8|ZKD|G8G@#rt}94Pl3sQBl2{msn%o1Clj9cT$0=#3Z{ zju{w>ADBq^d&Uw51{3-_&RVtofZU4|?_jhI=Dnpln*n~xcrj_I3@d@vo9 zGU??s?xZzpqc&`#H26ws&`xF8O=H|oYclv7XEcTOq(*5?Cuq$kX)UK{ZKr8nW@$bD zq|LqNX`$l{O-jwt1kTZf&rwIu)5I;&#IMjMtU?>-bcq|#p-u!{p?ziQ&8Pj+@b@tNyx+j)vprwu8pr!^Xj*#*x2}xEds) zyQ=K}V~RV}o>V06Hxf5o`*%m_emY+`?Y}xorptY}eDh7bz1owiF@w5MI_{Qp8_&KkvKMKPx6>d zNBNf8-BI|O@4t#*@!yR>Q{07b?Or1r2Y`~uRlm!>gV4n z?l$8;DQ=gK4p1a+GFlAUQEI$8TC6kfsBHhgo#Mv6$r}=i?o)~3_r|W5VSx{o&JBIe zE+!8roxe*W$tR_Z#-qCn=qi;rwNus7=%XYM$o{VI=c86PTqRE~m4r%n2=9bVq09}6a zGwMh43@{-*e8z{K;{813ia^8y}#dy(&t!{nMk8fUnF+k*Uaxq96%=mMNGWmB$si?d* z!0mKyVdUwh8NL8ZZySqA+|o&vS%zDoL+4`3-sR+7YY>`sEv6TX&GSLw)r_(f)Ag*X z`lstT4fBfYc^#M2>ji^grkh2Ro7j+?3$eqF$EbRHZc%(I7b z$%S0#T{OT zh#lEpI4a_syBF$@RiyN@q$s-5qMhgE95npWaL=(K>LwU|5T;eb7d{7FxO>$>4oJ(E zQA52*@=7c@zWV0*h!LoQ7bNe-NN{3Z@$#H($j-&2nFd@sScy#{_QZ(rj(a$Z*mnFC z^42eB5v3qbN|9D$dBnFvgMtqi(Y~npqzE!YqJ%$VLge$w@rH*a`F_U6MC4P_$PCMB z{ftW)%ctfU9tIf(ynrw1V`blt_ICw%?ZNa4QFjYjC;TKSI@wWu%s~dHh+$}4NHHGT zBbj>ECauNvGC;b~#UtX9J9fmFObKwb*z;3{iKy8yb5Jde0$)_!L6rl;@_E2I(sJM~ zy_KJQfJMB6KK`zdzb1+~E|@rrRf?~K1_9#4LF)-g0Sjv0zi>&4C*EcZ;h!5;bYW-C zy3{cjIMYn<9H=D)Nes~_y-{{=bVx<0C>A{(R{nzRkeGWyBMGme6bW*`2NeX<%hMw` zIYW;aGy3Q#!Z4g`>qw`-=0^2yGnVw*1wzC7f>wuGp@{Se5H?3xzVRg^~Hj*6Rwp$TFRM*@f2S>q^)0 zGQHc8g^q{oDqpm60|dFn9>SZCB)c@4Bx#Fk9Y1qYzr#t5vn#8o&5_Xv5G%Z=<11$7 zN^RIV;mku`4zP1bO7=45V|t63`EkB{-UPD$#*1*ped4Ab5<~sLVmW5y=R92;+B(l5 z-9-5fdx}y4wcH@B{1@irtlsJq1~z2nnke>^8sR>=ezy-FK3^Ag_XW}qro~jCJ2aD_ zow?>|uWAi(DCAsMs(7Vq1)ANK>fF(tgG-gZ;o!7=zGLP?YMrv3;K>n~D`B9qU*CgV zCUmdv($%oNu*m6|D` zFn0NKR)(&PghRw;p!drXy0uD9rL@gTV(i4jlS502GVL!~s>8GO7rqjoIac!aZuMTq zZQLJYjEc;Uq|}$dBZE+nr+Wei*t2HJHwd)3*fgk$RInHn)V=3=-OX6(CKcp);(ubp zs_}?-W*XT2WGSzfmoLIp(e*}GFNsHQl6Te;> z{aB4Z**w5AaS`S5xJ~+^We6gr_%km3afeo^Wkh}AXVTZlUDoK9v6jU}r~Oy6u)5Z{ zKK%B{v^u#0K0}s1tFZnMfBSpY7I6@oVQ-!TPQHPcxC!6TgMHPbJ59?nThp4u4 z_C0UCx+=jgWU$9135#6sksKOw>D5pIo@|7`2u@<0ams*|x<(Z7u4K%~eB< z{2n>`m1+xEEZkM1Vh}goHz5nHB_u^HaP-<*{x7eqRO$I)W9L$dDNpCxfut(own+Ly z-%w&N?B4z_*3LSp?RH(X0fM``ySuv-hhoLuy-=jZ-QC??OL2FH;8qF+ifbuQiiVr^ z`}R3|@4N4rxijaTXMo8h8OR^Z{GMd3^`sg?0~UW8dHvGj2QO<{Y+)+?(@<_yzxa)w z>LL21ntIc|!SS+T0>4$!p<-OQkNRk!o{ss$zW$jh)wqWy09XIM%oMlP8VOfJjW=i^ z!xHpU!Q()=s?@ASOLZhwpZvga4lWqm!+dH9HPDn`Ronkb2Ax;HY(@q>y2Vbl978A) zp~^!GXyahzq4F{oOn8KThwq6bWdZj|Pe9v2NIU$3*SmN$xZcV~i7p8A-eu#)4e^JY z+6UM2twN56Rc12O(#s9Hm+d#)ZA$U1 zx?xrJ`9ps$X>PRIRo;3Y+<0rG2l%zwWkz`Vtzc9UP#Ezk#%o)%yt0NX(r6kNw71sV zJq%D2u!?4|SpMmRDCv$G5pi^@*=eh`g5$cn7a&ImKRKt7A!~D@<*Ju%&^I1A)L@tJ z!M-BYeWv+MqNiuhsODsN)RGm(n3ciBu(@JL-raDjL&I_QD;N{) zVRZ}?oM}G!basafo>p{DQ^Wf12;r9Wwyy1wQ|=#TaqQmWuZ+{WwcdvVdzP$OZroTP-6xB+M7`!qZn;ydUyi~0>8%}M zC*~RLyXJIXk%Wes2)MKVbgSBAt*q1Tp_%5OHQ{iw7eqp9j)5B#?CHeAkaRQrL88K7 z>>v!AUSC*11-{*Eo-dhyB&}*y?`7M1n9p>Yz%0tu!E^$iw=#Li#nGQJov2I`%;BuX z5C$4eEAU9EP1AZ?MSMOUPl}f?x2=cjnkn9r&L3{QJSqTQF;uV#DL7Uf$c#YD^jHng zdZtw6$9L9jSKQ|_I-<+r<4?L64PG4f`|{qctkkR~6d7L55zF;>C@6 znuOnSYECS+Vlco72=PN(I}m`wjJ)}@w|Ec-6*8>|aygIU!Uv4l)AM=|UEmd5YTdoV zBvgc=B6l*v(h+USZ^EwOlu|PNgBud^6Il%^bH?qWt!VXY7}FBC5_q6esRj!1U4uBF ziad7;k%wXhCEb~ViijkW1d2ipZt?L>mzRB|Rl0|NY(?&R zgv%Dc_A$I^H)3ozqQV!bBa@Y=K+W*T$m&3(19S!3Vzmei(MpJdQ03+_eQq@IWGox5+CEwii7-LtUt`^@O=F6qI3w{#0XTFi1;Xo zc&J#U1cc<26jZd-EVNX*^z;gRoMI9pT=L3H3c3surc?sf#Qd(fuL23=AYSck675oQ z!&(aCIx5p*gUyiGqI30KAS!|mC-+x zRoj;kJ{b3QB+Y85QnSBHtZ#(9Zi$$DSc#pg*za?VaDP=WqYjdfwYV zIDiZ!_WYOf=P&Ee@8a`c;-7yMpMRTwen+4GRGR?C%ZC^MA7b6iJ63QOWxL57r+>wQv7!{b?#u za{p)R5A3~L)#5*_KXc{UO@FUAbd3I9ao7%+tNdAUxa`Ku=!}mmb$qx!*__H?G3t_d z{F90{%MAg_R=)df{Yj)2e)7?QtT-~chssEFn+|6SrIq$sI-4QZAE#thP-n~ODxuC0 zWW{mo;GT%b@_WVc7Ub}I#o_z*&x(WG$M?7OCyy`TxAiCYkM$?d@-OQT`Rm@_)}O^1 z6NvTa@z>?<|AzG^)0F80!VMH2bP@EBI3W%tMhx5FT|z9+dgZr-!-=E;1YjA}SPV;a z;wvT|j3`B91%fCVGDWUqnp6pEg|CUPzDbrQF`51-#d&EE2+p#a#5~Bf@~+y?`Q}Ff zi}EUvF)T}#Da$(3{_C+-zTR0Cb#ADvoHShIq{3moAv6<1X53^EeP#%reU+Ob8n7}| zSDuKWEdLz@rOin1G%V*FOdO8mq2a7f0yFv+G1b(oGRYwYWmhx1R$d4=WYtw8mSl0& zBh}WJwJPk@PlMBsay>LU_L6jUJE&6?RAVetR*AlxwRJPvQ^&uIXEDW%COg!BJPQ8b zTyb1Yvb6n9MQaX^p~EQ5XURrkxN=MVxRYqYcs`586!uvo;coXptW%p6LSB-`QZz_) zTY^ytmd2HE3ignbA@;jz^PE8WDX+=CG>-A0Ch9(KA7FH3?u1M;fhtM9gaCTsd43I^ z6<<~10cmUmdVKbM;r3kC`JOAkb@cR%K6f-wFRx*(`>kdML?%n%jzhZ?>OZGVh_7p!dhK7rwX)U*w|10;Abx^MySNatPZ z!l!=4R1a^eDMIhoPLw66^W1j$3ivGBOw{?-y;9m3_P$M8YT%p_Rb*!q_^y4B_xrm* zHcfwvp`cfTFse+$^3Va9Z1Y*@ToM{84D6s^!Hc{XwqF-2cOhL)H5# zr4XfzK~7;(Bl{|~Qn`#tXJS&j^D3<&wv5F_VM>4fD!qN$N);_A(3r@KBIbw|I+p{( z_~9KzhhRC|&Kvv?0?o`mlyZ*u*V7hsnwi6fiH zCANY;VPbYugr^9k&%hD(S&80|r+8u5`W2y@dhCT_iO*?;G=5;v#@Ru^m71M12gYJB z+jb$H=rKEDva&gxCN!9$0u#YLG#|WM@oZ}&>{iX3ij`U-Q+;5b&!kKh)?A{zoTfx5 zoft)Bs&~;$uk%@NInJE7=Ko{G(GaOpYmPs)Hd;)FE~Xm@pcDQKg+c*RFaV2OrELWF=c2*FhS4{z?L#7L zlBvYY`&{^3%`J|;4#Jy9y`F&l%?nQ$j==91snp+S*=1)QXM8Z+fhVE}K3m9H56Rj9 zq(}~%G6TIwbDh5D{qq1=ER6;++;-$6T9E`KL(+cAVF498c1=g+!jTqZw$^M(l%HU)Iz0DL7Ng0LpPHPwp8LZ9NLF_A#o+ ziCIUa(1J@6`lP##Md^NQEFlR7Fg-@~d?d>^ax*&mVCiY~t_FP49hyp^>tl;v9*L%m z<&T94)A}2bH{U|?og9j4=fk3Px)J6p0~KobF~6&{C$2$R&@`$=b>EXO);OA` zac5r$pz>e)MQVN2&kYH5Ex3l>lc3k{d$I}y+{GLjoMz0wkXB^OZzMwYGe!C~6y%#bd_Nc!)^os;`OF*Hz0Gw2u-@$Qo&d7yX zo8En%x}}nU4pHL+G1h&9-VL7#{LD1BgVI@K({)rY)>#ev4TQ=r%BJ#G0yV>V8|;aE=AFNx23nCQpGz~6W%^N@V`9V z%Jp7f&-xzw^gaLx0Aml4{2p}P=KTs{FY?uO^`_Jf4zmoj{sBOo^Tz=|d2A#0QJ`e@BPMMlVnaTo zE#W2H4*)`bqkb633yRt5!1jS6@fSdH&L3M1N<$Y4M=cB|(Yde;P_F~fZw~`Bgu*QV zL;zlD3}M=~VaIqTrTg9}4PooB;jmbt1Z$y~7*JR)5m;&wn5F=zxiIJPFoQLB7kLWN z1{jF491NEjiI*7(cj+G04uh1am)#N$OW||(Nlt?%bcPJmsg#b6+Q6R0;2DVz75G z`Cccvl_b_Q3cxVJ);GbUL?!XqVPs^9J@-qQ&lX||)6$|8Rfk}>$rjw-+z_3fyt$OvU zDf3!Egu$KnbyZT7MAqR^Dq>PL$6n#9-BkHw9+~abW(5p~`+Oc63|~O5E{|c-ecE6a zP}HK}@oOmxaF#XTSkGiKzJgB61b$iT12Ubx#W79jQUkT z>{?{pUBoPIOzKhid6b&0LfY&^0R>^!#hNI6R`xrX40s_4n&EgX`&>@Jbp4Yw)uF@+ zO<2mwoZg8t9Hv5i{k+tPcniXc4CyQfeGF4O5evJrEr!w|g|g$wL@)!|^>xLj{cwfOn7Q%N!dC_>x+WR6fY(fgTy}ZklVUaBDzvJ~tR}NRDI^wk zB>PIxAqeJBA*SFfq!bDQX@EtMc7+=RIh$_wr* z`V}yX-5`j^f(UWhE1#(WL<5%?4378TWKUee|D|QN`N+ZTzEtk^co0TpD3KT1z zvf@i7CCeUaEA-R7go>*5d2R2jjV9|>1v72AbAsKHABj?onsR_prB~jSwst~Wm9;Rg zMKhg642snjpGBXMB!~?fEY|CSLlQ}2^1gOd*PfKurotO!f-?dt0a;A>ZiJCtEf}H4 z`I?LcKfSZctFt#Mi@2(?bX^L-)$su0ng^tMRI{QduXuN)gx+XzvT9xu#o8C7tp2PL zB1UO!pKPrT2`%p|LgFmli4xLvbeYpn!00q+AK~$;W*qlM&7~ZRdquBpz@2V>071UP zTDbEXfY+f(peDYM5qQ$n^lQD?v?@_rt=vp7FDiMvYDn8U_t5Uq%v8Y~pHzdcsVJB>Bt{w2D!^3F zcNs^TlUKN&~3)}j+42P;#`%onP;8_BZHiksbhURSo?)Zm`@%u>~hskpX zsoQ;tHUbof22qs<6$T>`{3fany!67`ux-x-%3&`bZ!nFvt2 zaOPwKw9$+`{ zOb`@_3-nGo8rSx`JO@VZ_B`=37@bOG0SYv$%mI|_2TERk;3S1S`yBp&N<^VM-n=6` z6r!Yy3oYh6w$VI(-n?8KCcP0f>;U30%>wN+`uqMROcmvfLTDUOcna2Kt!HTCbkNu7 znYao7L_>uX82CzJRrw)@SZi&$e)2$y$IS#{ZZrS5`^@U>X z1!G>@6vB9{9d<+h7yw7zj1_2x?;If20E8J`f%>I2B?Yk)IPLGfF)?z1mve+3L!iQY zJz!;F{u9H!Zh;!K0Btr;hPvPrw}9ifO7slN+`kH={)L?MHS_trstY_B2nw4OMx7NS z5`<{*jIMKz&b4jz9vldqCUw?1?;#}tqHlvFFo3d`uCf?FP7qM_!)ISP8l785gLDmu z9wIhKWLql`E$!_yp7N9if`z9h#>gU~h`a> zZ4!=fJNy*u-w z7>jv3Gj-5wdHu?!z_?!_k_|v53?M217-s`~cEkiVBM7`PbcIt9X2an5>e+Lnk&cHh z7}yFm_8x4a(g`cM>a)2@bdHW?w2Ftejcv4t@M=TeWwoAkr_pIc?|Bc-byL?LQAQ2@ zjq{GG%drfGvuWHMb3Wi(9^l?^&c5zIIBe@0^#qn5;WN#yKmQ@{@U7#anqB#B!v%(@ z^M<|kh9udtIRJ^de~HKmHkxf2Dt|BR85)xfgIVQEsxihY>bDTk(qi2Pd*GRV{+gfP z42;p76308mejsAr3GRT3k*5_dv5TdrRu|NkTfKV1t%}a*>nU^V`g#oT`5C}?q4#-y zIR0qde<^p+Nt^;h|(UxcTM29%VWxb`&=EQBd-+XbYoDT(?bpV(x5Qk7Tk5EHWCW z407y#$|na&qRfr@K2Lpoe*HAk_hOvvdtVegl}`d{Dwz5x5}Y&rP+u@Lr99m8GJcUT zS%EU;Co+zL2S)!fn*H%nA7u;x5ip7e17XobKFpa)g`(i2J<+?ENk(8YGx^?OP>%-V z2|IT)s29JAq`>wjnZTf$i2t8b(H7M*lbG}xaf&HiVGm2YV`-Fv`c{HzdyCaba?UCf zY4$oPnvxps<3CSyN}M)(!-#b*3_Cr}zlv7hmd=!#4n=F7w(V^7*v@A^Me}m%wd$c$ zgHMys*Bg_Xs%1L3c4fNrL?PlIQvDm-1&N<{#zc3`S|2Mw<**xxRt}$2ZC<0Dw%JXL zwozWE`(<&Mjt%l=$mSc~zdHcse7rEara34New6ykN^rJ27R!J7HO}b0-o&CA%xZp* z$KA%vpHwv1H@jvNRDw?Q-oI1v{so>x0tz0&_qd>maFDnF2jMW~5pt)hb}3LM#gYD` zqLrj=Buo3VqiXiha&xOa5fkxa*%-irPf?@XWv7)M?k%E0;w}6=2xYwx6J-fk?r$AyBiYd1y zGmK6G^8;)#Miy{WB~KMr`i@>zfT4(1H8yv5D&PVkRgM$BtZ|MN^I2{_{vuFALhJs4?lWDLvQT$i{#3naD>NulRd}3?bwU?+0$Gas=U!Y=p$UZLTZju40na!2-=7x8r=MN14uZW~iw!C38nB`wMnpuv)+pSHn8?1suKc7lLl>B0#TWN+ zwRs6^F0|y{?^%d<5$`Hg_Sk$-Pxr+JIBiHyyEo+Y zdTupJ@ey_F+@+4S$Jh~m3FijpMS5q8;{?>#6-bx4;P)5MGFsMX=9Po@ z@VaV@6b;d^wV&_cSx)w+-i8-{9lUVmLMWd_B1AF0l@XB2nmD!BV%;H7f1idW2W z(`G#tmq?Uk-`VAuO}L}JUgG+ zKCn?5H#+J_N*i5zJ`rca4c!cY$Ak49|*-;8*3! zZqG4nU&H7ZYFUSM$Hl2fC@yV#TUAO+DQcLJP*Ee&j`;H0DfL?ze62r9?zaLtXN6+n zr)6}fBF4KQ8SbTv;SXd~&8K}d#H0l$a_jfb`)pZ+w|2L(b=WyZh;=TKy$9`olJSI5?;%B2Y#^ zRi+6;5uh{t-J> zk50|}+ocL|SbMcFA+2J(x|fIw-6DXI4;+i zlvU~W3u!mnyR#deBU-a8CAVbL2|b%BhJ9tiSvo6am#!N3yy*n%#KqDHxuwnc@2#&~ z;T-bKLY*liFsBT!rwI@|fMlE+@mf{gKiN4sTG5`a6*vEE{CQt%zB`$*J9p4fZuI)S zGuC=;EpL+-C9=^e()vO#A6sh+vNL^+!4MODV>d5~1uL@QIz)5BA;|V_Yf^vBnXkcC zCC(aMIDbrIrFGiq+$4{Ay?)!HbtA3bHu*9AM=!8z%WTG6)?ovC(}TrA{ksbt4dtZ# z2>)qWwEYNC+JNC<7YH`NW7@*xL<(NSeq_@9x;i8Ftc~M}bjF%u!}JAB_9I&PrQa&H z&e6#)5tw)tN9ZTBPb>l-FHt$2;GT$9o-%lPjxU|RJg$MShVfdcZWEj|h_R3i)>@7R zToW}7i79`zcHoAiB`cxq;X14d5caxy=$;Xu+_rz@KLGg^`Q|g((2X02F}vP5SmMIi zj3h}mB#by_L2Gt2l>fYv;Zr8yr%oUK@}@qk!eDnuUT{YLKK=vE^qyqS>Y!6Nw|fkV z?ZsEGQ3bLq^HQZeo)miiU_90ExJ3d!n{r{j)*Iib4NK;!thrR-o^L-Z~v(W9vvE(Y5Frks3oe9I*6XxRlOzp9(u<_U6iZeAFq)qt(%F z@p&^{hL~$-iQO)`O4jO4x@#-6+R<56k5WgzVX_2X%9uMtoN4Z0J;P}uTy{H5Blcu$*9 zW%hiy)LZ`TTe`aSYpjHE+j%=gJUq$f6}v0!8J*HIHZ3Y* zp)2MQD@^p|;$Wuzqp|6WzxS7hAJ;QoMCaiS;IJVC&)Z7!zKwBlul4kutKqt<-Id+! zgNlzmAKFltuB$(Fe|_$H?caAZgF@aY$G*tCtrkMmzk@4#E=pAL9d8$z|86C~^(UkI z^(i(3A@9)uy0c3N*-atb1jWhC6j2j_bj+ibA{?4O06w_8_(`-M>LEY_0eC|WWiA9n zk*Ckp1wuK-K$G-$=>lJ_`(jR_KFkF%1tQP6rj^c97OQ26?cnW9^xJyp#E&OGyY|mS zR_yE)QsBLC1EFdjnDE`EI- z^+7iflOggIM{v3Tkk%IwC?WwfjEIm5?l1Z(h~agZriqBwK7Xl*d#Xi$6_5eY>anPe!puz=wcu3-_G@sBh@ zlJqwx@B*=jLcr))E=iK+C;}Eqiuq*G+$ibNSKS1|^8~VZsl|pjB>RCOWDJoy1byTT zQV(CEUY8F0Z1;iP`ju!RJqSXRPXZj`omI6z_$95WoyE{hl#3VS3D z6)F?FHV7aIMW}>!zLCvb8-52)1u#*{0q4eGdE|VSf*2F!{ItfD4ds9s5+Ne;{vzYn zg5>Y3sN5-uToH*mMer%H@DFxqt0+so)q{NI>BMnzQiq9xC^HYDGPOU`is)xxVU*E* zDrdhZH0Po~O@$IsC!)6}bEPcT)62~ag)w)P7F#l^a*3 zh$athXqK+eNraY~X}(vEUp?{8J19O2E0HoUWIlH=D7ZRR!8t2UkOGP@Gvi1w(<6G) z$~>dn74aQYW(ZU+Rw7o7WLcwL1^g9tlU_VgJ5)wP(BmWIG8NJ341sZDIDJmm*-^?F z*dM4h28)pb>p1wKn*r=3BgOf7P%3ax=qN(9b}T%#U)ofD_6dH@H%bAepLIfN5jYkS z8cLcdL4yN&g)q))2wb571r*9|EUDxG@`Su|il9nMFi8s~2`VXxDueL77!|Hu3D+lx z+$EL8Yo)CPOH-1He2%hnQlU^ZXpD}DRFAMLL?+}rfAdz~2Q4X(2zYF|R>uA*;uS&A5pay5Z1A(pn0x22GzT>Et8wOBkWZ)-^T@)c*5FZW z1j!LRBZ(^F5=a#YQe}zsE|ulY)5rpl;xpx-ZIe)*Ak66%wC)vEv&=zW2oF0_1!(p9 z0o>0~T5nE>zEnxS_9~Y0eXV_>j;cubYhqR*tK5Z%8f^BeL?+Af2QJr%8beXJu>7QP z(DKUsr1d%uA}#UNlj56Yr4B-wpa;^tn z*-_F+y2$XJuB>dTZ17RgTM#1G<^nTsze4Po|B`G}uAJAnOt3^hy_4LBy5V;>eVF~q zpJQcsz+pOYq2oZ7)rhmcV4i;dvScAYo%im+tflfm0TuRcjQ|xnh07rFJ18oK65*l( zDo*k&8iY!9a?ZVyLa&1GqyisGEt*Mk%p1~|Pg(%1LKRnhyOSZ+k(AdxCGPils(Omw z=B2e43ay{tXw{Ov865ZD!6e%u`Cz{Uwwp^|Ue-#J{5U;H8BF0AoD4rGz2W*wLlN)& z!_wOPjLVPZiZ>P6(}hYqbnoWn$q5Tq#)v$260)(g#cYyxeY{CRvkv# zex^4;P)iHEX*x5t!@TDR@0M4&Sal9rHX#3oJT8NnpENu|7dJ?NE5573as5Y2nvr3l z;0aW6W`GvKLqB14k=r1p28rIHx)%929E#2e&Dx;^m140fTpBJaq>(q}9So|d1V&C} z8G(}K^8=daw319;KC-IUJnN>A!05(J*|_3Rn-?3hYHJN<)R?6jx9BTKspflpV8n})HsHy*rMgLJ#D(f8;WlOv$7pu_9!&2r(o18`^YPy3L?im zpFnQsn%*k(8)uQy7@%byoi|q+2y6(*YzWT2pf%ssukLc;xiX0Hh+mcE7_- zT2*b%dSVmIUG3@D@`9yvk$qR(ron+B7;C#Mx?a<=a5xe{`#3)Psly;;o!$s{ zT6v-K(EwCcs8V_Q@nMxvD?ZSoPmd|6%xrc!1YEOiYJEUNhXB?bG)td}*_bjGg1jkK zo*1@icBPbIM|4ku-yd3@(VJ{$!Osb#Qx^MpScTez4RkeUXNLX!-xx(|C&gei}qU zAWkJBUOc#%jwFjEveG)P%_TBAYkTrKXvoPZ$ym4d;M$->buGPdWKLJHBhsXBZDbB( zH#6%5VBB{naMG+w9S?k^F6hvje%euf+Sz*AHG0~;a@uon+IxH22Y1$wcQ!zGHpq82 zBzrcjeKul!HtKmcmX0DDayC)!c&gMeIeIo-9x1XY2D)|Z_Cy6Q5V8LvsvSY@>CCRf z?uwZKpRKeynuWAqO!4<(*DE|Wc1eHYw>a;AcmB1P)hng5fa3h9x+_()vu;SNd(CO< z)(HmNDg9dHom<<4K_f>^kGsvCd%k=LML1I-*w_FI%DMGy%w&+nl|BVEDd5-WsQWr1s<-M#+K+X3b`3*-0A0OE| zGIB&Gn0eO>x=nn9aTmMIl`hc^9pQW~9#^_f;5cKjFA@7%hq=4f*<4P^1Ya9CqrX3+ zabv-%=v<0HYK0NlD6a(|wArwiu=5G{W40^c_Rji!Kvfr*Kwel0LtjUSanSQJ6j zkwgMDl#fA&a;AWeGZpbwf@Qt{8zvcN4XA_7=ZY=BNh$Q%E&s@ki$;qaRfAT0 zNcOmxCl{xvn}K2HQ}pLF9)%1cU81>ozkCgv=l9(PRwIt zAUWv~&#+um>I*$eBcXL~G%9!Ff&`p7i);m1tMYC=1+|fEJNnldH`(o}c8`8hjateX zI|K>G*d>@YVR|FtFCJZJw|Tnna~cTW^wA1U?l6Nt%@iw;>xv(HAesA+D_jDV>xyob zcwcMSD_DP;lP;nu0PBjQsWTp6V!^&qYmeYoEra33saE~fX#YN|5H4fwLv|#|hmW~< z8U)Kd2GY3FGHFJk3VG#Lr1HI`pOcmpf6hCMEhULb$~y(SjW?fP%=9)v1*}yJ zx#Yi==hv5a^xqh6O-m}o5P72uJ#=`6>6v^Il^0q9xQK zEG`l{u+}9nCp#%JLZZt2VMKdkM73^oh-e9Jso2WczQ4)4`?-w2)RRrWfE(WHQ@Z*X zaOqQa_!yuD*LMip-xp<8fXyFVBA8XOSTe(TR;6i+Xqxk~$K%?iMQ$EHnepZ3cJq3Pdm41~8hi$cG0y!U_h>Xy`#XTm0|`5{8vo9L7KTjsR%4q`x}OZ zQpF4|r;{7TrOJP#qD$+oe_(;Fl|PHyOO7yc)5Wf`=qL>c678+jQAh?Iz+GW8GJow> z6~0|O{l&iB9}JJp=6J{PZCFYVw7!p9t6OLZDt^K*Tt)t2-B(@Dk>Mh;d^8+NI zU8sMgq9b^1Cz;!T($hiLqFN>&nz|PXLvXV{P(?FVGf+mAx4%Q?AfdW5ilk0%r-}y) zp0raZG$ci$G1kptSwu)0l~CyOfpyIjRDP$T)sb2(Lm*c~O6$Ns$)6#SAdE2|cnjPX|-lr}r6SpGj1ddrxz8uLV0c??el;b?j&RI5#fNV3oA2 z6_>Dn+8~Qz`-k;M_&l)}`cWn1k|`t>{Hd+KIIb6wxtn7MRhYz<$CLmmma`O&n4@~0 zVThHZbvk)^h%!cmYl8L=SsA~2tpU86k{UX{enSA0`BTj<%~ zLT0Xxyh7qaApVnzo~hs)@1{Z`aJf9y<(d|8<`GI<%|PKC)XmpsDs%Z1Mqrbh6i#H{ z&M89jcPhG1HS>c3LajSXQep+mR9Iw9nH17Unig?HNx10-J?BK{>6 zZ4Q53IE-VCf!d1=L(mT38R!TpzZP@7uG}^H|5ny<(TNzrv(3}UGle=A(G(2fItyTqHRE^R4bS>BJ$r-(To#3=};&S)M1zX zfk=9LgUk~jWbw^LUzKvg5TraOgayeAOC^j8eO4YO# zS5wxEFC9+_BgjspDSM@xj<2Z-MYaKn3v6Jp&}2+N{h z6pe7N|=_bG+L^)dziGFs+a5Dwfw{SQ@7HHY?xTgsH_X8K`_aQ zn=(7)jm_;u<6=6>fyXAIt@)-j7^f5?3^>aKvHr9+gp0D6W7n*W;H~6a$(Q~hVE#Oz z(b|~a!}2fIALjM>}c+OC{)Irk-2zverRJyiW=aTX@aBv=4Nx;>TL%g z6f;sER$Ke1DBHV~nvH#~wvGT)7JToBF&=@o&XpcE&!&H~{l4- zt0Q<=4by7=hG$eoAoLN6`%5Q|2)Ld^mcu&!iE&2%ll8|U_S>5|0S~()NSDYA*?3sK)rEIm`XF1vIuNrT zx)+w!nleTQXAKw588)?qWuH;AV^X`9E4`_9pP`A$?OMi&Ff%)xHKk+PT8uk;vGzY% ze?FgC>U0OU*lbHN8A`?&mEJHPg_86u2Y+%v(R(utxMcSXLZ+ej!b@*$X5sp0>(7b0 zP4>j={6pY8hlXZi=W@M2Z>19e-6a>I~VINJW_J-(p0CI)S#Nnf{S|3 zdii^=>%RM4cWr^e{QWR&m;Y@2IqkwVRg)%cH;q0!BOm~Ysm%x0+EU7utdF&ywuC^% zn%L&xcdx-tYSv$+HFfW^1qe=Cu(_qbfBd3QZ^tAvA2#M`hRgjwT7O=Aag8KG2yWY= zb*7>5`w&JsVuMg(7d`tV^ms~yRV^)jpXOKbz~LOhl<$*ZO8(3GbKUdZ|K)Mhr^rdc zge|{jj+BTxpY##B_eXqy$R0KOf3*IX{K^_M$2DxX!k2MH(sqQ!??wpch<1%#5u_%X zi@!~cPxstFJKG)QfaBZ{i~Tq2&s2g>px2IsZo4^d$I!9rkI$e#)}I%#yCHV)kCeWr z&%=kRApK~q+CkigLRdEMq=g3h5|8-?KYZSNA199_qFEQXB-#)z8W^sIO-_+|qzP7||w5nuxVG@&!7Lm+QlCBhyex)QkC?dO{ zB)=^p2UAkO6;q&5QQ{R-l2K976;n|acWpwm?Lo6Y1&@T~tszoyFOlIIBNy|It0#{0 z%cE6u=;MAh850a)%%@^1FJ`KzVs0&F?xkWG{e}x?O7sS^QuAt;@Cxm23>dAEhF~!b(Sl9r?9Cf0 zH8egH@7b#3|0Kt)rxtE45$>fH87&c+p%z`S5Kg87n43LAgqs?L;$UhCxKar;8cDoT z$kI-Vu2hPRMw+iwT8u_Uwp2!y=9PBoD`Og2Ysl@UP;5o~#^0VdzqZ)U3w)LL$)sj5 zhEb40Q)(?$>ZMU0EmfYOQCTTf>9iDzreYKu;!gbbJVK=gSEhzWtBzNuPDZOiSEj*6 ztI1cUDMqU$Tc)L2ruksWb4kM(Zh>zWBH&-l#EGcE5~bt+O(nfdFP~Pw+=`*RM6|Wc zpqJKgw9IgZ)@Y^7=<R@j;pK1+B?#nF*NIbj3>5b6=MY@lEc8E?v1f8=VDTxrG>= zrEIxna+$t%xs@@UwRO3*Go6iRxs5-aZFsqDJe^(ofgWCY*3rmOEuBMaxdS*-6Zn@I z3jbfQNlN2Sl*SEzrjg3HmCCr2#-xYNY>?h!l)(~W9hzpa0x?)Y3`Bp;7=zUqgENT1 zXNleqGK=&9OZ4GO^hs+BDH}|wTYPC>X|yM$Mj8jlx`sykMkmH5CMKt5CMPGSrl+PskbwY@f02;? z1x7-Cn44dihs@IA{NmEW(lTTqASGm$S5{Y6*H+io);_O({=5tU64%y$Q;1)_Z2Zk3 z{-F@JwznZ1;_mL=-roLSbF{y6cd+(+u=sc|eY5vz^NTxZQG9fUX<(dgu$ytXgmbz= zdc8vbsQT^qcJE)K5qIMmcVjg-Lp`^{Q%_T~&!D;I>A9}9JVKmJb^G9k!{>qH+s)(ed&g&o$EQcf z$G_+3pXUg24*v|~_LINR$kVgaKXdl?IX^r5gGhe=>s)^S{(JtM9}sHt4>)=C;}1D` z1v%H(kol(rAt`^KpFe-z{y7kw5^^9QuzSz4(_Is>^);+vZf;$E`kIx`!I8=E91EHMUkdN?fCTTJB}WpSNhb^^?q1_yd$bu z8Jzy0D44v+U2&o0_Cz8^9Mj!sDKd^I2??Z$0SN^>z+i-$IqtVeSYD_S2^p3uwS;8( zez;_+nen+O*rfZ}80gRP2iXFx9gwg{<#;Kk67>BZ4rAq7Xa?m<)?kVsIHV$19q(Z& zRSeB?UqX*kJ%Dx%=iHvL8bSoq$PKy zvW9p${-`z)OCGZ{5g$c}Ikr}H;wV|B(C0+F8oaol(Yj)w6*-0_S(`@V>|N4?pSkAz zY5ppvHva{<0sIL2WMLVJiVTF#pRKO4i^KI1R2#ugFpy{`%gCWmhfS=$sG&(g`kr=W z@A!R6lJW#DADZy&qr^25PE9;x{&;Z|vI*cvoV1b#7wy7e%)y8)kyB~RBOgnBiU4#K zS7zXX*HtY^C9!R{;1J8LD%V)&RaEm#Ol>2*D(7+h*BM*hg|2sVEKxY($kgCP{c=;9 z3K1d|u8x{`Mcb*HPSo(o*kFv-FR6{w-_}wOwLFn{A!4iOVWd>(FVHW-*M}1HB0O!q z@3xy8HI=18>v=EY&J#a~J#!K}OQ?LDSDjIr+f7-RWV&<=RdLuKpLOqOe7edki;_)P zqaR4gMDoUd8O(9HKoK^4ZpX5yZClW()_bJ!694j}$(4`sT}?o}VnreK_X)_=(5hfx z$HXsm?BW|u?c@u~b~el%bW@IIUl@FYQLBj)oNd@U}0CtzOSV_j<%Na zPF^s!Wc!7A>?u!#Kb7px`_geqZ^k^nVtzMBbPyg66J)sSI6g$&SsMYCKq>shV$|Xdr zZoNI|mtAU_$8=4X>Bd>(T3GMY^ zFDXfD9~oX9D%|%Se4M3%3>K6;iQxiyl%b_474(F}ZDDFytUQd({oh^HegCet7VZO4 zbrT%JG0C)PfI~XOrzD%?gtVq1E9piP6>TwWkOUe_-mH@}-CzGn{{-|j9QhrpNSsN% z4U7`fG;=WpTzM0TgkqY{QGFy5lmbj+nk1kfD%?`ub6qK4Foo2e z^bG0;c*Vi3KQ-Fjbgqahad=oU)w{bwdyi9f9eJ4oJNHU1)MC}MMJeyN^mOLLL+)0S zDd}CgqPtv6?q4+;1xT8Bu~)UcwjDtT-N5OT`U6O^#37Ad2Z?Ix0=T2ZAuELj z)6In8DWeYL5FAh#!D$L;-29-08jhg(^3cHTgOagO8eBsM}5dP8&GJjIWV1C zKXCh+FhMBhQ(wP9sK$`6=$9xIQ76B3XdE_|#S0?~GM+JkaF{}ZY4Z^3{HYR5P(H@$ zcv;&&q=rB?k)f;$%D;izSC}w`^3ehM0vRiU<3mtdb)WY@{XGoyrvCVN7(nb$ z1VbHA^AX|^Ze3ag!!1zk&OM?OGr0lKZD@&m3{)^7h#}y2KLuTVK8+5=tW`b0V~w7nP~;N0suWh}w6Kotj# zLCg={KsnZh&L1Z!o3T(@Gujp3W#M&64oxS;gyhiYkL^ed%_VgU=b&_J@Ze4i*E%GK zlJ9CaM11J21v)@gajI*QnMLC#xkE;J9|B*L>eKqLbM56ODhn~D6Y^H{S$`e2^-iSi z(u$T*<>=n|eqKJ~lpH?;_)gZ1Rw~hvl$>*3@Y8*vK9&Ef+ULDOkN>hBnsqh&#=jPx z{K^R0dwn`45!rNLmqzyv&MEIV+?U9gaqeA^2N8E|-1Zi(BE9oIZ<-%2JBrD;p z0c~@hVs*dbA-v)|tm!i5>hV76#TgIVnqo;^0@fX3*+*##^n*#Da#%YB<1VpVTLpDb z)i@h9I)ckgs6u;SaAkC8>34( zsYuw2j(TdW7|UW=QuhH)p*#?^oT@dzpv+KWIlMA7VBevG4@dkP?Qm>?u za0e}P$`C`kJ}|;P6HjWZz%$p4&|lD@a?Ep}G-(b&nm!yHVHeQIUnh5PrgqHwZXqc4 z$(m+gsh!u>Ae9#jNhSc#Y0y2CISjQYyqi<4sb@uNgzgxi{l(+$)%-rpxvT}6^a$o6 z#kr!ysPM(<>@2wXHS)WG;nFCmC6pBvhvAr()jSLw7q$_ODGUn-_*`1RTBT7>NPl;JQln>_$!OmaFXQj;s`kPKs$4QACIHU*C*Vw9EM532*(JOLb-88BalL| zNK4T<$3@fd?t=;-yFv2q7IXAssOx9ppiK-{$zEk`=Imrbt;pNbHMcQH=e^L693z zBVk+4VO|#!mtPhq_*Nj7ABo6Z7}btqHsMuQo-Kg;^;Lxq+NF*>MNs)6Djr3$Tsf3~ ztb;&&cr8^Ky|*`b{N(WthqWllFxwiI^8FCisaXCcb-CGhzrNh>GGWa4>G#C=4$k-!+|*nH;O&;5b}83sc;IeU3rH!>!lsp^GA8%f1)UY< za#)p&s8u4AA>F0HKq({WaT^Oa+gYCSxC{W`rQGlYRvX7e3ECvy4pj2iTwTLL+}$_| z({cMbu}Q{LPr^m9E>SoYR0s-;8lbBb z_Y8EGH?6^Mv$&%)DQ=0O@B`do!YZyy#mv=9_Ei?Q7;90+jboPFv)B}`6lHFeMd%m&NaC8 zF?cjuTNE0Zws&cjEJXHqV0VIbh2&4Bg2#Im!S~)#RTSa2FfoA#fE4-lW!F~r0w_C6 zB|9}aO7cblE$`(yWf2XgLrRh+kJw%CTMnd2_LI|t)MoPR7YKMH-75aBEbvb7Q)LlSw?op??Y)9{i~_>$6O9rNsxep7cL$c^TFbSjV5 zO#g9uuc(rTaV~Xr0^*t(a=_we1{Wi=cTsuO@i^I7l~iOoRce}G%T?W9bk#`KT+lVj zM*-q42RJ8keEh~1s>U2A#`v}d@q`O4%bQK-{SQ2`dS0jQIN@E(z=MckeB)-$yRt9C zr*VY~(|EdV<2#okv3}Fd1h2r0^g(;gL4P^qyor&3e#mWasB9Kr{A8X4a~1-BCfqd< z;`SVJH8JY+9C|kKH~uWFXkr}i%v!b_C0rb&Xw!w~qR^zG7G>aq^q({W>s%`91u^D@ z28=vKxW)PNOi-Rh9~omh>jKtptrOUV5N#uFhQ+7lg&EkT(fS4QY6ng2{5URaC0cxQ zP|T2$#h3L(5&2x<&qXZdd~O1LsqS2%?p#P~ciH$}@`**u>)bJeWwz~=51M7=jO8EG zSO63n{vk&p)7g7uk7wea`bB^iyk6rzbX-Q5Dkxr1~ zdpGS*%yv#}fG2i@rw#(APP(T;!qAE+UyLjS&`JLk4GmG)4xH;2T+j}j69r;^?-U6Q zkzk3U*%3=c?^*f%;eoQ$T|*XT;K-xu`{p+qBapO1qN^VaBtSdTXt%|!Sa^06uzESZN5$cxgl+lq%I zOqNr^rWq8XAcWxYsC&*$XpWhHQ{!dQflZ4)06x46-3B%oK?{~OK@S_W`mEA&e}GgU zjD=&t=fs^l=nQj_@B&}mi_m_yIuiMf(7oi6HT``a@Zw*&UYmE}zky|Mb<&M0&?Fn# ztR@moMEHO^EYk%)qMQua`pa%`V5}C<8J(v zpxq>pccZ&-bmyCAQ4_ga{LRYWX@+45)hIrSp-xM#S0IjEb7$D5Y|R-xWm9_X#W zJsi* zC~CYB3S_L?B2b-h&iRaTvX<0u$F z+Xky3QNnc>@iH7kH7FntFURj?lnz?tqAXo*;9r~61NHi#GgfC~s%obSNtY&QYQ*EQ%y7A3S0#78#N$P(AuNGSet;hCTCPWfSs zOr)*QL~*IueECdnvtbILz-_jbWxuME8EgKzK5<5GcfXPaq|;mdRcfS*5sD2HfoEZ# zJw}>d)i9d!E|m|c?VC{94}_XYAm%7NlAeh8i>NDBFj6jTK`BhAd$4ay$}&ymkCiiG z=2*RMZN2&}bwgAV5kpBB3&4ayp(N|%y$B(eUnQ|v@WIe8k(;#C0EKMte(hDafDZ(Y zJ>cr02C1EV{U1^JRu$%CB62yf9MZ?ys&`DQz!a}uDzcnHwsfej2r}<1FGz9G~U3rt9Ya~b$I$dEDaNRd4>qT%T(P3k(e%8ur* zyjN*5Y>`GO{(gIhS*862AE}>7@eGu?lu7pw`1+(pF&a!ZTs|RGOh_K!#cx*ED#zCC(+r6Ht&sgLa(4>1v;#+tU629GK`WqTROD7nibLO7LKYEkY|7FrL%+26i$v?44=}>4-O7O7< z&C@1~QV_4>i@(~jI&9;z?M!*C`(o`gyy@D>tNYs`vWra{%YFE=<1xEc?9$oR>zH>p zSc$W}*-Zo`;5JBmt+nG3($24W@)v0DY8Uq;-40xrejrACf3w`aI|03T7Qb6I=7?R$ z?y(-yyXGL#3X{JuUnO|#+7Ok5eFRP?@wZmDeu9uY-~Hiz;DbtP*K;yyRK4t>ubURJ zz;k_MFrP6g*7}%ajBONe)YjjPSLg9)n3z$zW2*1mdJ2RvN!e8ZM$OfcUlI;!!+a(z zsXxYKPVS;I5sqmkaV9s4SrQk!3^-O-C#_EIWBuukSYOs>eW9H43d2r_7k|vU?%d}% z%b^f{U!Nc!u+MwHL~zjws5K`?vNijRraAOy1)NMo%(T-g(bN153 zr6HN$o{5TQ+or~;`MdRXlI+hFiqQ6Mb^*tX)sLxDq_$B4LVK}Ex4p=mmM~K9>wF{a z&4?ZD$@XhUFTAZ2#ZZqW_$hnROx#VCQID18o+tdnt}zW)p4DLimxjpf3sI=|@yQ;S zme%cS+fdJ~V*%HW)$JSCQO}*H9@n0i?ccu8UVD&&ZUb05x1o|=2j6<#MmTrwVne-- zCMTvxZJys-l9^sio2|qw!1eR!g*{n%Y7&^L<^kBib>i3T;Rtmp++4p{S zxQf2|fcU=t1%VNQI6!{m@xe&U72I7oep!-@y zyYJwGgot~=#Du`bdO<`4o>hCiP;sePa*X&-MRV87zM?>J_OKGJAHKI*Ib1e4VL;k6f4-%d@@0MbJ z8?db3Z)}Jxq+G{PG*tEgj=|TDfe^&3CUgi-+~yW14x2=ugi&Q7I`^7b7}3LBMf*;Z zB(RS}R+Y7vHf#h-i8O$D$b)GxkVyiEH7T7t)!#QjGAzS3lKvhD@iB0ZJ_yDqs0e|W ze@6@D)uRlS%<+Nrsw6OoLeb(N{sWCtX)Oa*IJLSR_g6aZsa?UPWvTm{@5DrkN|G+b~3{?CMMI18`Vj6`}HLKt15ky^0yz&5PN<`90 zn%DsW(=Fi}l1Cne1rA|Eb$x$I2`H*we)7b`Xi^q88e6}7kUtJe&^cwFljGP_0RtEhLScIakD8cPRK779bzzsFDVSti`zSowkjtM6*9IzNZ0KvhOiA+6 z!YHQXM;V_>5oU~k_1v-j{Ds4$@81J0s70xwlGwbW7H@+<4x}6PnPo*{bE5O zM4Cu2O8b%ftSU>Uvc{+-nq{hgAz*dWWc8=@ohA0v7ERf*e#!JEr^IBz)g}d$cr(EJ zCoramGK2BQKncE<%!FS9mvyF>SVL#C+F|jg*R8sAQNRTD0tH?LZZE;@Z=t>X@>9~$Cnz->$&&X#ku6P^@Sue6?@?>XDb(-TM+jGg9_sF^L z@wqR>W{>Hc9TpYx4`+fs6=KobB7Qbnku^RiDZaAJJ{~E)u+3auwJQ{|YbVY=sWlh= zME>&1sudVE>$HC@g=;c4plrQ6!umL>pAr3 zd5mw|INd5(!R>$8!m{y{gUROQ#8olmmy`kXe~r~rCRMqk)xIw)=Xi235~yaAsqlHL zD{n6qyf2B!s|#DJe2}XHb=1lxTiFpga6i>)5H&J8m(m}WjpS#g$yTCRHB5_FESgs= zhgYnYSFDd$Y@SwZAy@6bt=dzpI^=DZ1g;@2Xg$pgzq5ptQg>BkM5F2MYTo1eb@wlPA zN|Opz5IM)U(QYJ-&L>oCJ&8#_KAARlDT~XYfr4^C$vtH6lbU+O{#s7Bx8Nr>*26>Ior3fKT!D!&x9J zgO@y0U*S-NjQRT)XVGfeX7xv<+5@GkFwasH6yCn=CN#I)W?0-~!-JyniK98Jj|i6uLymc>gv7fSSY34}prSU>j9oWn+$1AcG5_a904=_Kq6O& z(D5)MpwEaRx!@MFe0MF%tdKL@3Crw%!rhO~?1zn>a1&-wsQlKWRhYfswmAyH*XN5c z#zH@~OC9-)8WtqxAKWET)}0FxgE5#kMn5#>R6ZfPB86PB2US6#QUo7IFQR+3hZt|{ zhPK})O=@)aLo#F=>p4mqfwX52|3mhBqqk9u>?SxyP->Jkc+vRZvQ%P=Rd1I^ACClVrzrxuon_b_%NE_vRD5U z|5etz;x%<5?3|pMav>aajRBN5rqmp_CU7vtvzvF*O)tvHuUJhBxJ_4OGNtWst~W8} z*O+%V%75|ZiPzJVOxXopUPID(R^El5jUJN2zGmp4<4xSy7lJs0;wmZ;M$ z;Mq&xt`|6qEgJ={x(TmP;%BbAmIsimrcN$KZ@8ut=f)*CflVfsGXl#!Ggi&u*OMz& zEP&ZL%%v8aw&KWzrIxG7l8Xnm%jOcRFmf4QyUkkC|Y$LmB_mZd0zCpfLGcmeN^t45_wJ&~Gaih6KS%(UwcBqvAs&gk^khtE$4cm81SZO!UV#V6f zoZg+}s1Z*)+}|kNJllV@w$eLqz@FH?75~;1|6RYbR4!oOebYjpx&)Y9ev;ryb#&Yr zu_hUIxYf0l$-d{c$!R4 z6}>uF;3XEc!7sg5i&Zt7Uf{WY{_EoWI&yyu)KHS&T>#WRy%pX5BKocM@Z$B?k+1dP zmeMhO@X@=q%`jH+=hKY6=AD<3i-NBmY3Q?W-m`e>GiLs?cHOgO@4Xe)@4CTf&zEP{ zR#j@rhX7Y=kKKDjqJ={zcjjExF!-l9Z7orV1N_s}-+D9`e&!i$n6?P@X#QE#;6?~_lyB3o_HA&@=&Ko)r(RsJCX=T$vfV(Tb&cic z4cyK5m+Ljn*&QUd^48CQia^b{;JKGSQQtosYFV}gx>i?tHfp`!SbVld>W*U-0!4kc zcfV9H-T_?q=6+BOlAkVfBB!wzoKL{bP~cWAjQpp5*^Lz4%BwEb`zE|2+Cct8qwPTw+F`H4R)^a|0G{ygcP4b}PX7g0J-~@6s znha(xXCZC^gC~%(xwNtq7%ZRZH<~O~8>}ZCe&X}EC|%>8RN=~pURPN!(_E@+aSCpu z{TrK%z$y(sp}e8{q4rzbvUD}0*^I}MAnE}sT5&Q;GLg~x58K6(+@`Sj!`IJuZM8xJ z%xaX~UY9i%yvt#ns!Vp1A-C~__@LbPwk9x4e5*WV3G88j|M0gl3RjX4 z9E&!RPy&xvk}#48F4Ay{e`Awvq>&6AucT4T6I^7`>>F-mA;52j!g^nKj{BkT9hw7V zzfXN=Ci=ZrHBQSfG8siNHmoU!np$R&NMLK5{UAyGeIq>kDgQb8ZenmmT{#|)O`hv5@;K(6qkDA%hpzoS zJFSqrYOMcYlZ+kb6`hQo*B$SSU3U|_-~WS6c7E^u{PX_34-_8%2H3i5V=)qIJ7z#l z+x}`eCCAqMP$eiM)49nuBlL!)WzXgof&)OHyDy>0^kSKysqA8zWa#{0nPQ&gW1VK- z^kSX)H#YhH!8#`l&(Ah5o~aWu21v7qinCuw{ZTM86*SF(et4)jJbw{_&eFd$Fd=Nv zkGh3x=4S=ma<=8w%HQ z4_Z!)6t#;*skQW~L_t6bQp&8<0?$I_SsNCfWJ4P^M4iOx^*2EKh^lZ;*@2u9R{ zI16J1IaHC`0-Ml_Q@78+7o zx+oa`2R11U%b_-Ah}m97{H+kRzQPCHs{3!CI;uu!esSZ-)(uJLBDGNRjDUubD* z>1METd|w}939OHJqBCK^*1ADVsly!9@h=!pweYH|omVo^E2P^#SNU&jQs$+72k<3o zrrWto_%Cd-a_6a`wfn~VyVoJz?%P6Z&vW;8pNGob&->P1;BK>wUb?3mf(eRa07K1} zmy3PSP_#YGohgWnejiq~Z2+@}DTI~J0F?8kcgNet_y5Eu*Sd*x>DjvQ^t%w+`lZ?J z$SK10>1`DH$JnjJ@aT_7(A&o(1XvOhtBxpG)5lOuY8(xwqG(iqwEh=1$>7*NsS9LD z8>CmKRb6kL1Kb3H{$w|)AsgkDu#5fHwTEX^Gvm_3n)6U~%Ky+l>jPwU_*%&=V;L+^ zLxd_ouRarJ?U;}8VJjkIIG0xKSV-w%D`EZLvB|`arR)+~Wl#96JzIekU3^pS zR-CziW0TjWl-%kW!I=4s4$6`8HjB9<0vrvA)mH%4&h;4|j;49oxgSfUSP<1&@t6}+ zE>k=!^}1tKhg&E1iJe>j!6q9sx1Dn|*csQqxJpv&sWK?PjsGh)$=bD#RLjm$(I2J1 zM~d|skLyqMd=c#SK8*s)IVQ?@AD`HDL@CIvnmK_b{Y0v~DD*FE@*#b(>x841d&aTm zA^V~0RN%j`$xu&RB^As@+Ct$NSNwi#bDkBBgKJ-*&rQ2$LItM)1S_%Z3oW&=)$SYQ z`q*Dr`mujjv&~&fQoBihxdO}9Bk^3D6A7+eG!b_mYF@enA@IiXBGkz-#~U@XZ!pU{ zmW~-+Loo!dXS>GzUFP8}+qQ38_XeKS5$$2~KwWfR?DO`+i5^LI!ES<0vU1^fcA;W&PPU0QuL&=h zgI@ZHuCMc;(RN`7Nzf=sq+fTR3>4rnci?<7e=@22b4mX~7zUxu$Fw2AI{BqZ54Vhu zjUkag+B^)l1HopDrVOEn)sm0blW&NE0aBpU93<=_82^`|vUrHwxI2&Ok1(*EjLs|nB4f98W z=+~a}N1hW_h4DwZDwOER7mP8IA`WB)gAv{_y!?T{AtuU{CqiT~gm>15&K1OeKqd(h zh-_vgkpUsDO)frH#L-bCt#7=e4vx}wBmzUB3@5Az)-SVggk@Ev3KW&J5Ry^@rwt=z z!z8{uCt-U9ql0dNTG zRfq{cSeZpk4+yRV3{;{m*8bzCBTy_L0g$o+r+Xd1FE}KrD5Q`WWb7K?v4Z#(R4m#D z_+c@Gz6FqJD;7IC)~ylKKPc9{KUVs4Yyo!iYoQ9sI$ro8Ckcx)LYSWb2$qTzBT9WkOhuPY z4QPk-aLp{gYOt6l{tG3X8v#L9sW-`p+aP9A|>`XZ~OSXW$thOPM=dnMl!D#DSS|3uOS|vHSwL@=Qq}CK(a2 z2$v8*5*SEG9zf>yb#gEeBw}K0a%^jO2Cx}oyz)ar0L4f$6F9a)&VWd`~r7a9N(K#_qJ)w%PF&3piOF}CtQ=mzs zJU3+wis2b5iJ@`LDCM9nO(~&aCJi9I?H9E36Ljbkq!0M2lmR8HM6-8jY@bgqejwQO z1W-B*u|WtcA_<%LP&@oN`teNeXrKLw zi3bGZ!0H`9Xg&f-#`>}xAULGV0DI=a7c}fW0dg)wY*n#x8)U5x5avCXel2HKDVN13 zW*r(9wTwZXH&yNvbSQI`-Ed|-GsSZrrG7J&mLfs@BXs&D#r+8-OEN(ydsPMkR>cxm z@)0J(+Eui00mRfIqQsRXZbNKGCpIaDP1*+<4FSw)z@RA~F$E3!jFYNzjViMWx^M^c z1e*&h7Ym67Gk40`_h?(ugNZ>N&t;8meoH<);+lQhM%_NZ)0%J~ih^H#%zD$3? zZ1)d+@x8?f+IM|S^SB9W6pV6@9pm4?!QU+A7H||#3A7z4rtA>@UsstkT1i~TS$YGY z2CQUI#v(<t%NEfgErjaP?pfv70ya=q(UBea@KZVp%g&%O|BN)_4ez^aS^bArK5Tv zq}OUGZKI{{>@eeyxfP8%_06C%yQfC7Ev#7hPQ?>If^bLb1+lUwEVV)kW@2DbWyHJD zuYXk7k0yRnLtP8TjF}mPQRRp6_#IO?kl-vpNZ|l2wH_zee*c^V&;Ul8SC7}rj6ce} zqF;p1nXSx&ZoX1a_?wyNrJm?7Gcoi%nr%Hs9y6_+_$FKfX>YysjUj>7AgN>n`MW4P zj4+cvVyuhg3w3A%btnsV(ml>kQ3CR>a61c~Yitws0o{}c-RwQiYH64R zi~J4?;UxvbOT+iSEKJajhw2lIa|b{vI7jkIX37;|HsVHBK~^@&Mm9xO_ECGbC1Gkx z2X^Rt8jTVHD^{-1My^;^?o>x2L3w6PaGb$B?#wTx7YSNxBi}45|7s&Y*#jv0fz3)j z@{Z$ZwGnQC2*G23AXbww5t|5=)8Uf{!Q3!D?cEEFQ< zoUl#6{_~olpz9;TeF!56l&~wCY-^KjZxi_om=qP9HJ1U~g}!X95jdCx-e8mBUp6IZ z=ly&zsmwiUkw;`C5=ksfT#<2MrbZ>nW;MlTSv^*f4?U2J9F_0vE9N1ZYyJ3jBJ4`+ zKT?~2%sR5y4d71=TNyWN*nTZVusWOM85S?~<9C6ve8tv&v+KdLvUCm94>>RsHIwM- zOE)&@h$ia=P5;^~XRi{~lWZ|od?u_NY*IlMk&;l?30CQTGRS;T1P&bC zRDkd>q3E|318@?h7wn?jVgIurO8hI>!_Xfq{hBNGr7iX^R~&SE95Q!2R(m`VcLG&=!guaO&h|t>?j*_fBt`CI z&9|h$R2Ke(s243^w7h66%s}q7M0@P?)b{jT?u^p*j9Tu@*7nR^?yS-FtXb~t)%NUN z?wr&1oZsBJFYURb+`;SEnfBb$8e(dZn_1RB^X_m9IXemkd5R=EiWGT@H9Ly+cuGt= zN^E&bT{}vBdCEdN%3^uSQ#;CYc}jM1vb%BfWyx*`cnSows%CkrS39bAd1_8OYJT(7 zu6ndOw@XT~lg%UY)?;&5gC))wP{P70p=%bt%c^aq%TlF@+&fIRVLOUWG~S>B+9q$u2<&)-D;A zwn26lo&XD16?;E9k6@`tU$HD}p>jQ*3Js2ORkl*)e-BHR0+A{=GBzCq933d^cMt?t z5M(wGR89~KZZIr5Q7_4Lhlg`zbA_NDVfLejZZ*&gpHhnCxy?oNw9PuQ)w!Ilb@M{q8t| z?zltl_(E>^gYE*Zk(d z?DX)&#wl&zZ?(KvtNRTf7>1A7Z(4eb68$oT3-EfIs7AXSYO@PSlitC$Kvqy zw7#`Exw$y7Ip4iL+rBo_wl>qcHq){@+i<>6bGO{^yx94&Jp8;n_WN-DaDVIHricB5 z!|j8MwWFt<6c^SUnYgG%Je@Tg{!Z=^p`K;?rXkG3151I`-jK-`^Sg- zyXX7Mx7+=XyX}wrqmQTaKaaPs&kxVfPcJXeUxI|^*SD9~x3A*#e`yl_{P}o)``3KD z|GPE)@5J<%76AzS_-DRe{P*MQ?Jr-#mmuM5Uf(}&-hk(C{}=N?=-(UZEH~tW;Ye&& zi>FIOr8%rOw++etKH#5wk+1Es)X?jEly->)ndE#nqFL$OpUxZ4d$KtrrOOy+lOoKT8(4`tih&Q47bX<4-V?Gd3VF_WwIUE@WQr{4^ zw-1eH6u?(C2`QKOrek7HDD?JxzB9+i*+)QylhLYi1wh~`#QQ_&Q)q>xd;G0C)up_f z4&4pH&@kH<4a+Ouz=;V$4Iwj4DiOm8198bgZ6r9_^F-A>JBVaDfDR`EWZ8#cOY_}J zp&71eg^(ThKP7xm9X30Pm)c3i#*tC-hd@&!CMC4ANBmJF%m8F1u#t8-KTfraPDvp% zjsiW>RT~ipH>np6jk9h`?t`M#Uok(;mWpn-!8JIHZ-tY4TT`mt;*~thkucLrasH3Sp9$e0Q$6sHh4UQd0xgiLfMxm$z74 zR<|u+Y1MQ+Us#%U0%@=6hCIGm)sKDYVH>76F0UHrBsqqBa4Xfa=;`l@H>1fz=P91XH3m^TZo!81R zckQ(}aKF}BCkHt#x(K45)cg+p4fl>+o2w7aJu#DBsSXMQB+R#U5_D1*Q()Ns+JqZ# z0}0!-dyu)tT=o*@1Pr=KkKy3M~Xiib9Tn(TnzJ1nSzDyLlxk zgn`233sD4mV_Y9ea1|4NSO|({(FOv>7zbyCjf=hB=GXQK4r#x+^J47ZFDn#nZ(W8z zD*ywJ)uUu5@ROX>{!mInqXDtaeV@XxOt=VjCggBa7zzEQix7xnSs+(HD{4BV-k}oq zEvWFtuzl!O-u?%Uj4T@05eZ6onAqLB9vMVJUs^tK>`tQIrUZ1??EFk*-#gh~<9MMz z!%L{Mv(;*|#Fd48ES*OANy&>L?oDsZ@qr;M5wB0;&@o%p_1yO?&01PkURR(edu;695ociC>kJ54 z`IvEJa532ooL*>xr94n6TOlOeB`-i=i>cfs`?w~lk z#ayuBM;?eWJhQe)ONCFrD&!ePzvr#y<8nTlRG|163N-Bhg8M|!RcM_5`gse5z5Lwe?Ckm0NWN$ov z&+`vF=Q@ADIp=eI&h@$O`+mP(yRROV*h-px8M3{NNp_J-?d%h|QPE`Al*??}Xbr5f z^XnPOreAaFb5{RgyU;`}yUrt#qr0mkFQG)N5AWw9*^VT&E>Qf zoBBK_6N#41m7HUnMw%y+8EMT`;uc$GPA60OADgRH$F?jVo=lg+TWXChwrz_}W@;^4 z>Kw+luXmn&BBr&}-?sSSC>O!QU7f7okcHC!HzuSfICPhsRX1$+&5Q(ZMSK47ce2ue zW*r%;IwvFY>DKw5+~`Mpqv=y6oKSsYi7ldQjKV(psJCi|nELJ=gwp(%9G#f;I=&Lt z&{OeA`a?ANA2Sz9Q~2zbN|&5=!67eU*|5^=rMGp#BjmQgAocxC5!RxSu-=73x;KsK z8I>{Fn%eTiVR}?4**l}=@zA&qq$XzzqvhX}Zx-p##5T*+uhd zwS~*9lkJ8POneV%G2i_X+S)IWvw#AksT#D!dLKl27Nb=T5!v z;aje}9(tQ;&x^G9?*+@nehD&do09I`Y14Gs!VB3|2!XPPorTsw>iQ88B_W-hgtebW zZ^&G)eBLiRFDwssIc5JmNIvSNr6xWMP-1z|!0ZH_6KieR)sE~x@7sMK-qkJ~5;g^n z{?%+1N>@u&+zl^_THaWCxWBi0x1N>{WBV?3BE8{c^MlLno}b75xzxhvR**k|jv7Nz zOMici>zv~6gU-K3?H{n#J`jaHfSjYESvc=)+`5CT2|cIa$10=yn4S}ge{BTE@h7t70gmWT+MlcRs0khsDXklR^@^MhXxLFk9dSaY$Z5-%V zoDDhd8~}Gaf_X^9Th+qGDa^9~`0b%MKQ*R+u(+T^yyFpUT0Y^P3F2y4!q`Oo!~8hv z$OP<>NrIgk0`J2V=98FEi;rqcjM+@|rArDQfvxausEwUP!v=`3NkGa9 zD#Zm0Uvp2HB*BKQVSVx`?HAs%zr7& zJMQpPlZ)6ttRKbLKw@|v%<#;bp$f%NiC~bRXOL>olKGM)dz>ZDMSY^E{zU1<6P55M zY6VX;+Mj5Bd7^Xt1kIJL;S1)U02qa5n-pZjCjeKs0G7wu)?7KZ^f^o`z;bu6O?dXz z8##g#Ij&qFOj0%+0a8I_-wMz5DaiF}&y`Kes&LP$lFzEiV5nbVXhOq=0SVJ+CWJ4% z7@NuFoB7Q;Wg5Wrft0yJW_W?f5;kQ>Q)l@9As>{}GYC-tu#D^m-)zg_>}y-u{3}4~ zV*ngi)E-`Rl?#-?1u{7XbbQI?r{uV90hv*`-jWQpUy45-7f*1NOqmv>apgUe&wDY! z@SAFq{sF+0f`vzO<+B~bcZl#)pOlFS*k`&7fdU4>aE6Pc`)~EK{TpQm;blh!Whd=r zXJ5*w$7KNSa*#$j#IYP2Q4WsC5?lc=QVL%mms?4KumwfEH!3(ZikT3gGQT!|}}>Zp{NtCT&d{7YYU*EH|`*5ly`ST|kf4-$M2kpCB5TBY{* z6C#P6pPy2|P>XtM)=_0XS7mupWzGG}R^yqSr- z)nzxDR&W+pvu^`bf*FRMSNl2^2i8@6_67SD7NO)T1t~z$IRG;NB#dTo*Qliu9Bbnv zY7^(GYFA3XNTxGwC47=kYZ`j0!%%fHlpZ$>yH1zUIKhD0Dy>D-Rch2#Io4H2)YTT& z)pgX>&($@Y)DgK~G-*Q%lb@%yox1K0-*jYVZEWDYk@5-6G){zFZ%g~V&CoExP&&e3tJz}b)N=h{ z3%01mv9rZ_zQy&l#hs_sQ?u3EsrA;wR-d9)=T3$i3Xq{3aN&z#!7&K0)NpbG!+3z4 zbHHb)76*C;TPJXM%A4LTpz_2UyA*~Y^|n54pk!y0kz{3Cd26;)d+x*b{G#@2j4hTt zjIigaBP7^3nkn-nHQMyKL1%*=cWQila~~k%H#eiDW@ocgXY0exwxZ6C&d#p+&bOzX zB%ZEb&8~i@uEB?0Lq%P0Qy2s(tuMo~5fcD}eD~x$uz`wWU_p1!Xtqg6gOsgv-$=LN zi{4E0fLfiv2>G{PUUbjRR}3BlP3VC_0EQ8#cLxvO9TmMhnQt%sknyKBZc#FA1)ZiR z-F#@xTsPk^D_=#eeg3&Ejrh=w^&$b`+`|#sgDmdh?&{%P=;1%>;X1q6x2+7Mw_-4$ zpuEziW;YA23C{y+A)2kdcpH||i}lJgxCGj|+P8kSdvZHRz`a+A!hmw_H;U{xDeh;5 zWxRTk8ZOx}DbMum^fiqZi=k%zntSrUBUmBBs{wRsKVtBe=AgIp;H}6(pW;EkuEBtX z!JxCjVBYs3TJJ-h-`|gXA6ER{-yAFw*()XkqQ25(6hdFTIpb?Ih!p{3%@|@ufm(tG zm5D=HTEi*4K%5rr4FxEIX3Vc2${Fojmj=2?0>xy2O6Bisi%06ZM(RgLJa`A)it{Q? zVPl)AkWqN8{{X$rV@F=52@=eV@zrqfV>jo~!N}2};?a?=(b0v`k7uJ3ykk>ZV>8ZU zvlm8~;<34|u~Bo_=KOoH;_eh)kdQm$usNtyYdDz~)Eqq8f*z*u0+p>{trVmC1ezJk^E*t~ie< z%QH$^fGPDKm93}rwP&&d7@Jps**iesf_ISo2~!x04}bbt0VE6j1T#StuF(SXvTXkjLO!Zdr31$>$&R3 zz+x9L&}FV@aV~50?Gq+|oy8|%YuMwc`L>ezj_&yjU7kA=lc&pvXHK&<^H14de&Fne z`6cCUB)QwskM}RH`0|ERioYr%fR)DVoOf4(GODjVY*5FIQ zbBJglGyf_GzH$(?ydSmt_wsO)_WY#`pn&zzj`o^}>zY{f+K%?(ba&o3-*Xne%u7+T z=*-!+`h^YB2fsGbr$*|&x=HD}+1qvVrFBc{x;6iXtzY(EZt0Q*wp;Fwjxhb<^MXk$iddR zN_1c)I-pCX!2UE~zYb8i{2M2FryssDS_0`HXpg#j>OcOY5kH~xG_@*Oa7`M1QYqm=RA zif)IT)_)d%GLkZwZj~`Hf`xH)|$;*mGZaKekV|v)>l5^#k$u z8{)J{_q5sVwDr+xTiI#HyVI`a)3@iRB!RPD-LrnTv%yDaLsq9`3a~8=&`8z(!VUo3 z)BVRDe8^5=BoToe?%&yo!2eu#rI(Kqb*W#|e{Yl>Ny`1SXbj@hjNMu4evwC6(vN52lQqw$taQe*Uv}-!xA|(6#-|+( z;j&#f$r80FH7u|d9pa{A6+s6BNTUVp0ZaAndf($1g|)CGgdHAQVW1o=uaVtnTWwLm z9~a>vPRlH4w14t!cYY-0TP)4|i2V+>>E>8NF|u*Vp!FgFR1`+p`M<*Gfg;YmH*h%? z6dn4t*vDdx%aj=|HiP&9F5cVZ6}8{ck(|p8_fz$@<6!p2Gt?uR(Rr7<3vV5#iyZ&@ zHQr&V3*?z!)t&qAQ^#P5(_zq3chotQ-}xwbZQ!wh@r5w@_wtTkSES?_5&*d!OMvXlAn=qeda#|KZJ={M(r_}}0iV)FY zWZm4J~n&;hQDqcoVG?T2UYBH04HS?R?yL8}oIQ6xq=3f65EAhBg3oG4oh?2D) zt?10h;FAz~AQ%EJ?<+yGC7VCBn?a5JnUYo-iRw6(Dl-3{Fk0$3;Hup?VlB1Jrw%(q}stNohI9^HRERMjoW23*?b7+-4Kl% z;rgSo+t{-Ji|~xg3Hes{B`RU^T@+A~d(6VO7xyaSR9!`KqD)*L?hPEedcamfCJQ}Z zrfI-rTwag;_wX_;hpmq=2qxQ1>Sd57l06xvM^PcD(hO$?PQ&dM`lUysj^Ke2p3 zroYYm;yt}M@BM|O6LNse3adN-L`HyJymV%{{ir>_B!wkHi1oMY=}9Q+#vR?4 z8Fc6Q?{fb{kN6UX$CK^y?Y}(SoYZ=2h_L8bWR1`uQ#1w7gXqJK{TT;yscK`K(-8}Q zP=`85eFWT-K)@P`>D1_H-t2>jxyLZNuEe_5k8t-}$I1_X$=5u$tKuW5bhB{e& zuUk3+N##(TvzNJV#O=I_J(Bd?bfrg-o#eh_sB<+h-^tSsNWW zS5u^zNetuq5Xil%F3?kgn{$wo^oZoicr464nK6N9_=)Fsug&L-Ur{-`0i^Bg^X9 z`Y9Wno0LJL5UQuDNX0POM|ui0H$qw0RT}43nK(?@@LZ9&*K0r@*wxhhexYyR_*EuG z18WS|Spv;fp@o}jjG+XH{R?6A&0Z}%d#i_Q*K)?LO1wR>Ns9fLm1`Nd zjgsgYtP*<8|C2aCZ@FTvK8T7AY8q@y#6g6rvi|cdCv$MLGK)gfRW^_yc%larVDa*Q z2DQ@WpP|$$tC_UK=3_(tMijK zH}pRt=vsC%n_?K%LUL#niPzL4<)_<+U(yNM-&!&&?4Jwoff){YUIp%VcF|kucHNT> zOiaQX>wtsQo$}yfM$P<)VeSI+9nYvavMwe#mi^3FIXD>K84*gh zYH*L(4Dh~SMsRG5^EX=*GEFi*=|)VtEYr#rku!ntq2X?kug^mtnz?A(|H{^Ai(!sm z!BeeZ2C-}lLY#f4OJ0BRtlzX>MO65?Ua=L*)4G*#IfBbTY&p+#1~qVhuZBk2C*OmP zx(p9?hsxk8=mek*lu|*<_G8tI>!cUaK3AK0r&W4xrsZ?UU3btH|h$QdJ%jU9T59kXgF3B1FSPBgR-a~u*i?Ej{inPkEH6r`X&^jo|z=##%O~s5^r43=3o$qnqrs6-S z7qx^4$3pM;7%D}x_L>3s5+Jfm|&)XyhBC*-UOSm!p;&=-H>H=(9hm*$o9 ztB#w?dN8g+Cr7uWY%~U&I zmts_!ewo(yyGBD+`M|I+i}fSuZ@zXfbvE)Ksz0maC<`06J8x6!3#}|&!{A5<%88% z^kvt14M~t_H1zm1eX>sXB#X{C7)k?5x1&! z8QmQs5qkkeQJeraGv;{EL!HzVGJmxVoS@N@vOgml*|c(2HCb&Hba?IB#RU2l{7O?s+&GE;|Sdoi%NA;BG5k<_{zrP2N>)8tTnjV}aW zk>0*46M*Ds!TzWXWOP`@GjWrLnK&`xvt8O z$Yz5zhX{cyG%r%M#2G&%RFqUo;|@Zy^x!r^@q%fY^B4n-(JX9GD-2?SgJ`=C_PyxEY?{hO z;w_F60udiMNh7LS#tQjjg=?Uztd%M^hoB6A2v_rH(P!GHIyFO{IA~j+pc{&WhHKJB_WD| zj7=T$j;RDrC+v(`d(%D0c<4p29BXtC}7Fu-kiO?AT@D{8J#VtP<)KDkr;sIAw) z$Ltf^$p6R(G=l~!)+WIO^)|3U23QAaBioF}$lG8r2JH8MGpw=%#+I?uf`1h+6gF#L z&y?_!fLOGlH?iD@xJJ5@h-$#PCgmUeZ*r(C!IpZfX`u)z<0|AK< zLl8%yS`2C;naSMYp3coUQ}7rjgJ!h1%Kph^(?=QVzfz{PR>1E4*QC0vOZsR1?m={v z&HNVe1{3&V^Fb9XVeD!Qd%hrhR1DJR(p;OE(_P7bjUW+nf*=;nhl=Y}%smS!DOeNu z`umjv*#R*5F~U9J4jSrBhFDlTwa}>6`x<(M8xAD**Y);`c~AWgy>=O+o?5#R9&72FPY}E$5*|v>Vurv0ix6{b zf_W{3syT$8{^#t^ZdWj19k?-JjC0ZU0SitLFcNc5a|DqHG4NBQbiP_V3tq1mXrayF zS1!#bkAE}SlGs@LC|J#0JFC5)fXM)>;qW*6mv&qReHRFK!kp}qoXUS&cDRtu1F+gj zR^E^EQu!1oJjn;n{10j&ZrOM>EWwLN7{w6W`ll~SUE^D{ZZpGraW{M|7X3@`Ivdx> z_Xx_USOcQV#bZ=0LjOr<%Ms%@l`HM=F{j z-kS;I!;t(%yfk&dU;=Vy5$tWZsJ(cd90gHE%OYi=BmBI&z!TmV^6R^nAo&?=sLCYy&ZUGkt=+FOb<}n zE@~FNe4|etib=e|Py#m0xK72m=wJyFv*|MZYtkRV&5zeG@{8bBd@<8kV=VrP30_F; z>r?wl3xnL-xHy&B^t|nghebTp)vlG3gxMQK26ZJU8br%H)ZX3W$74Ke@~T=bSgRb& zl?%qG$QrRJ!%qOAsm$#$(Eg7o^LzBF>=KVslO)j1k1*q_0LN@;B?= z3m+#39ud&4M*8;&dh+XPsP(*Ae9%W%&#D1EmhbJKRzp<2Yi`m0IPU4oY5lsqz zEcd(pNAPVW7yWx{hTn=xo_o3(E>>h;Q^&0sgb@tTKFUO0B>HRBV~J~94!jb^y!n>r zzomIa;|&;=KABYkL#~KTiAj^?HbO*%ztFm)OP}0YJ-O$Ro9nBNB;-V|_BMcbT?o7f zPl~SZM8&R`+aTGU7rSVXMK5Dyq|2l-q$UZXda#JQ~`^)I?%*WvX zgZM{77F8T0zcir+VfeZ0cqMDF+VAaG4er+_feGzDmVL!w4JBQY_$Ywnt3PFg88g$h zmNzpmy>XT`;H=QixIl8e8Fm%<&0;CkH&{9#H+r@2qw6K@tQU1#QXT=S?R5>|0Yj}> z5w(PpPX0g8k|0VP%O(IIkE0&!QTYK(2%xnZw82;10ANsnf%rfEZqKno>##dR#jxvN zs1(2JX%l+9 zAOMNerQJs}ho1igfDXMQ?hkqem`%-or+ct(JPyA2(}3=;X<0)oHWOa|qqR7~Fgt)1 z`D0(|d%X(U)UANR=c~^tMc8>-+j7Ze(AEEhIz8eg0Ws(or&{(CF~%J+@S?KC(Hgv$?!iqv!g(-3Qf{YUw$P#+Vn70G)$;BggLRMa%xg=7nq7h5!{B9zBkx^t zdRjLGkP)$ePvD|_4s;`bjLiI_PEF6s{e#LNDBaWHeNY<%cRzf@8JdRxX%oQ)B*>*j zi2luet=iyxz8T|$Fdd)UpTz8BbRfOc3+9Ls=JQYyH6RB$kUb8#*v;yPif_?jRnz)# zufPBuiT)4N_9%byTu;+B%noo&5M%|1aDfe*KvY4fnAsK7R@@JGyec|GxPjV@ufM)}{+oSer}p7}l>EiX zK^d?b=eh~?`x&IE7H@$4tw8}_+~zB{{|yn;j(*gM@7?UezvPs#UvD3$e>l*|k3l`O zabdk|dfG)B#zdisj5%%lkJWBp=7)4aFcP@u@Q}s?AUpwn%4^1c!fP(Et5@PVW)G=$ zJ)=G_D+VWOJ=|GuoHnvx;ghf|#{F7bWlT_{+FXzi)^z>rf~}t(nWnN|7J3uVv$k=` zD7mgJV?S$0KqeO(de#>c$H;Mo<1lHmY2d@_{06AnT;E^vLdeci zKQFEp(t2U&xI)XNsGp)DS$XaDi^@kEY5)4z#4StpBEC(%{Bv-*QkQVR%DsLl=l+hs zcKm}=jaV6hj4|}xIZ}9X=bA#$sr-uKx6wjXe}0xA#m$LI9a{b=x#OqFi zsjn z#{20p2pxPAde{@y_1tvMFR-CitoY7|y13C_iIDtUf}Os2*~@>PF$K4{%W)t>UeAQb zBa-?Ey^T9>k`m7Y6!`@bv;Xjl&k@*RxacO@9^p zROXSkPkH0*LPmAi{u-F1YtP;p64MQ7`Q&6e)nX#H7y!P&MC=cI&Uy38e*@+0+E1qD zrNwbMGQ~)B6+nFtxN3@6$`0fQ*qtI-G!yA=ZHV4ExeFWmf5PaZNORqafBN5gi)qlC zAW4co9*K+a|O!s_p3E}mmSNt93^`HFF(#m_(IjHNz z4di4P+~aNrb-cit>!ABM|A;mAcbrmB3;zQm|W)~6SWBv01f5BCXy-A|Txk=$gr0l7}^$2vX_v#z=QzP73q z=Qrz0e4MiH?ikMKG_RwVx}6a#qTZOOjM%?KvJkzY%Vl7i;hrf-5YcOD>NS;}eay9A z$&*9Gi%Lwgzar~hI!7Dnj#SWT*;%^WJIegFPT|nB196>a7;6~amUCb6X9=_B`*Hny zM>46wo%X7!cI2Jz`KXmEq!gw-q5A`uLnf71(TjudKUdTw<&tiBmk2E=?0bWEC@FlzWl{ZX;q&=Jmk7?aj~D0v`cvUGJn1^d}mDqH5<`Lr1?7XT_mJPi z+%V6Kx?zNM@ic%h9xA`y;HbjG!QQ=Y|#fYXIray0@z{4i;1zPKtUMl{H zPb3+Rw8gXdGyHNr8i8WaKhodCD>P6ODqgq;xcm;+4Yz0Nbq zs+hK3&bvF?2hXdAU0eGy2251z9mE)s_oaSbxO>9{!ATu}It0{0JwrhU)1|_k6ILcD ztuXdz-+(216fAU*nUo`aH-ko!^QrkWI+jXPOd{?@Yqz(6rZs|Ngwi^^0-)C> z0UvadnY{xlTYjE``M1lHo<4TC4SDVy@vq5ME&b+)CqT~|ub(q1dwTQcp_aISyq$w9 ze+B-M2Ya=^+ygV{{$k&nIB7+XPlg>+Q71yAgG!I3V6xkhjO)$wH8*|3Rv{WVTOs-h zlk-YtbB)EzfP+Vuhe4+MUEJHbEPci9K5V2pr5w5?-W__CCGUz{#9L?(YoErM>&~A;RaNPmo5c-pMjWY=1!PZ8Oj@_2{c* zJg~r6+G0B738ic#Hx0DvS!|jyh5AOUBzIM~eyT-@AZiRLIl00fP$Fo#f zG$Y#Jb=8NE7PnWQm|`UA<|^j5wS`1gJib5QH)Fi}I@U5eKdp(ik@Kh|RTsImJo~J> z;er@W#|wM#`K;P}KApHIo_qLfe9*Ff{>d_U&*MB-gBK@t3Gg;OGnnW&ARl&5^(ZXU z>IlasH)WCfn0ce;y6^_DfUj4`t~VS}1fRf-iE@Pu;6i|4Bf~ta00*<$UZw?{RA@gt zm&=atJkuSg4r;c0$61W9T5RicPQjg?&d`D5b>Nlo>F-C@K8aaUA_nBzSmsef3}A9I zpZ)Dn8D^$WOeFK|0Ngb$zaSgy--egN;Yjz4dg289GXyw#jcWLyf2-V_k3TQdmtssZ z3ubUWBBk#e0YmDeOhPq`|6z-F^O2z&4gN*9(W4CfaGB` zET7#h!({g~2lU(>p7#4^L#OdXRr$#V*)^Ta&$JjLY#1xv;J&?6%1Z_^{&n5sn>x3M zQ(i&aruOi}PAs9hO2?d3{(>}R3In|zSv4kcHV`f-?P80OYAV1(oxG}$%kJvIA^X+G zE|%&{!&aQXsH@F^{Fda7(7$DGc#x9>rF^lYvwGj+c(~4Dr_GOHi(#KIw1xE`0EtNp z0J!&upbTez)-nEEy4!l=IVYZITaE7=DQ<-06zKwKtzi z>6dy0!z#t$`VlO>0){0;V=)4$agnPDFR?vHi46FTL3}V!G8pmF8iJTA`V$wgi(CD@ zv!?!cO*gyuTnI*khf1v{@FDZQ9GSyc1Aa^+4jC& zfGSCmPiYdYW1-x2$do86syzXIM7rXg$gzS`mak+!>qBCDI8u8Mk+FJj2XishQln4U zP}n^81dbUNGuDU}XR4mf7v|gr>&x~QD0oM_%!^PLF+9=hFsY_DyCv>e)ymXc5lkZ) z5!XgW`G^=W<9dv+dR(v`4xFCxf|=7c4jw#objU2~S?}Lv450Ufd3z;wz_ole20n|5zvrJDZ5igDE z7*{@rdpX{=-wY3iP}nMQKM_GB$N^>C=B_VgNh5;*#-!@4;vh)s3P~pvCFuiXg}DWk zvdb;3c_UYq)~azg2=_q74%PiCsif;mX?lSMcRo(vc^l6mS)=tB{MLTf{)EQmUgj~- zob#lz0P?i1u~4lvml1&X*hXtm!5SPf&Dp>Q17l3qeOJmMlJ3^Yh{Y?#Vv$*cevi`; z?yTmE&c3GZAwZEbKrK%8mgx1x81C9qM6ZFY5592aW<;fM)#qCwasM$b+qrKwC+cC? z5UjPmFK0$?Eli__w299foNIc4cHo{0XW?4PbKWVgNvr* zo-OFJq-F0Fsp3t)fpwvkK=T2QOyAALng;lZ4PMq>4} zxJ|4PdNILzT-FAVOpydfJ*V70_&z!wwB=haG6vIQAts1%Ir#31Kk6l^Q2bt|L8lV! zjM}X>cD4j~jmo$;v-iQG)|TFIzm9rFf>CTMORr!+Tw7zDmV~fTy(cp%R*J31*uCej zHW(>SgWN|e7DJWyNpP&8MzDp(jHmo)9VXw1>zFe&w+F}3S z5lp(|%*Q`bAWpDmVrm;BvOA@?TL`%9ss7R*wQ;-)otcsvh#zG6Ha)23Y*|R(V=X`P-gb(ArJ3ycNYH??6TL}P-={#&booub zeb){)KM~$-0p5|@)QL~g5FDExW(V-wz8`VHKiPTdD*{#!!N-KTE8l>;9Tl7PB>0-t z)Y`b^?KsKJ)!zyQU=|Ftk3_7YX0#||zsc_O;I<}xpq60ZO!CV^$KB&^ekbup+HC&S zH#Y*DcRy7_{x~MZAM@17&eh$i;Z|J2Qo+ibBm_(Vo~_4>0JjWP*e!rHSbMZ#dgnAW zKRcLYQh}UddMwTktBNltsUv+V6p-8~j!v_@@g=%zYHR(z!IWb|eUhE1Ie$4vZ3Hki z;tR*7#;uL20bM&#dMc{7?kdK!dUG4AE+PEN45N;VLDu%d`@Iq(ckXgo{0*v2(jm5V zR6P<4l1t>9aFqKLG+gWICbune`$#O9;rlKCM@I-eytUg9``;vYqbL0f9ZwQeI@^MUUl00<1koiB>E?^+ zH@`=l$-;(ks_soxM--k>T3=DY+h8e}v<4LQ2Jx%iz4EC?DBlPRgNnNAi=F8)pPJmf zFC^l_!|&d!ZC=mouy@gA{wZd_%9ALC2g>9_F9_X7J)q*2SR0Wfg?AN`EwM}byqPO_IM>LnuZFTbG*NIW!QN@ejDj~d|e+d=6;{Ezt zv`EQJ{6GG@P?Xnxy=RD-oT5Ln`JG9~)%VTj>CNWL`-q> zQ+nYS|DpqI`EFle`2rQ%Y&PAvSmBSshfZ`f+m!vc(Yr73qIsHM_0CwTG60RGo5$mj@fh_JS>KN^bIG9 zy_KIy!?CAn$3T%Nbd7WqFugm!-mJ9`qD!HyR-x(3hzwQeudFeG0Y%KJ-sSwYF3ZY= z)SJE9KD|n>9lnQr5)g403(yy`+0ou7J3L-tO8O~q)bfT)U*7PI#+zLvPR}U|#8LZA zo74-}0@FtIigU{UZdAkv>#=n86WhkrRa<>S4djMMSFjDf6G}Rw@sn@w=NHEZjNc#s zxghGVYR=i9fmgpH=g-G{_+NsYz<n7aLGwS4!d*-QNP zotnJ|hn#ulsr!CV64y`dau04>Upclv+ABDAqO0i&&KI&*_C`zg2MM`P(l+_9Xm&&Q z+(40Jc54|gbw-${o((m{??IL7h1=+>Vji{`H$08u&d}!G*ASESA*xbuMF`?WL)A7z zWEF{n3Y*B0eeCx-p3Ti|p{lmz^C1+v7v+5lTSIpn9bO?T=1OTx?i+VG#VkR?vKe1~ zN$pvvQ?)_GL<;v{g=L>C_l?}|TX^zUn{r%ZpG5Lf>hangoreQ>v;VfXhRQw27kDt8 z8$O+;K6PJdKvN}+bHL^P9<(E+OMbC1?A?DUQp- zT?MJ=iw!0Ay^FC6;P(vgYr-X|O3_B(Io&Dy%PQX245acPoC`SLqsYX3Xs!yK41!K_ z=3O&89KFyf{)$u1^$Ox+qJp6XcY+V9(grWaRH%HPvM?D&rA;r>j7Fav3$w0QME`>) zoxRSw`N1Gr!b3`&;x_hZgY6zHiPnlwKlfnqg(TuqiN=F8ZsmymS|i=CP{7mUJ$@M> z$A|@C&kZAWd1vBEn=15!cp*r)fW-^S(HK=$pIC5gmB22Gv9oz5nJ)J!aGpARHNm`m zqBmmiGIw*nf*0m5oDsqr7jpB1`5^mS2QT#P@iM)HpVm){T>A}}tT30^et8r%IJ{}) z()|5prvCQ$Y**2Py@hu%d(lihVZRpM`oG{`a{9CVydme!t!Pd4yVD=-4-IDWHNEun z0+w_6qqPE8mETKle_YIXM}Di1hyHSY-Ramy`IFTX8%Isyl#MX`UK%yD<_VLnN4$VZ zHv_z?ABIiChAAF4cu1UulE{cdVT9{5Ws9puvV4A!->QY zgiRe><0tCLXmy4offGn0^o)-6p$Sx9dbBMepRXRZ#&2svpRCMBr0Bz>N##c6Gy^9I zg?x$X=~DkibFJc8sHQbMy_?bj#k;dS>k3<9ug&d7v7O)Zj;#N}04&ilGA+{$MR3j4 zFdpVN8(CK#w=GxyxaaUS?Fl>CBkA%i*(;N3asA69#jWN>@hiZC&o}QrC1~n5yo9s` z+U~+|Q=y$TrNKWx{P&JZWuypTjYKM83eGz{eTr>i-^!w(pY&lu?iB|DSL!D!#QaGl z{REnX@@g?$=0s)UqxBX~M!B@j7^th?jwlV^gB^v(Ni$*i;m0~Bi9;G3&$rABIT{Tw zS=e$XWnfe!e~!o`ok={^V0-Q>a5e3@>62&Km0r)EMmTyygZ;A}qW`ho+?;7Jt{&WYWw?_sr zy3{kUe90pUTi^FbCIv@aSDH5+a+2<$V<)^Lp;U5+oz0OzTPqQ2b;a)@b|sU)oRE)T zX^xE-l&Zd{5~@YlzE7I+!3)=z9n_|!MK?VcXg+VZt;r0tHN12Xs9_|YG4i<rhCd2XinpuJk@HGhA)Ug&KxBpe^$!dr|L1fnqY&1CWQO~^zOfZt4q6FC09FqP1nEF4SnT}gO%jM=`PAPWfpDxfBTPw~@#tQQER_mp6C ziKb0q&8+lwmH_iT#`Hcy^wAnpRyb-a7$7+nw2nx;1waL2zlr0N_GCe(1;_r>_7-A` z8NwKS%f`6tUmDt^4PG$L$_#i8w{A8S4OXdoyb=S?KQb0gY<-7;W#rOS;itkT!E_Cq z9tMdYu8d5AV@$`nRcvTjg3y}MS^?H-6clULCnlJkJ4CXJB-hac|9XT^`WONG&#z6D zcg`E)1TklwG`%duAYHN>`du?{s$NX7n)RoNr*8cx^>J-~g&GE zZUv??o5A;M)0mC^hS(mO-Ww^N?FcgEQ?hvy68T$T2-SaN*2+@uxaQ+kDSG*PIh*o5 zu&lEQ)Y;h(CX0)qa~--AOzDq%9vBmT?-z)*i$tTvQN#1Sc#KZQ+5!>j4nUCy7hE^n zqwWVOTq(9tGmdj8Dz0+^1iyGkM?3!h<+Mify&W%6hxCZ`>5%b4u1!K1?C&A)V5hhX|L0!$k&NlQ|4B;tK30(N(i9FZA3wx}NeVY7I6B4CsUGUD2I z*>0MO4TbReFbgV_JU@)^&O~i7GXo$Wg>1L3X+d@cveh7BI==KunJ`I0ZD08Ksomcx zJ$MQr-tW)`dKm?TIa2f#G@EIES#IFVARW1S?n?j|5<=4hK$J6m zof&Jg+$nYo1d%_`wTe|TI@9hXk%55n&eUZs zM@U*Bq2AAHciuocWN^PJM44QUWWJmJE_)Fwe^gUAZ70qk!9RIe^q}3`tcut zyh@vYof%b>a*rC*qmrs6qjSO%J}a?Ln*``y5b0xdCFaS!Co-=+2Yu{oGEzubp?N%l z_XGZ*VTuTT%2iK-+^VJvm2QG&HhvK|EMdweWWW1AwB2=3TW`BBd>|x*paqJ%6^G)k zh2l_Jid%7qBBh1m8r+I&ad(1iad&Nj;%>zWCw+eVIcM*E-aYgF@xC+P$=oZmhCpWE z;>x<$^%0@ouvFPopul#fKj+>WSN&Q-9svpwSji@8Vh$lwK*orLj4&ehG5go~_Q}`E zbM)TH0y#R7Q;ewR_`>vxo=L)O)G1p;?v?*YyjMwaUdkgIW6UU%k@;XqhBn`1csH%n z`pTHc;#mq8tfntEZ0K`gO+>Lywc%$F}}J_JyfDNr}{`MY1wI^Nc#b;s1IeAazotReOI9YoLuT$Q+}l4U1&qb7#q3N*eI_j#!!QeUyrR}iWZo1>|yQt z`dpcO^I$BJt{fl3D1H^aF_h<Epziw#LUask~wd26f>Q=HPLg;6HRxspe8WtP}Io;Io)KyF0~61M6|n=vdf? z2zL^-7ZD1=Ckf%4w|LY@N=RvxA*4`h+mAh%$0%1L+prNi%>Bp!=-SXnI>7Wg;dIwP zwjA0kC)CMfRMk$@7)dNfTA)@8a9$FvsLSUv#F8-Q;*O1!xncuJrEPN!ZMYNl?z@CO zHOR0~FeUYeF4(hAo(+=E2-%82&vX=BLv(Sg?3toOlXILp-tZ@o-=tv zO9Xd5BiyOh_!2wfdxol!jW%bD1$_hjUTXTq7>qiGT{nfjZH%3J#v1#9^ivh7wF36i z8rt9*Se+WAZAs>bELdhDr48K_Mn(5#9r86NvsnXhAOYCch`dcvKd5f=W}_$;Qap7L zVN&0|LLy+1dgc&8_jpDX!XeO5smErlA!p3P0DO|hyZ=@};|Qcx;0a5OrbC{@d=oDs zs-e>@6(T)_L?DSwn9a{@{8DoY$rT@oEgOY}n#YKn5r5}}!Wi1=R1(Ta9t;WXOJ@os z5FTSEt~2E|T-D0DZ8aH!_A_G=Pg5)!UQ|@7)c@8laVC zxq)Vfz!&!tY4OHdW}NHp-4WI7gy4!4woJ{dH$YTTUS6^qULAsrQ)|Ar_;MmI`mim@ zM0uQ0jQMR{kg0u9;y4A|rcv%R09vkfh{~pHqxt+;DW3 zb=f#bdJv2ZfIpy`K#tTUiQZWvNJMZR9#;2T(eDSprl?t#*F-0I*a~AWdtWK{y~6%U zExr>kei2C|uLL}w25PUdhX)wnRWQcoM1R51_QC;F-~y0%1f;3AgB?@7;4}gaU9Tgl zWhPI4ATCoCR&u+1CtI0#^`@Rjyp#IKNmlPtGa5nSjq9+)$#@>WZ2>%kmC8BR>ABYN zlXSkuN0P@v+U7F8!Ap>j=0%MoSjOAImxM}%`UVQWdhwJm+i8sXPU$(9;;Rwka=S4` zU%!#Mw?ua9`oovX)4Zaybtts-f5x{Z)y6+!&D5#w@qj;f5z1o_U9n62 ziI=eK5zJwxkQjvoL~pkaK*BCjkg~U%rA+ZUak<~g<(vpi#k^Dc^X@Gly_P19EdF~H z!qC%gVnP!-Atk=)$^%#c-paTUIWLWm8?rwi1G1Aqi0e&73|BbsHk@>XC_Pd4%8x*| zbQ2V`Nk58cE|T{@V6M<}TuD9m7-qbqCH9~ZsgDPt@Joyks1(K-EY27dYhdN#sV*Da zFY?>xbBpf072mmt&{#9-Ae7KH2A;bBF`o;@nUq3!1!#e&c+g$(HL2g#!cy4?4+Vu6 zNxwBm&a4ysu=aztR^-)eu;`p49K% zuinb?e{w~3aM2D+bpCo}>C-SB=#Cmn__8>NxIK4L9+~a1XvMexQ{NiCJGJ_ilpzWx zz|onk`x3SF%3*p|B!K32L5>KHDBko{$BiT4CW?3oLwc`0r|Zr&>eV5C}Cs_ zvERTCEEM*kK@}cF;hyCtdB4q;J#&`}V#${O%7dg`^ubdKWM=$~r7H%6kcPiMk$ZjAkw=$a>8DlUSo`27K*q9j5^7%!2%i7;4jl%WX&|h#wGac^Mu&` zAYUbx{yE|w#I(IcUWog@ha1(#cTtH?zOEBFZV5=3Q>PMs;v!05e5)A3Cn*j1&e@EN z;fargN@7Z?4RXr<$l#nsDD}+#kAooLD*++){%EFHlx6{xK-S8}=W!mAhW zUHft3`I>TKfsQrUczo~a?x8`egG8c4ybkWj8j>L07eGZ{6sBwe6NgWhw|Sn#07f9A zi;j*%Hdvg-<|#+lHaDm4lrUv6rQVOKPJtM1W0G3j6z-Od7Ak3Xt@*W)#NqZ2X8R(l zDx#gbiS$dYL+Hx4rZi8?z5-ahK3y5lc~LhO$+$-afI>(}P9QUCkSh|-olb1W*t}J} z<;U-oQ&s2?Qo+;h&IoMH-$ULCbD9*wRY^c9=Jk)Wj#L2WXB_Lqm>~&4@=LF>wJdoO zX(U0Hb3kKikl7m0ql>5nJx1s#PnJxYT{1slx-#;+lFx9;J__dMIzB;hwDTl10Gas9 zI@wKEW}j?o;hjShF^yGccvv%diu!Adki&R3=Exd27%4r2yQKeC|EsR2o0NBXv$v0o zy>#cFsdXoxhPh2-RO)&YrfguFuOU@^L}tVk` zzvGP5kx{=FzmUv32UG$t2E^0@NHH1Tr16pnck@x`EYOhmA(Kdo&BU6Jcl%Kgv~^Li zl6S8Y$=A&G9|Ae%HTRP;zMMfbeU1;1M8550O$9%OOaL8)IF0JJ#n!!*6lcA( z?Jt9$mj~;U!m&Oq6;cq5JvV-98J;gP^4*c}iypAd)B8^?RHjov=^kaF`rWTsu3HcO z)~*&#O^xM}6hCBQeW9JW@wkI7iqOae=0kHdF>nvGr)#nwtz+p|f?L z=Ik;rcwYf*`x=#k*1Sl1Ja;(D4DNBhL<0*)vLXkt`^68OE&F5hn>^36eg&wVS& zbH8aVbD*~V9Amw{{eVoE`1l(U__={@D-q_E05xz*!uYpa+wUMwt3{AUKyrUlQ@KqG zkvr**47uaVI*ElJVHt&ix%hVFDxr-OakqXyw1*)_H4?8gLxKiUMuhZI?=KvXJ zJBBkHF~|Zwt{#0NKK9cN4arCRj-)c^*Yp9;3h$TDBu+7&PVM0&-UGK`KPbATb^r}e z(qCTwScL=k7gyMQZdu$iklz9vt5?{w%3dS=;gQpR{a$BZO6>h7EqjSDtEb)y(QI_t^tBvtDHu3l2%ntQh<;|Hoa!A zCXF5-2B~DkX+3*JkL$0#CctfF=7i62H+q_E_)UO&QPeh~v65Tc+3IjU{r`Y4;(mU^k{4 z7y&1471$K*n99|PQ`cGi)+F7EZnPzy{#i0l-rfPMk3%p^cEt>E0WQBFoq9Bi;Nn(L!)saCK zAGnf4Q5Urc#0khVcziD^d(Y`J$B~w{7hs57z~B0(*8n8L14RRDvJHj0C|)I3Nw8ylEYhy zVD%x!1QFvfzUL4y^~6sIo0rWuWTTI#%aW_<^tM1!yJ@VnPNZoiAabu|XB9I&C;&&= z>iuA5!n2Rc1^b4GQBf2PN=138%%qOl`3fbv?KeMLDnq`jKuHVeA*~gXFAA)b(D$)K z?7Rq85~gie^GLfRB^#jn(Zi$kTE@;4Nz#HqJwc2_)4dN;Xg_K?b9J!pKTLp;T=kKW z=-zqSb9N^9N_zD$N+M&vz?}@HNHcC2%nX!o;H7Pf!mPJFYWCcnIV1f7um4W{Y^BJO z`uKqF`?;KOLz~aXw&Mckk_Geel|D3I7eT(^rCz?k7%D~LT2xjSULtL3;3qkXWgexl zAX*3u?34c&48W>VFUli#mNAkOuJTy$=)}?Z{+}v2vM+beyz*(g)*RDc@y3L0-%j68 z9B9QKogmu2a?aK}_ehZiQ<c)jLWdU~nH2eHebw63cJ)#X|!c^q?3>Y-%wCRUe;zFWr2ZmQq-RCRu zKZ5P)&xe-m{K|qA)O7F9(m*zDZF39usGoUM>(~T{&mz~Xaq7kj)ax2ZV3H7Lu)5$PSFJ=RFw6#*{uh&BXiHTcL}qDEp$TI-%h2o}*GRbrW?B z^oc!o;e;ar-zO79nVNlg7H?uo#_E#tPVp^`r`M+Rv33`HQ%BJ~uPGZH=l1ohp>U1g z52g#4i=%S>xS!kb3xV@ntbu3JCW&=ps{7-GO9qlX7X%|)Y-F?56H$~} z)Z1A&1$;g%P*JjCmIZOAZ_O~PC84Rh@oN;WxfY&6wx7qV1QJn%W?sGu@}o4jVCgmYB@p2w~g&l||9JXKEE}9&MYV{s=UKQ28`fmh z+KPx3qUOlWEseyZWVoa;Ag*a>{eS}ayTU~Ir?E&{sX_JS9Ciz_k;V@;_U7f0>@jIr zXy|55qpP;AoTA`Yyc3;s<&4S{!|Q%JJiWfq7k3`W0j7z@@ACNUy$uo-$j^vAxZ27K z`^F}dhz9gluR}!oVk1#8WQY}*Yc%3$Blb|?I^7_XeumTR`S=flZh;eA(S@H44*hS2 z2uWWiDfMFi9=fLG^zFjXQ1{24NYdk(PFB3?qw5&;aKMN~i*m8+iSU*_C$@B>w>V2GNd*T|Ko3v)O*1vVv(jGk5xWE`02( zztjr~CE>(P9aPF*K^mE~aNJ-R>N72hdb!_U=3Cvt`6Lk-e@x8iUaH4H9C%6~#Aq`k z4h`4dy$VJiczSDJ{7O8JBy*}v@k2fM65llQD&}Dyt-toU;=(Bf{^Ay}5IN=l7 zNTX%IZW&4CXlShrwZQd~WGqAZlX4}7-zBf6%8)F@ey)Eu*JMhbsvSsk>U)uXK#l_~ zdc{~ocHx#Hvis^qb%JjshCz|>Z}Jn5)-8&Fm|sjBLQu^i&Gz%mCNQwh_w(fIxjdgh zQ}Tg@K*q6(Fcs?G#BlY?dD+(f#^H?qxL0?W-!fw(odN~Uu3)Vuk|%ueSH)N^vEWyd z7>wg$_Ndkx9(S!b%2;CO32Ns2EE&$N9cgr`JD$~IlmVud+NU~1nrMnn9t4;b=VdM; z2aC_I=Z6iW4r9Pm&QgHZowhxA%UIU>jIn5@6!-^=hQ@W-|@v(aivU zrO+WF=U(|~%+~0h^i6eYq{NDDnfTr2>+6f*X!x@rI$}kGG!84{uZJC;@XPs7NEEyN z=0P`Mm%7*86Q}hKnlFHu>|oye_%-14)2Hie6qZv5Y!9Dn0RXzZpNl!h&}&~3Vr!Hl zKZ*sCgOJbiJ9;Ot{TQ_U>Exe1G?aCYWh2=0o$L2$^ zoV9oPpv6Vdh3zoCE0eG|)$&Qhy~MZKFe_$WsdO5y&^l-_EM)Ny6!+2)YR=D`ppy=i zZ%9^jBVY=4RT;8^wh}Y92}0fErIvua*a3p#P;qKQ8OV&)=7z+4-sqndp^xZ^Ls` zFaA`s4#8DZUf^`79*3Nzk@V|VSbLpMvsXo zl8UZ33`sEDH;-qjGvo#8Obr-rzl&Paj(fHBR%}peFgad)QT6q0JWFvH+hWwtKylz(0P@b5$!hHttG-BZ*+dr|!&K{-ue>oP zpOe-!)4sqLlZL)0oD{|L&1y^DTAhQV%J)Jm!_q5>l3nJLdyCR@2cjGo!!*z%K}i`W z+!?dl&~cdd9#O`sLT1^gu&uDnz2cx>#hFKYna-}6C(KzFpJ~n%vaZ9jd`N~5P%a}&?($;p%jP&v;Y@Cu@52h;mps0UK)(y^f0uydNwMU~ zDCWu9~GrRm|74$=8DB>y+f{4dol`=Nmx^Ojrs`6${L5 z3gDK|0_&0j+o1yc{Q^fwp)*UNi(;XhP2neKp&TUo^HAZ}{X!o|kzaG(5q(jRO;HH6 zC``8~u%sw*zbG0~96OXB!BU)PQ=9}XPFV^_9V*V)FU~>`w!o6_iY56rCC)4*g(W4W zLnY;3@;mlQs#!{F6-#*)v+JRyO(mr*kaw;7r5%v6e5m&KeUBeDW&O~y!IHA!p|a8a zvT;cHBun|UV)?91`8>3Iv7~%?sC;$5{MS$!3If);#@@22*nw8;l~f!IRUGYCoIolO zAoPV|P+k6Ql~6wF>3H1NcQJd5L~&2peO#3abSh2LoRHjI|nH zsrtEXHBopqNoh6Na5cq2H5En;4QmaZQVoM`&5Q6F=F%G0;TrPgD$Zf-ttEQ)&sA~F z^e3HF2gcaj>eyS7*b*3Z8`O0&N_Dcfb+5zg6iVxqhU-)g>eMjm->}xdRjSvtt=9^# z*D0;n8?HAvs5e@!lfhhdQiuxN~?Sk|T(k;V;m#080lmuU@E-wi^) z)MB(?i;FbQNn*`#VNK#cswoTei;H zK8JWakg#Wcn`b6kzu7iSVYJsE7umN|ZA)UiDq&5kV{LG?-w$^LvtaL*wy#NIZ=Vt) zBmc|Dd4}|a#I}fpj^u=7h*bFZwpwIl6ciKy0Dy{$3IqZ{AP^cF8W;>lM@NT1AQ%`J zn3$MYSXkKD*f=;ixVX5_o;}0E!^6kNCm>Bjbw~FPNB^n3tIk~vFUcP+E&CSij!^6wV%g4vZ&(AL)ARs6xC?q5#EG#S{A|fg(Dkdf-E-o%1 zAt5a-BPS=PprD|vtgNc4rlIjxQ}eyHj;_9ep|SA?Q&V#@b4zmzYYWSNVryY)Z*Jsd zuJ_Sg*Tr1N)m+!jLeI_8(AC=1)z;G0&eFxf%Gue<$;Haa!^-iim4mO9eSnpHkd-R6+JmXL$CkmJsf^Pb>~A0d~0p;yDvH{*%7)2VlJS$7NH@0SbjewN+- zth)JGcm1>R>SxpC&z95G_T!bV{pH@x<-xV3(ba|VmAQ$f`KiT)>G}Dox%sK7x#{7V znck_{rt!JTk%gk6#oU3V)V`I3AFI(lKf}A%!@4&kf9%E#943vOX3d_LAkf?2SFpY7 zu9KU=%iGD@yZMK^mB+g^_}v!#ZV!HY1iwCk|2c!7|A8M}!*}oCzaQYg9^uRIzgdC9 zf5PGGaQGG+z6XaN!Qtm{`0c;2oc|-`{MXeJ_b4|Qj`WC5&UBj96#&L((I2SF=?TH5 zlcSec|HsHtmUmw3Ll`+0huZ3Yjhv_0%cPoor3hA|q4dECBT+H6Om$X;+8t#dcj{Zy zq-|2AEO~>P`&yN3mK=rexp_c^bV)Xbt36S((oxFp+*`xRh>wK+F>++W zDOH;5_NI&8mKu&W*B{JRnGR>Fv@{$oqlJ-(@{VS|)Bxc#^Dx;>N&JN2Fl%9t5?9NN zMtoJg9M@))e+uREf4_W3bC`t)qG)(f*-9@!VbUdUr;CX5s0uq^NTuR9d<&qxyt z{SWE|$e4#;?vT4qy|JWlUz$xK59|#4r0(3m7`hxS31Z%ic|~ZAFmf1+H{+D~_cr6z z<(Rh;-o3ZpO4PO}X0SSIeI^Z_5uI6(aNkUr=A(P&KJk|PjT!D6AuQTCSxOp$XmTq? zUNpDEn3xxaqUf*QdDaG^$ESj-Z?zPFXXiioL1!p?IiWvqchZcNn<1h0EM_4&)Ms@C zP&Z0mCHjp(mVJqDjP%1a@ZZFN7|&fepu76dNqC3xL9?<6QXgwvEmbGDwxV;L_7h^h zt32PFkx)bRd{NiMp*e&vEtHDS_enaw4_`;}&Zg{XM7LBbe;-;>3mnDcDE)YNX`5U0 zlY~)yoicpY@QH19#;B#DG>+v!9QdB^bSN!Y-B?VRfalYY0%OVVAw|~g*I2G4nr7Sd zGlj41ThD5&uztL&e2RF8W)Z30jAcPgKq^!`MA}eMu)AZOC}csO*_SZUJjCG$jF3rg zSfE9H|2|Oc56^@SiCs)SUD`?lOIYgOnWEf{o5cUt zCd5saNY4L%*QS3Lr~h1;82&%5O_Gw5Qc_ZqG71uM8shRgVu~gr%2q;ZuKaJjxiup> zw31nMvYB=BU+5Jx>Xk9*SF-BYa_Kkl=)-vRoA?Y{c#T?L8n>|OBpbe2m)yOu9nNdLyj+qO1pEtOsMQhvIC8;}NkPinkq%w;PDF?~8TpiT>Cg>D~9-9ZwTYduNu07tnz2clwN9V6 z%UX8G`{`7??ppENy=v2=X6tj^mS@A(*T!w{rfuKmZU5Hoz_#t+j-9aXoyZ?Mu>-pa zLwnywcE61rB#j;99c4|P6wI8K&Yx5*9@j1%*DoJ8E+4fl9ds`3^ewIp&o7S6 zOpZ?uPK^JU8ta-FZJQfuUK*@i?JHRC$@tazZL1@8yFGHZEo{Fn_^=&O5JOLT!Y=wF zu1Df;CsXd`a_)bY-ETGA@3-F{ci*4)-(3#hT~FNJOx@hhU*G@wbH91FJhC-f6Al zKi4M3bnU9O-hcURuqs-qD1_g(vOBppfbiQW+4j`(hm%Nky3-Y=b2{u?wv(+bYYN6w zR}N7x1R~$Iev^prPDf0Ff{Au@GiRjYWn}B45;b+p)tAbbYNOd~?bnydRp~UQ8hAb{ zU(h#O9Qs-`%RFQ6a>4)i`o)_zU;LjV)^(P~ZQM8j)iOcO-+dpcWDHq9e_R~;_Wzx}eOCa7*-weC$6AA6>R_ggQ2K9H8(~ZZMH^7IhQEGWAJgv$-Z`t^k%HSr z-z^pbaZ&J&BsV9epq(c4OD@m@|U z!e5aFi*c?+bxD0)@6G+6@8;~*+@6bbIGgE1zrN|^Do4Kw!`vls2~80AfA zT??gmZ~S&70+P>PWJ{fyO-e0xI;+1$ll?rQ%5Gwv$FBa&+$up10>w3gQ(^IrN;t(p z8Orm5c%Q#3)n1}yAa#`!w$4w|y;aM7U4Qw8zZV{0&T78zH^B>4WsRZjErH}y zD(njgc<s8B~%2r3kBI%PTUv1T7!rwaWJ|&A>6pN7E z*-pxs+oMS%^(z0*eb?O5Q$4cQy?iw4O!S7HCMaND`wLp#Qj%W1pZrk5Zw?` z9pD5|NK8uhKZS&p>_6wfokm1TMo2=2M?j2?Lx_p}90Q901Csz9f{%DatP#&3p2x)_ zB6vl0ij~L0_D~MVij*73~*UIy*T=8(BtknHNS< zFSNy(RE3!pgjl2nScP~w*k8V+=j5T|=to;Gk#b zq-Wt`V0}r?&P~t3&B)2~f|Hw>lbem}CC5K``H};X|2X7k=i=u0o0n{yT&$d2EF6e% zA{OjiT>qSd=nwxcUcTgf$&Cm%FW=wr@xA;{K^$`P@%{}j4>#{iZXT|G<^P=guM_yW z`S^MG_=WgIrTC@a$ZDAAd@wh*v@y4Had7?O=H=z?=lLbf@oT!VPnkhPt7U4xN6tWK zK~GXnNl`_8eRX+HP4*lte!VMUt2b+-uXJg!X>_EgXLzJ_cm_7IP&c|#F}_hbxmh#4 z-8j3`F~2>wxVgBpzO=Hoxbo|tAl6H(Yb(Dt|94i`wtlW}Z*1*u?;h+Q9-o|@pPXHs zo?o0^{FBSmi_6pVzd1X<_;-%a&Uenvx6dvPPA<+4FD`d4F1If(k1sASF8|4&i_5>c z{Bw14b9;Y(|JMqAct9-vWs4$?{(BYrkJ5uqE?<@X@3v@N(g)ENZN9GlZ*=IUhf3;y z(4jSm(!=#%>CnRQEXe=}#nQ*r$?x)oLi$5>#Rxj|yJCi7eTilP9z)d1P<`oqr7_=7 z?fb~0#agTB5`*D}@?``a+N=z{ELm;wxY%DE7I2&kBYgZrp$w~9?+L|cH5`Fe|L%{e zHhjQ%S@X9o63MfBQ@b;s{U2@7xZhJIqAmI(HAVnz`KK*{xh!94#nv4E>cn_DB5#GA z{T_&C?a0vGINzCghF!ROn%RoDUCH{_SX;~W$yyIQoJy^|_4ZHNSpcdRbPN=KaR|m+5D(KCjahQ0InR<`oHMVAYzN6^yo{FFc3_5G)zI~--QWMEEz&WGR(!uZ77jThO!MV?Pm=BjS*)dt zR{2YZ8V56PC!2k1%1gm)2AE27%b9JZHJi(>Na^Mx=unUC;+;&dtIvh0b`4>4>49U6 zFJy126UM)J^Y8C|kC9{9%QJ6|-<7%r>+Tj*SZhw^gMP^D73F=i*)J|S)=}Xj>icfx z0uT5oY%E$$LouW#o{jfzCvbM6W{A14Od6xK_#Zm--kiH`L|TdS#hk`)kS}Sk zZCcHgylr(>IX6Z{ZB;I7C0dxU342j`H-x>e>LY|@UfA}e?Pk05B&aq$4#L_~L8}s0 zT;!iqx?~}2ZoVpaeZ&H`!O%f2&Btg$;9C!-e(br}&GpdqVrm$$~Ly&Va$PTu2SgxilN+LWROa z19HtYmn+Webdpz(s-o%(J0F!}L_2e9AOXGHFbIpfL}<+rRn6h~D7h|jI6R=KD4l0~ zb)n{Zgyo=Sh--D_W9^!Bp)_J+=WC9pjKOq`6ShHDIxLpD2*F{NjSsA9-H;2wo9B9* z^L$p%g4l5v&97Nvnx9R5gbu9MwPo`bx>ByMur@w?oFLn0UuO@XYNtLAJ7K?E-(vdp zusNgU_%*IBubZ0n-6x*#E=tB849*5U+uNHIwcUEj)^Faz`^8j^!Uu^#SS^Ju=XXX@ zbuusrD?ZA?phg3={^go4yIu@Ofm3H2NtNF)ekQ9OO$=)Dp|4m~_H*oAh_&`Qm6%l* z7jb{~E)55f$25>NA_v;PNK43sfQG_8wUHt&mD86bUTf#@Bl(xf!0G7-tF^0HKBK=e z#?$>JaXi`n^BuDH8S7Y8pu8;05`-J`J8^X{BW~v=C)GV2_&fDX3uw^t(`*Sghfb8{vV1upEtxvahjP4 zScLW{>Ym3D;k_5=ZG`HoM-mpDs`CYJwSX2Ko;!QSh+uZVDod$=6ouwG7ij-rsi5W7 zIh<#P-QaNUb4CD2eg_N9JhNyu$Hs}q`e+eg(Z{1u z5);G`XadoZl2J~*NKZWc!93O92F(9JNDa{o*i^{TB;2Gdhr8x-nCYZ@V1_?e?2Sk} zY#cV+I7!M$op>4v9RZ?qrF0=>qA0z=MB%scL$mwM8&Dt+rdmVr36o}{IcGFHZaS^P zs*jGyEZjJ|E`2wmSosB-@XBY$44OEinv!)64CZH96_>A{4^^vqqx5GTLyF9Gwba=y zlodl!=(sEeXqMNHBU)MWR}%JG6}m@KoFYhg^O>chj_p&LJC|QS)6xKq#>7o~(u`rF zX>E^QR(Qy!@>=nS>rO~Nhx=QK)(f;dv`!b6jabT-aA7l%Y6{2$cP%^TX6BEk!f$&D zr8a3sK$Z)KczQ5_NK$+y@MUn<`rH#QBkJ{v^d>lW(ypJ6=S*zkUyE@l>Y$ zr9;C9HH0>*()X0DN)|}Q+ox)?{?eiMOnR<(m)#JRy&`g9CFmG#JUN066|kMQ_}KqW zgwcB1yn3qW=SbM{r=6fp87TzFRfwQN6$Za3t4(ngrwQ)8yHBM_l2do*HaPe|)-uW= z?V9)5eqa0XZV?sTU8XD`<5By53Bi*$G>#rQc-}9sVK>4WSE;<%eo*GS*n!JJVzEG$_?TR=Xr-WRH8 zlU!aC&wbdq`726TmpU;W7*1rEZ;npGkfuav{51l|^mqfEn4*nwpdKyjiDanugc+6iW-1{jA1df$Y&^n;{M z(R8lSq&h)x+<`zSEHrB;P~8fkapSM44bmzCY4xKr;)dAtqw-9+g~kBH)Pr4L1e*=G z+ZF{oCA(WP0rUz(tOi2Dxe$**HQG>1;*fw&s4pzM73MCr29T5t4L?PbTmwkOghnJs z49R0OHgrR=yzGHNZH`KOxjz!8okC2#_1nU3Re_I)quIHlkL05-h{Np`!r?d3Ca)tpZ_rRkA_ia);FK72d3QA!KmrCp zz;D>r0PK`V%f?8p5b#gpaM_rk4B~K|0VJd3Sejyxc5;wqwp%C{s!Mik>J2LMDI8Tt zFpg9RO*b^k=rvT|D%uJb{cr;{UV}D(Lu`vej(4F|1M#j*2`*g09?7wuV36=&w3kQJ zJ9Ln(dhppz0@7ll;b%9XP6X(43`FOfMU$(!B|yx{PtX|P924ZM9wcTANc3=1myIZEDHS4(BulcLp z0L-aTXw^Xy)M4TiAT8p!@Vz*#YgDQ*H{!5Z9m`~$7a3dNc;nqTK6pwjRLDJXG1V$G z(eoy1XCcK5@fJuz-HI}g7D8@|+!P0)B~2k^gTWOkiCT?`bxm3IIuVUJ?#(3G=AZqY z5wqJ*0d%MSYJw;dYXBi!G(u~4;#<^M=6D+BxGKlL!EY`g# znPd;Z0u9wEj6Z1#4m3{GZcJfUNGRS7-b;aAfzfIPf=(1NU17m>@>#VWi8r59Uk_y| zLIX{1vrJ!Pt2akP?Z#l924GHro?8bk4MaxYhJ77~4JXN133a0&&HXBvLtB!;*qoD~ zlexBtve6VB(3yHJ6uuo6eqEGVZIvodnkdoiwjY-1&k_v}fQB@}@hn)Xch^ zRLKuB%#URsKy*`W!4=pPlEJcAfuB~xBH}}~46ni44eSVuv{Fy!(yplIhSd;RKP z2I|3Zm|&r{UxQm<5%)e}_psD?Se!`H0b0{HJ&%O6rqq_NNy|-sFCf`u&AB4Yd3wzS zp3OyR%_S|(Wy{SK_svygEj9lG9ol-()Vutt`(JeEP)qB`a_iWA>jYWblt|mma`O+k zXWKiiwxyP~mF2dd_ibxr?HeNPW8rPv7;c+s?fWh5hs*89_wA>{?K>hJ%0&OBLt8o? zO4~2*JCG+jP((XX^*cdconXw)%kWOjl}_x3PF(V?{?g71)_>EXBb@|Z?PL#K)a2c? zqTRF0UE50COzGV$t=(*PZH!)R?BqS%qCLD`U7VObeCa*Htv#X-?E?C(V&uKjqP?#k zS|yZQYec{wgut>Zy{Zqrue^FQ$y#hq0Rg9I0jB_|HE@F-x*THP;sGi*HAH<4B|fGl z88^-Xv)M2`$O^YvJtpXdQ(x6GD%Antqi>7aX`%i;P)#(jL7>;_51uEnw2{HoiO_hNBWhx`m8bgQnCTA)DYFGzVd_qR7{{# zc7Li@bIK{e7^yjwYq(JlJuqURxpf#;I*^3XBH7uSoAx6Pv#*Y|&n#l7Ds8YZe8gLS zs6e!DfDJN!*sL-!)Yj5pf&sL38bs`|2pSpQ5FO(<9FE3l5kE!yevc-uK9Wt=uOrx( zorX?x+jlyG8(G zNi^uxX6v*lJ7gQPsgrFaM`@(~9x-8Jg3TV)Q53QL20ecS)e;lvLOyC1G0roJWQ+-v zUmYCu>I-%18zG-KXPbDtI*VmLlT9{PIz0MZrLSgWN@-%qJ7QFAViXoJs&YEFblCs- zuwPiEPkdrDM{nM;Y&0dN{}cO^m)Fz`8yNO5r9!#B=KJk8Zg6C)=K79@^ve^!+*_~~A9QTvk(`Vpf@QG8pjo8uWaeghj5b!9~X~yodscyma{h>i=kI#pz})pR6?4((4WSmSV0Iz(<-a+xKqPN z%RS|zEMNQU5sVBq8p&g|W5zPK*a~2*uSs-zHgc65`^QowtmYog#yH|9VuT@ki(L8K zjTriOgI}};L;EVr&+MmosRxwBei!Kd;!vG6F&HiLTx%bMall~9X)mx5Uv@TsWY$b|)U|WMlJYl?_qP5K zstP-5KKUFv)~tfqTz14PkIE3dplqa6X_~=c#W7>S1*9McpXs$K_Jt|{er+q84y~ltO)`YQL8$Ng4Iz+<^0%o9mRGqD&m@9;j6?^|g z%b0jr8Mm`T)d5eQ9`2Npt#hdKtDjagP^`zPOjBU3(nKB#sr=%L?9WkJzbea>m_Yr8 zy?XLc{gG=e1HSiDyeFr8;d3sk3%tW~HP#D$p9_%kg=+YP=&y_0(hG@$ z3j`f{j&aG+viK_NQgOU3-1w5?0Hj3qM+2wLVeOK=1@IO@hx)XN82=#)M^f+jgP=nj z4?y6xKcwMEn7G?!zpfmjn*%zLETgaHO0GdL-j&r5r<|y#n;5FwIEmW?quXyjx5-(zssE-!v#IWKCGPT!?h1VFin8uXI_}D{ z?jTh+vr9MS|BrO2#BC+ceGC-IhU#G;>tU$lVdU4t82ssBg6gr>5n+m!_j5ijWIZl* zJg)qD{Q2}aB5^(I__$^S-}Zs;X2JJ6;6t47-&Do(*S0ONWXF62IAa1x3)Ib)nRq{}&y)rTC5Apgj;B9~mWr&;Dm` z%G({)OtG(szeewN)pKPd< zs1Zk)=7q&rhL{f=M4@|WHI=WDC6|GqL+8p3I)W+muI!fT?SJ)Uc=A~MUv%il?a>U0 z5K4nP*ZtXYqy9{Td-vnjHXk%9!v~M^tT-hRz=`fAdjlhPTs%i zP_gUH+W$?5)~Uu3N*1lTMNDn3Dz(X;4DCy9DV@ zkx)+JWu=X<|6hihD1)a5^GjprWExW{wf z+`3MaCe^ww3&85om+P6;u+^d5daut{tM%M}An@pWBGK09zr_;gG4LTUtugSU@Z~WK zpv$T;47%6JV-&)@R$~+UpZ(}QzE}>Ec=U2L#_Z$E^<=+CuAAA}A6>VLyB@jiR7-fH>+=Oa!8c#mvzy+0+wT%||9-ySP;tVfT~s_f?oyo zx#w+wZo>1JcmnFn-EM&CRP&hp4C*HcGQ{@b5v9f-_LmSf#EGgArR5q9Q1CXy&Eyed zR38r1Xg9>KtPx{%9uCq284-5yh_goz2b+l+5s%l1b5#w8*Z~g_R(T}&CWb>@+KtFh zYa||>4Trgdj42U#B}MQ@!u>>zsqtzh#koe_g?Sr;A-q!3>LU>`?Z&j6wNmoVBkz+z zCiG&w(#p{zk=ddqjB2&g>Qy6A#oi{&CcHA*6C=^p?Ix^FwK7l7Mq-*krffb}yt0P) zqp@A0rtDF*vZh?4ABMb5IWl?WEY(NjCfiN9Dr@Czok!yrKxRB0yz&mwqY3MxW_;td z^3GMGiNNYmfmL1w*NM@j^LDdGr?m=i&PJ1efXsyu_!PbH$5N2Q%ti3(6n(kIQn7r@ zMIn4jf$C#v1Rdt$oOMc}&SU8m2o{oJe995gV;OW}7Sd{U%F$J0nfH7wWKH-~;wHwj zxH~N5o$6GQ&VbdS2$qUIe5z^q<2e#ymda6es##p)xe7j(s+oLhdFtbN8XcDEm33-G z&g1!d2v(XMeClP<;{|47R@&or>Qza{1TCMt`4Y^+WApUg~5R8@D_*gDlenLnGTZbGoN_u!P$`{4( zfXgN}-;?7!2-}!&tQ&J;l`9U?-Mwn7pNrabZhWE}8|cz7{W|yM(3AQ7DuMC77o=ZvnFj=J%04*!hPdz97pi1j~(}_O|RBJHAub%3-=ld+!M8K$*cyg+fyYpG7Q-cxt z`Bax6qC>ckfH5_}bhm`KLqt@AF)jCWkAkm5WTt=#qsDZvMyEq`WrGQ;%XFU};`7)J z0aNyv>3%cu=W*i=rd-w219ra86IKPx_<*F1OXu^X(+0Cg=hH*(z=RNlhvp&#Gf+Qq z$27b~b8+sO;V@sv49G(ZX^okYm`=wm&PEG)mzmLIM5i3FhnC7QGh^A}PI+pLmg?0r zp;N2`V}lCKtf6kfRv1cjGPRJoKXUCGa4EQ1c*Nasb?VR z45XZaeDhx>n{U!%B0#|T@nca@Q86(wAm}V1At5O#3B;YHrKM$LWPs4KoSd9I5PVip zP*hY@Qc_X|63{9ts;a7LKn_}6T|+}dQ&Uq*OG{f@`^l3hIyySKy1GxFKGoCH)7RHG zFfcGQG_PEiH$2NDQ{}&7#JEIo1C4RU6}dwd3JtjZebbdPk#ci2w?TU1VEE} zVQKyI^2YM&=IX}w#@6ok?*8unA<)X+2fE$=>o`0<`5PRaoE)8;{sOEWehT0W!0Gw< z`IoO>FJQg!e{O{TIg$1MrSE=k;U6UbLwZcIbm_5V0K4T}cWHVTkZcYll`4ZJn^p33 zdj8PDmwSise2dh)^rnSx5X=IXQUluPF`ZN7XHp>h)9J6caR2gP! z|2f%Q^L%@LpuT#4q4_Nuh5XMJzMi~5G>gttxhGK{AH-M=PnBE2TKF#2`9@c(t*;cB zP7`WPGcN{jTKE$3oK~0P$Dl*3{>rBx0lAJyzv%Jglw0>@<|bXZC+Mbyuc^g&wkb-i zfXYt)vxRSI5livLc~cb4|2jR!FcGo%5`y1O5p9vOwEhK@Gi5Hb-=n8JRxp zrKf&(oou$+)KrXsSK@`TD4OQ3M(aF{LUmN>^dI-BaQ^8GuDPKNaa z^1+Dr@kUQ;z=^NUHqG3qmjdX7-L5P)QvGf5%_H7og3Qu@7QTg%bJ+*A$Go*Xn^_6Y zd6RK8@{xC0eOzHJe23H3MBGhP%eZFpL{e7s`s3I;w<}5xA&XikeCmeK?K$ZEy#4FCC~Mp)mR&`B}hNF;b>SNy5s5< z9Cpr|^dELnx=%of!7;K9-SpXWA9`rFL9KmkUChV*9Fx|^13c>m$AbdrJI6ypNGvB% zQ39ZaFG*K;G9t^pdorrX{Yh<1Rm0|VT+^)ZbVA2v_jFRzGwSl8ED~uU5V7V zI$4f3EBd;Y;8Mi1mgL8Jv5^ro&$*G6U39TkP;L8QtEh|h+fIc9rrU1KdeOH%yM@7T z`^`xAUX6Xkvb#L&rgMLO*vq|td0h7Z>-))=hG5;vgjw{-IgM~Q2Oh|(Nw@BHHzOX| zdSV8rfOL^sP_z%c(()-0xx0mXElS=}0uAOz^sP8?igsXuR8)Yt-nOtpT7YBY<25nT>ev+bzD5d_Avef;dIqkHV?*in5(=b!%I~Y5|1J(P} zP)l<Vkc4-_v>Q=#S{8yDu2}4XZ+8J7sBS z!gKpg5%0tf24}6uG7MN64lqsh)2@F^8?Y_HiJwPbXUb(5bifRWUz1(`49y*Mh7V2L z3pSfyWEgTC!C*d9?l=29+RiY}a*?macVH-z4ij!ut}UWyLF2cco3rlh4Hqaq_ACnX{yA^b~_0-}PD z;4Tgx3JMM)!W|F@`}R)&U&DZafP;v17a0Zb&RsHmLTVxsFewEcB@H7b4a0v3DjEiA z01yTm1_l~t2Jn3b2nPe*14g?0%=B#c81Hc~-{Ylc5(3jd1~Z6LGssdisZz7*Qn8v- zu|A_>aiwDPrKAfdr-^|998EzVL(LUMuNcXo7Dca_$e@`9Q7QpTR#S^KQVF+FiF8tl z^;5}=QYlPPtIdH8*TBY`5c54+yF)ssGsaivj2>T^-(Ii=T(X5;v4vgT4~K#MpKw3y z`~A?f`=R^yL$~gS%(MDIS-o4?T#E&qQzaatG;H7MTe=upI2c>ln3!9dnwwi#nA%zx zI#@ov!E-C!UvRe8ePgTRYW2j;Li4q$${QnvH+s_UI-(xx0$$1-fvWezwOFE_GA9@_ zq?prZ+0f=cgA_Z0%U!_bFK8=W>8oBd)_5@0`!F{JGqy$0bwts1#xiurv-Ktk4y39M zq#Ho9t;Y+Ur^;NX%HB+rz8xwK=q(Ix$quee4$V&rNs5d75EmPhkn$lV>wQ{bXhuay zPHj+rlW$SCXT^wn<%D5g+D`rFohxe%z#WnbCD<2>DF%{K^mDyL`qBst^Rive!ZP~%J6J)wI=^ zBp=aXZ>L}i<8{eV)2PqraBD~XO-PV}sRn;{A-0q?S-!FEbbE?7Yx@|fXwC?y>B{6L zBv@EzIDVm^rIEjJ9TL2ndDc_&?Q*oM{`-x>c<>NciK0zQbn)K~3I20FeK}O%>>omc zxhvsx9RK)s3Q!n-2noUzMpo_`kOkaai?@d<49AJzLxP*@$sUM|8!6uSmVm;b&D%%| z{uL68RJYvBj5W=JDU7Yn>=a+dt)C&mth}wff~u{pd_Z9^ZWmMlYND`aEpNN1;cRQW zxEYaYr=%Uw_7zGEd=-fL8ZP*gbhwZq4!ssA00~7|S%MPG0{Fslr z!7@4yoqP#AQQEvSIPAnZ>86h;fC>j9uJQjsMj0flkk zO)m>5jP6$aIzV9rr=pty3IhlU@&F3MrMrzBrZ9xi(*T9hPEC9WD2z0mnC^C3zQX{; z;56K9$qq*C!$8gcH2muB4p!I0AblV(*d^J?9(NdQE}Kp~+1<%icNk(HoKCtf*~K?= z82X|=o&3DJ>(Rwwm z?|Sq;1wE5qLaJ9e?kF-xHj`1Kr&qo1D5@klli5tFPkZJlx~4yq)upHJ>BUh@GkO-A zpH#mg@o{XoY!-V=ProVO@ds#d7Du+!fTi|v+*E%SS9Q;Tt?P08B6>DYm(-vG5E9&w z&E}iz8Fa2YPCN+C7Fd@Wa-BI&`f}Bu{ph@B=*`7(G8{&Z5Rx?1i})l3SuRI}pcm@P zcan-7k|RndJshZgl14a?BhKAB9O`H{>$MdvL^E3zY z)T?{Pi(F6h^)d1_yQC+|;!X?98s5MP3Rm#D^>1;;i zzjP|L4sX>v2T%9bag{1VudI`J_%$Hmo)}IZJCR$xzED)@G6x+ELqhl(1WMvyh z^NBZWe`@*Dv|XJ$`I?M(qA~lv+Zd#7gQ+w>S7nad#CY`SvPx+b1}3ST6jXmP=LDxO9~;Pt2I-9xC6IS*kXpnWn=dl-dTW}{4aK@8dV z^=!6|eT+*Ttcm=Xq4CFRu`bDF#%+m!lJVUlyk?KN_6bj9`LbQBw(ShCy#cye><+0R z8e|alGb)es{or(OZ)X2nZ4N0S&dH)6n)R9z7fpxvfhj(eU8$H7$a!}ig8k?@J)3pk zjCk+ELB>8-Ve**cT-o&nX>xf_OZgAjM9Iz>LHSTn3}c^>21CI_O%s@P1Fi3Mt^AOa zDN9U?tVv&OgPG9l${Z!12d_TSYUAobS#&D2bZ7KNar+{rE%`VwkzYxji3flqikH#a#TFH8aWV zo0JoolR`1cX9PiRX(2)3yTl|*$;aRNth=4F?|ob>x*NTv9O(MqVbG2-glxvkPuZ_p z{ycBNZBTP)pL7rt((~w(lu@yp!ngQcEi|${pY`3~_h{3N-!A&XObYzo3u*T%FdV9v z)V=ptoMSEd(&PVwFEUgSfz`tRo#jnIl>~EUTg)`-M}o&eEFnI0&!6G* zooU>3YV>}5wJ^0g`UQlB|0bu0*{GqDyk0~4l~t;Yw|dy4^JwRhyY#!-pYuO_QDT3S zy!w6Si=gL3fD;nw+Uqd_RkA7_GE?)6&ew+$kWvj@Z#+Y9AFBux?agdAlQoMn2*^ep zNfi!3f)aEw38ocyU=>G@Xf_MteucsFA|%R2T1eYc5lJ;1B%y!XF&d=nVPHN1_BU~m zihBJO;l(V$v(oby>JfTMB_NXni(~}zS8A`7s9!vxblZ$_pm_mLYx?}b`rFWs7nbYb zdlt#(PxYNXXM2c8={c8}s^GX_b33XYy-gl>;^jtC@UTbMcuAOJ!+Qqo z>U^!??|U@|F{;6TuE+DrnA^5X-P_q;(_#wjCSl)@`C1(B4e&pnbM^Bv1O%ltkV}c) zthlCGwTo^zViK~Gr$0zH+{nS+7o6k9q~W2F?TkHX^tStjk64i0h+Z(4fl&AJZnXe9 zeOLD=Jx91;IR^yg8kHybNZoiL&*+{VIU&8G1xaHEb(lXHd*P^1rr%xZPe7>Crlw2CB@R-DdsXHFzv+Y|;sH{H)5_sOm`4mU^UygXuozocr4Qd#U7<~VWnF05^PwVd=XCs7(YdNF@ zJT$RmVt`EYn5dl@JLn@lMufB?L;5#-i?hw<)`GJTjd}5roGHCdzt}t#(tieZk~%;j zT(cdX^cSwZ{ah=CMBG@XqS^=Oro;(;w1!<1)13vR=j|p~U6X#uZG*6@85>I{gsN8(*OnU-dG+ z1_%k(#y3pIfBYKXOq9?%O)K1tHt&Ijz?M*427)eP41P@*vcT%81r0A^>_Aa^HyQh{ zP!i`D66q8Z=EJdiJ|q^DB^E9sZG1?2bAW{0Oe>Ls*3*o-GEG0rknE_OeB49-MTi{ zx5qfOM^P+G%=Ad-+rl`aMB60-RePZGGoq+OAazh?Odg=BZh?hM&_=PbqU_=E`Lc|) zvrJvH%mcFo?U9LQlGR&N$z9>Oh|xL^623#hPZ`r)T;cEcCQfQWo=c;%6K7vB(&eyQ zV&s%q4FsUJHYZM`pbA5?hfuH#w$fkrChmu$xTt5(E20|q!cjXQTj$9T6GQB0(zycB zcd*fr7Qrr*81wd6fgW&=Q;_PLu>!X+t}Gy2ap*e-sPC{rFPn1<55SW8=vp(#$cms^ zDEd4cR;0(vfzA99eK;`>w80t7IyQ{+MP#}Zq!7!r-A!=kCdLI@e*ad%v#rcy>?{Q0 zy!1GkS%&lnTj1=iyun_~Bsd5uD%Nd9NG2bI(lYT|UG5MgoQo;ilPz%lVnP~a;k-UZ z$^qC}F^y~{U5qm4z@vl$HNSwZNX`qX#1&QLsECR>&juLmgPKkdbXC06Ta1KOVjBp# zy^TdV3-0W}Owfm@9H7sapkmKr61FZ;UM6jA zB6;Y;oz+!1Y!zf-L!1{AE=x+ja+hncmt??IjUHsP=jUU`qbiN$oWa23jn#eWOxgDmLYZoL{6;X_qJ{gFd@rth<)KC8+TrPUE-$a}n3dDd$(|qj#5}<8LQR z5?8y;R$B8HGkz=hK@54lP30aWbL$)UEm~dVHu!M~+Td2gVR%k$U4B?!RRmgX2~#~| zU+utVt|E2yL+P5-*@SeNI%S7CvWU9sin=Ex+3#f_j}_6BuZTt2GXU5s*1)}y_KJyKwc^)?&_mp2i0?4G}iZ3slw$? zyVYYeH7JNQ%=cAED<)pLLH6pY4xY#y&DNcMtCOTV)X6G`C%fuv6>3 zRVRl7a*%=3Icg@xX{q37Iq7Tp{-lCPr+|a0jrJA1L4JKZeo^ymE?B35x1eos8dYHy zEFO-QX;qivT6UOM7n)x^64cgeU!=_sdP$ji#)cwq2;l#e9DE2R z#8`p$aF0EZy6rI_7j1|;VC2iDcR@9ST3CT8m2N3$R|AX1==>PF7r6&;!ls)acf^pdPJ*TId1!L5eDow>oi%fSQEp(BBz z6P=;6{y}Mz!SjY8Ac}Q$IRy88=m#$pqzgrS4Mk3bqBcU&KS43SL$MoqzSp(iv0=Qc zJDlS%{EWTeP-vJigpL@4j_Ug`WnsfJ_7Skn6&?L2S|&0^i;EF9vQhSjqXZW+EZ@Q6 z9%$Y6{TD)2QTd|+a+zspiEh%65Z7#V%hDtLdi@V*J^H1k1(ku!iBbL@L`)=^F z)3a(3(?~lB-zlf*pe6Hg)m4e8+}m?q4Ab}Hup(II@AQrF>7*TePfU3@S%QX6me(r# zs{5n&ys|?@USr}9mKxgEkdV4L#j@sk#WB^iih_qt9M-d2uiNpTjy>GQ0B<*v4OY(p ze-R>sidn_v2GZ-tOlcm^-yIhJUMotOLx}mAWWJbmyX^8cJnx&&^2$g<+PSqCl}LN- zTx6eBl|gOK&_8S^)bW?d5~DpDC?hGF6y2-ke=}3-fv&Kd@Nln3DB+_ROKwwr1H*g+ z(;Jx&7zn;`J(2tcZwAuY>Q~hq#;%lG*Xdo+8K0~{1WKIdz;7Nk_2jqEhb}g*Ok~Pp zm9n8})wdOIPk-FT@X=Y;a@g3^9SeMzaY~662#1V>JyIxBV>Z7z%+!uKx3>Rnt!ib0 zHy_2RzD$W7)S#HgRj|tS2$C@0BZe`fAGa>^YD+hMt9h_wUU61ic^b!Ix@2WS&aIs; zygX_!v#q(3WxiWCbS*6mcH`+@8DxH^2(zW+sm#d7>SXyIx`bW%`pW*n zRlUJox4`P}_T{%__U40jeCK!Bt_s9^8%q?+w&z=SRgo^RU8%tUVgg zncR?AwUKv;5MK5!7+9r6cwB+XJoaDD@21#b6hfyd7to2Z4(gc>E*>3gxgLt?uU}bw zn%dpD1HW6Gu@?N@#_4;)xqStP$0I=D&0n9&P2uP(ST7?GXY%~+$ttW1{IFcyo?!wLgRAp6S>mW zF{{wV3w+}eVI&G~Hj#P%h@6;K)Uw+QSJ*Vn%}ww!{>{he%pQW@C*HID3<;Lj+ocu= zJ??MF(Z93DUWXFiUgIV>k8aM%;02@_?Pg2bRRcJ3y5vrALs8J9^j6}PkZffFNv zkl@`h_M4F4R?Q{5977Pt&yZjxR22vbE=)x}P`C~WMr>3(P-OcKhJ^&lj>9Qf4S$6M zLvWQ~A;D2(f=pOQa9363zkNt>oy9BKFyaFuhh34DIJqXS@S;sq{J`7Tx?Nh*iZ@r{ zmzp%rL=E;`Sbj{XI^hP8XML6ZG{jxpVW>xyzTN4Brb79b4x=9u-W?A-)aVmwl@WaC zOp^)KIUS#M_+&d}vaTz3#S>;`C+NGd9Bs5^`mk_LYQOO-ZcH^l`A0!UY61=Wd#_y9 ztBdUd%}5uzJbF{k#ohLX{Dxw>IwYiGTV*ykTQ%N`)HUn1Q1@D#VetpF5 ztxae|6jJXye?>}#b3Rb~hK@&sHR2YrNrMOuX+SG$WUAn6Aulk9BjxG@A0?avo8yGP z1>3Py*p3q6ZLN^_a>Kjo##4;f+A1QuJ7<_OIqlvlo)i)*F0DwmAgt~ZvK2UU{$mzQ z#=Q4k5NS!C3j|>Tg^VRSc6LxF?;vq*NvedG2bx)qJO#o*H*?&Q9R!NOkXacfZ=x5H{~}BshI39wAH7aH}!@JN}<} z8d!{od>?1f7@W(AY2U_6-!TyoHbM;rrN*Kdf8KtRD{i$>>T{c?g$_+)@V2;5+;~RZ zojJ*xHdSXoyHEufgG|tV`=BmT8U8U5)FC7ye_PfHzo1hl)4&pwRK}{JY{qGPrkHCPlE>_s!_1I-r>OODAoy0kgtJmjjB9(u zRB#?eYTX@bY^V1ri`}Ne`S0jfM(iV2{4aJo`Q*;tz9vy(=C7EVDtzc1?;Ny&LaQyx z2}9?_SLC--uRsp+tX zI*KkP038P$>->B|Xg4+y|I<#uOECADsXIgOJAoZT$N23{@g-&@DXcH;R*!Bm1m(PA zcPScje8c`#SxFfP31WF@7UxKLc_-SkQdFx|j2vx=sqyfE%PMCX`C82t-MrH+IL%eL z6W^_Qb=HxW<|Jnps1eY`(%hf$x0Hy((TWG7Rz^D)eTX*d`uw(?oY#w00Cm0fYSpNb zighkSm|9NNDsG5u_)Pa*?#lGX`dPC^Zrk|F#bEo>es!`6DPJbrEQDKAq3M3ixJt^} z&CoI8+}p8jZtwz^YD082x0%;0&G^vtX^5K4137VQ>U|W_7nA6EavRO8&`A4;rM$Xy z_ukQCFZU3AJ+C}{r+27)7=^A!%um)+chBu{W)(eRnHlDhsU}Y?9kK{(cnFqG3?Jj6 zzYmM^VPG)m7L-)SLMDW0T=8w}*sV$AD$bF`jSlK2C3?!1W9I!DI^{-j=4BGO(38wz z{-lCF-VlaBX|H+QZYGNDHGQ)e5@l_pZWNpiR`cia5`0NcfQ2n=H0XtYCEx0;r`<)C z(D2Gmp4?rxVT?OQm)cy*BQomY`WMt8Z>#yOXh+nS5f?j!fF z?~#KW$LEY5e68fLee#<43*1wq<~cRPS4Hi39d=q1!o%e&rW5rb~Q+q4(SS!m) zE9*(?Jy07PZrgou8#_na1JO1P)izG!HZI3DZtpgp$Tr@LHol5B{`NM3v9^aRZI4dc z1VQaWxb4E=b`g&D$D-|`s_kON?c$E@65j2Sk?m3$?a~$PGVSfMW9@P)?eZt>3ZM=} z+zushhcZWpifD(bYKNL}hq_~jhIfZ%WQSHphjvBBllBgsu@2ppj;ALbdZ12y+)e{< zry)nDk!Yu}YNv^Dr>SG7nRlmoWT!<&r)5Q_RePuPSf|ZOr|n6n9jMD5x9b_W%Ymco zxoDT8YL}C7m$PG+i+9(H$gYB4o*f|B zEP-2hgk(A*W&Q8m>J{+BfxFe+FB??a@9y6Z%^qaLsXW-Ft8&a&R+aaI0c) zyM1tHY;bpFaPMSrA2f7;J9G#hI^q~Q79BcK9Xd50I&&O4_a6EZIrKGS=%QliTl>)E z*wFWtp{tXjA0Q|k9`qIj3eO3>Ed~XtK@m)#h)z%>A1HDZ6eSaiS_wt#fTE8>F;=0N zr%)_}VQjqNJCI=<&f&Xa!?pMO!YCWw z=zYj2JLl*Fu~81SQBIRlE~im$pHZHuQQpi^zRFSlj!}W}(TA&}k4{Gg5yph@#)Khb zBAjE7#l}R{#>7m<#GS?@e8wcB#-uXGq$|f{I>uzj$K+PWcIODpK;Boajnd85e($(Bo-1ZiNy|o0gnZD7cTquZS0=_VZ*Xh2(auF z0^(gDK81*ki-e4agaQLHD*i8^pb?;=6QW@dVPFws;gI6slH(Fk;t^645YZ44g9%A~ z2N5Zlh!pZi5R*ZO$!GzPkkbN@EHX-Zaw>WXYKDJ>>&zAq+xibc1!klIGttm8L+Du< zn1DfN!2D}q=Ji7%VG$tt{a=#xHZn3YHa0dfF)=kYH8V3ahlQvtEG;d847jzmwT+F9 zt*xz{ot?eC{j+D!92^{;KY#A%=;-9+(_7I zym5DT_wexW^z`)d@_PIBt+%(gkB^V9udknG&C$M zEId5?-Me=Y5fSg-zmJTJjEahij*gCriHVH`S{NVV;^N}t;}a4R5)%`Xl9G~>lT%Vs zQd3jY($dn?(=#$MGBY!?va+(XvvYECa&vR@fFbw!`2__9g@uJhMMcHM#U&*rrKP21 zWo6~%6~ISjWn~pGJ*B$3rlzL0wzjUWuD-s$p`oF%vGL=_k4;TY&CSg%EiJ9Bt!-^> z?d|Oy9UYyWon2jB-QC?iJw3g>y?uRs{r&v|0|SGDgF{0@P$+bGcz9%FWOQ_NY;0_N ze0*YJVsdhFYHDhFdU|GNW_ETK$Zmc5^l5&6eqmu@aq%8TTd**ByFc5icr^XP!P_Vg zvYK4*tY$>l6|)EIvG~Y?*AExprjvc|xGfZ9=o^F+1<$r|Z|+tOdQ2c8eZQV}_7D6= zaM;d%$hWTwbSpKTB|uhJ*d;dkt#Al;k#64vC9kI`asu?k{4+goU(*xDP=KDWbmJfC z`A3Fc)05yQJ@1g-!6m1uL$`Ba-e$czLuULGw#t7`Y=rjeJbtxhd$0m4ZrY(41VEcely3at&)&)RPHaQOJPp509j{ z;lIFR!{Pl_IN^VlPvDE+qQ}?e6R4fIH?{McoPSY4(J_fIu}QG+lHJ7z$|n^-PJ%y| z&uf1EseE3O^Y_~Mud3$F&;R49Ny7-EB^?VL<2`0pVB#k?AOAz($rMmB{|g^U{WoJ~ z`E}t0>gIn~IDgg6|MJ3lT{mHc6R4Z8!g*aaf0oVblDV_H2N3e;=;-9^3}7QrCV_zS z-!SnXe+6Ua2e=<7m)t4s%>Xko{q@;Wg~$bPFN`)0DBAsRU&>kgA5ez{6EiqBAhUzJ z{J@-fxB)nZJyE0&F~4Lhr}MvKN0>ON4mFgI;~%z#c42zGUJwt#;qi1w2 zcwx`h>hZhG<%jYExGS{gsLHZ`?1H@CO6cC@v1c64-ibpe964^X=QDVe(nkQCr1AYp+5d2w;^_saDj z3Hi6*!`Rvhu$5HOp3(yy;VvUHG8}xX4>k(?!8%)7M*uE`wyOVqpnY~F;(AH1WZWGH zMsUUrh*;?jU)8pKMdXms@6Yi#u)dbfOwu0vku%r@$7?v{!Q+VA_CZTNkw0iz2Natr zYTy-b$$lrG`p|@|ASJ>>&(;R#K2ah9A#8~gth7R~C1evengga1uc@Vq>JA8OuT9(2dLi)pR-{3o@q zCGyEFVR(JG^1t1~1ngh}_Ag;#Vc)^Q#l+BXIF`YsA1I1Q|}0+JWt_&pZZ`}f!$+y~}ra{#ZFfsIVSHYS0aJxu>Y z?f=_uu&^uazbeGQ-LnoOXK zDn{s-15FcuO)aNgPTArqdoyr+JYTc?Z(l3RR2Ti>Ez!+u$UQ~ z+{5(OuayTIYM)0is$Pb$Hr_kkaw|3(%76Xs)870xqZgK-i@?{KwV@`t;*Tuf&a4)K z%mgU}o*tj){usS_cp-fCO4ls$%?}XhcVW9spWg{J#Jm z0qws49X{b7KtxCI3&eDUHz1)SB%vb$KuSjpfQ%jh2{}C}1q@`A48H)}vB{|zDF9Fd z0HnpwgXLN<0QYC$Bw=G&mEl| zonAOOzjStSedgk2_rk~F<=Yo8U%zyHgMkD%HtJ)*PgH6c)oG>^6>ET^nB}e z?STFAzX0b8aJ|C90KW?`y8x#vHag}*Y;638xWu^lr1*rCgv8Xuq_m`@^rYmBxxbK}o|~QlLq$O^UPy(zgxHXl#O}U)b z6?Xgfmtz9B45?s%$2!xBU@2;`y>4TvQ4AyP>el;>yi_#==zFd!(lXRqU*Tu*`0C{7Q8`qFZRkLbV!Bbs| zRQt8g)j1#1CJ0#@vr%~5UFfj#lBj(bb{7d>fX(}^Q^c+OC(KiC6Z@Tll+~wFaW~$T z(}$9G8-l7vWt9u$c|=gOd!o7e)i+X+IGT5`mGn!WPzBs^3)ezhlML`9=pg7M6ux!K z2fID}de#AKUBUamTUW3!)YSBI)&U6Le9;q`Hs?R{5|MI3e_4==8k`ima>$bu#vg}d z{Nk~f#)^xCYmBjrjKk!Lvw|goiK9wUG)*WM;>|II3bW~ZZbjU}fg^z(Q?$QueN55e z5zygXA3g*`^n@hzL?raYr1T_Y^rXL?Eu<8{*}_Op#RPzil9h~-jg0a>DJ458+^^d0;@oVMxMZM8atdfRx*ml*gQu*MgMS zl9bPil;4_^--cAcmQ28oOvs5s^c97qC#AG6m0SRod@!|Q7`4(nYL)jis!=p*F<`AE zh;9b0elDG15xq$ngLyTBRXw9^Gm~8lvt28*eH*iVD~o*#i(M0|UE@95dN!MCcIz@u z%K{#YjE81%k4-`)OatZ2d{ivl)h%9YTe|95x)@nKH@CL`E1Uk8OApxeH!i)~A6)wX zyiE^S^pP-g9&qM?TT5bMQff*{Mp{}{dPdIA0|$266z1d<<>VIS<`w7Vm*nS{78H~f z7Q*f?CBXfqw5qJEy1cxmqN28VSI+ z49)fR&A@G?p|Q2GvGwD}HULdc?aj>{EiIj`tzB(x0J_`SyW88lJ34wgJA1midb_*( zdV2bMdk6aZ27kNFz#MzPs|Q?qz@NW%=V2zpwZrh6Ex-2DlLrj>UBF)e42EmV?-(%s zPJpxO46qu2^Xl6B`(4BQJH7+#m|6kuFSt|9&3^R2F@=lVs#!peMsr1jJ){fIhJ%NC zu&y8^9zy!?4QWj&jTh(+Sd@@Kag3IlS(B$HV%12}c|oY%I^vy?Z}?X0>y6EQv*B=@ zyT}5c?`}4spthli(uHeEA|c|?doV)vCX3-Qupei4H47F0fTn$S5h9W>f;8umP3gDu zgf45!D>k>1b%pIE?PVTwFLT4+#i8r2;7X$hc|q8k&)y+`JOhYIQiz9@;fuWRB6G6X z$fe9J{^0NVO-JgSli?}s+ zOBWuP#Y78$h=dlPHW>vy`Ax$N=$QeIJQZ*;0Ym~56_}X@!V00kN6&blf%yR=3kM?$ zCld=d(>+0^2U5&Dip&D)ERVF<9%-{b)a2yX;N?~0=T&*cqx6_dMx0whid#&E_puzG zpu)q4N`eBaBK+!N{F)N{Ph=kI%0JRm6w+4`(pMHXP!%;)6F1V3G}e+a)|NAQqF|z< zXrilZ@>Iq6sj88lx{;oSp`PZ`r%#?d)z#G1SJE+&eqt%6WhJ6v{aDLJOxsrciJhdb zo%B;XSv@;>eLF=%I~8L)H4{4xQ#(yFJ8g3qo|xO|nA_=^+v%Cx>6_abT*J`Z&dA)> z#2lDjU=0i~Ffq3rM9rZ~+deS^**gm$`@k8g!53R4`nmpnf-p1GZ#a9K!R|F@Ng(Z}{ zODuYySP+$%ADx&No0R(@DJL!|J0UqMF*!3aIV%Z33Jl39S*hu{8JYQ6Ie=EV_C1P# z6Qc?+I?92wqOuM+B7nmII1qr-pzitv0Q`!NH-1G+M{8>*KzxAm*R20%;`jIU0qr`V zQ3o{Xfc_lNn*-W%0P6ukvUuH)Tl&?K`@Jjo(_j3(D+e3`Kvxbp1b`FZ+Gd2A{{Kt1 z#&7!MkL#4Kx6Dc>NdCS~X}J>tjg{?4@=vpvKzBJ^K`2=R@jTDB=6cH4bZ|1GAXM3UyPiXE9BJGeikk z!F5l{i(%`OD0JYOHSfV0l`{gj8wZ`vgE<6A?3bRaz&a(F)61|!LHBU}AlR1Kfo?cZ zR_IP0Fe!o5pbrr)Md%iM#4}(P)2q}ycR1T|_{EmDaPXi&nPmCP7uGAg&G%j8fmuuw zM#Wcp8kF&$YPJ_f^EH^&8-$L2;C^`w^j=?o)G9{8*8Kea)yX*m{i0UFhqECb_(B@& z`#&&%bxKb#;Dq4fZ%IO5od^T#l%#G6_4D~2tSJZ+a&>`q=a9ynEq!{!hefN3E;_FS${DpfsW^HI9$y1=f9eiFj9_0c|}jxxASXK zg1~XDg6H+51bU&DDGE^xut^E@q679GUed5h2^#`Tb?hOqNeQbtkB2sWumn<*nUTH7 zlo_FHFtuNAYG~xm3}6c98j)QwKUE=qk~yfJ$yAxEsDECSLgG1|1c#g_R%pR1qqDqqmYLkRX*m6I`n|~+3hzN7fl#>jE-F`|kgkPV7@vCK zQdRy7lLFcGEuWaYlPYI(JJ9?$&1m`YOcSwf^+^%v1j&(6wXpLftC@3KO3TA@_AI6ynDOCn(mSz(il3ca znD5IgFxJh8*987_5E#WchpJ-Gxod6TLr(fRa)Pr;v$5obXTj4F{OTUUP8$_0e$9M& zt&);VhakV1Nhj9W9?i;9g_km#Wce{&`C{w!Pj_dOnhZ7S=bY|K)z&McY2Z~?Kw8|3 z`_#!LG!XHx71&@#GIaIpNIYu5ljd-}$D3F6x?%6#YP(VOyT+{Z5_p zMyY}i$#RUdevWk2zDzQ+-dfyQCD&@9nL?cQLYebK@9wU7Or6Qngkxe^s6~Eakfw67 z<5c9{Gi>Zn7C~OP>9TLQ1c|=OD}>3y)+q@Wvas8@eVaX9aqe!G+jCHvoL-YZukOHL zcdB>$#Ef~nJz}9tA|D9j|zhu+@H0yuw#=)F= zdPY`8W;T|4?0{3x!O8vK*`^N&kNrOtH2XW7{@)Lp4fOX94Gut|LnFh`vC-l2v5|@K zk;#eCsmZaKsj=DV@wu6aPqP#Avy=04Ff4qUTKF`*I6w1wVQy*h)AHwq<)y`yrO&I& zORFo(YXDYP)>l{8*MOy>Ya8q9n;Yv}o15E!0k^%q3rn2AQZ3hsGhj;UZx>u3c=k_M zT)=pP3E8)>8!U1zWrimZG}CFZ_i6R}LCo$Qt4Q4uh;ffPvilu%R~Y7fuZo&y;2uv} z1y)(!`%BW%u)UzX%JBnuT$LuWx#dRfaTH2kJ1=o^hGK96szf(Zaz~%Z$3F_*g3D70 zL@Q(EiBY3zeg5>W7Y4sQ^R&BZPZmaf^iplL`Dax08(w1FjN+TV9S?^OmwnUZ`VT(? zboraV`J3PVM#>vE`=6WR|JXje;pHDc!`kK70Ww&=69}s?z#^W^EbRB#fNmN$FE78K zpy2<3VZZ;D0sjB10O)@WFaNg#pg#@p|BJo1fQmZ*-p7X+N<{>PVd#(&5E+n`AyiNh z6ct23RFqa)Kw{_)=?-ZSBorwXln&|cZWsh96@IT7Sl8Wk{tzZo?bz=;!f+T1&JS^-qEkAMmKm-6x+M3v|_1Ln?Ws{H}eLeBJ$ z#D0GoF!%j>FZ@P|5BT+V#^T^$p(kubtiegffk9w@2wW2r6O#b&`oMvM2LXV6h?JC+ zjO;K4Ii_U7U`J`-lyr1d4D{5DjBsWqI1396D=RICP@vI8N*Z$S7V;?)~86KFP&%@&pgx30^+#lYp&x z3S%yP3ULxxLL&q*=Fg{v1cgO}L`6l!C4?mTuEKs zehxRcLvHRrhr9bB5FWn@k3$}qAocJ#?BPk~=}GSCb=1@Q7&a(9y?+s2K9nH5eJFi> zDFgf|g90hTf+(YcDdR%-BQ}&WCWJC7gfcQ1^HE43)sq02pC8=Ym)^&ZB_Ie96fP4U zs~VeRl9-N4&hksoiOI}O&dN=FmYb22`|Ow0>;FdPb$7S)_0NVS`1iT@>yQ?Krg$X(I_<90gbj_LEEjMAEVK>XtWJ_ z8H5#j*?K?FHY;db@G0gyDToIkF(uYUAiT@6@U4f(VdiK&Q_7*5LO^XexE zgNfS9=2Nu?oXH4Ng@cKLs(dIZV&#vRj*yAKWVGxM$>T?!aGa!f5@t=gD0dv13h`=- zRg^nD=r^&s+<4JP^lTib+KO&VpqEz67ca!5RI1`-W>;GQ9cf>ue1p!C2lLm3(k6;a z@$2Tha_-|5GYLJU?|o)HR$qm9xTGPFQTgT&5M&yBW8K32k_gCTzd2`cl&7JaZ$t=g ztHo`!f!2%^;B0i`I zPPD!WQthctCM-`__R$<{&BbJXDTD=*M)sGlBiM_aoSXt&M~@yocI+4>EU#Yv9 z2iLFk_CX2WTfhL@7hv@Q>|H$g+bmsxb&Es{DJ>Z+Sb*gU%wh%Ds@Pkp$ji?I`xKa@ zE`0g&)yu*nfF!>vDt=W|QdA70v=~H5*putrgXG7cXhP%bhY$#W2q^<9aw4#prCXO4Rj6f6H9u>hWqx3C8L8AV?&eU!&4I& zrQ5lgsl|mkKq*;UU0DZ|l8uee+uK0g_6P9rf8bZUySv{GbvKti0IQprOQSaT`$OHs zM+`bV_XYOLit;8Zo?ry_i`$YL7`Q<%EN?#25H1J~b#JU3&ySaMU>>h6NN;^AbcmG4 z=0!$(gnVd;-G!HPHR)1m>Vx%y%s^qJ)SJ$b;`UMX-Y*%N2eh;MUttb)f2OPm(PVQ# z51*^6Hf(Ui^E`6%Vq;O>cunBXloj1Kxo)b398Xh^)5!RAyVm#!W?>F>=ewVAqMu$f z>U*KsTSyx?g5&mZxZUBvhGL=cwZr73Ms)-R>UpPjNH<7#qPI=PstXuCnT$9~y6%v* z;88vJTC%=+_K2e-Y^Qv4uG=vwK3>Isgkf=bp5fBlU4_pJULMjmlf=`*PA7V))Ew}F zs2H5do+fKc9VF0=b}Ou-8g*w>+*EQ~(XSo#gxL_?@nlW4e&U5o=^5+Icd2p=2Un3| z-0wL3$YH6)PS5dxqfIj`fwE^;|bA#4|fj)x4`oL7EOYGaZT zRLdEDNGjzrq<>HTHsl5$jg-qVD_AsE{x-n0+UGQ?!i)0OH~Cw22OLT=Y}ATxWxbFivP@F*+0DD#LbpA=U*C82~kbLq6CqA*fHT>7GsVYoN|AR4A6*f^7F;W%NSC!aNmDW&| zTU7Nvv#KSrswbvu5LiV-RE>sLjr};P$HIRT5!GW+HDhsgV@VBTxy@s*JICt##yW?_ zhR4A9Fffc514ZG_0%IzHi78CX{CP~wPJ@^PJ^K9Y^upW>=+uAWf1^LGt%7D9(>>Ec zcE1|3=f>u%5gegcs8x<6J#>JDD@M*lyTW<@r0EEzp0tCEA;x43COL?~F2q5w3jvlP zKtk+i0~IwT3=YE4hW4)+y6xGwVao_MrLYceppt-e z0w!+EETEJe2gL+aO+YgJR8NEi_{B~mBt--zMNgj*6A=dun1saNc}2q5%*w#r#=yeX z$nvp?mCavY^7nCb4so-Iax;r{d-&ADAkpJtf~R@Bw{5haOQgR?Xn@bRC4b-GFprQ( z*U)I^uvqJeWY>szkH~o6sJP(h*niWK|6lFJD&M`Se^>aSBD<|3qxIdhma2m0n$i!o zZyV~Wf3@V_+S=0E-qF_C)zaPD+}q#Y-`_LPKQJ^fGBP+iIs{;riLsH%@zKc%5Mz@V zOBRq&m^*l$#Covo*|1Dcjm=CA&tUF9r4A-J_VZ(Ic6xqpW?_C7G-b<6iz}cn`?#{U zwz|F!NYTI8pTcB}B1Gy7jT|~&)Co#RuaFM5h}{lSvEim&qC4fn$SWeZ7EmE@XRda# zNI1}6(31W{rmP1!t-LdbUN~b4?l7m!eRPu^lVSZJ!$^LdVPNBk zVz1up9o1k?YyRk{hK(A|OAQym-r4@lGV!|%qr()fzm{Qt2g}4iu1TiGdX5io1ewa% znQGlPwNf*4Q84!twun-+@V{y4e&5Q;)Y|UfE~60<;u{_6kq~D0G~DKCghO1UcWl&? ze@I3nDKqVCouJ@&j9b;GFd5MsNR&^f!t3(^T|pXVPD~j{cNX zdtD$4=mNn2v{$q^K?BIc!^6i1rl3>&{QMxV1OQzC92}fJEhHrLza8HHx>U_ytzzF+ z?!QUZ0FjzT%=zjEP_{bS0cD`0x2LPWuXk{ue|TtMbQq-5(D>N!!+VSmu z0n_w>jQX>_Z?Bw9%+7q*@y*XJErN=+mvWe*2Kv5@^-q`_6Nhwvr2$|Qvjutu& zmU=c;rhmOH{71E){6iyr!lGQmV|^oHLL-CYqkQ6`ga4JbFgrItBd_pz{)?i5XMeCc z`&&v*_51SL%C`+wuWPE`SJu?Lsr^t{*H}{zXyiX@KLKXWhqm@+&=z*}wD$D2_V#yT zI>Uj1p~2DNpHPXJ?^jZ>eu*Wn}xv z^xvzo78(>384?^58WI;4`ZO#cEBw)m2(_$8>*%PECsFaf(TQF$Nxrd3fpJOU2~Pp^ z_oo_bx!D;7&(n%>lge@vUgsse&VO1~kXrmAyXa-!zfofi)G^G~MrUVtcUNz3&t54T z8U${bgJUB^W4hko;ACt;CYyiva%Slr^3XBnY-$6a&U?v(tiO-$KdB!_#9y8d*^?Y zR8&+j7=X@Un1EBmF#&EgG<*D0KtcV(0JgNW)WDqfyMWVU&dR|_IqPpR^k1P^e*mKc zl{7#>6%i3tR=jXq_=g4sP)UZWo~%O+(_Hp z=(dIN9m@wgRwnl!ndw_wU=q*H#=^nQ+R4%0#Tn)1>iYMPFZ@AI2(%0LR0}~L2=of~ z#0o(N*w9c9Gzy!WF->55TU#fl3G5yK9U!JKjZ6SS=;Zk9^b|O7_~}3npg@>e2%I)- zY^;Bye17@z`LFCV{=0B>Oi#E2I5c0Ra>vJ;+$F>rrRjaCg7TRpi}0f1m!> zR`r4B91e05e@xk9uVu8=(ni8Xw2A`rer+UcU@;RDk5C~?$+S4p{TyQ?8@=}KS^|wq zAkUm721y@|Ya)4NjL~&D9ZPd{@n)$l-ht`{A>+XcPl|@BzKz_mn!pUosTpA){&0c) zv*iI;fo?<82}gQ5k+oZG=}gg6F(rayorYqiaf_6vZ}h$}_joBm`D$rc#m48;p|T>C z(c4}$x8klAm`$}TN8O9D(p#H%$-bgAx|)eu-`@Gf`u11r7lVTh@k(#seEq!cWKdSS zzrM|A^_SPTORQXZyEc=?ynkyX%i_~DV-s5A$Qh*?1toV14xBoy!8sM769$ZA?@1$ld2w&J$l{PHC^I`z2rEO#yND)~o|x^l zH^y`;Dx>gsX7qK=IpV@&pSbOeHz(pA&*U)og{woJ21~1EBn56qa;889wr5hFIFt;e zCfzYGFip4On$0vTd3hl-Eq8}4EA!=)m0?El96U3nXnn3P=LLz_!tW90$u@K*@0*G?)$&n~eKfTdz*~t#P3;-UUO1PViaf7@(0Q_eHIluPaqqO| zj`!}G7dVSl5ccIA$`lAfmGgIgCK-8t)c59xJRIPeZ4^!CZ9J163FIFk*5Q8rVS zC3B`FONu#1f+=^5DPORuh_|V|fH5t*NQ5tFLWns&8(sZ|kVKXjdGu+xU+R;1K**D(VH_-*6e?PhhCP4HIPV^2<^bJoAj7$!VOb(Atj*L$N zWv!8^$)PFC1Tlb(!Re_X?BUl>2g`dW%>VT9^4Y!PzptwK19j%_Cx^b?{X?)HP7Y%jLLp{y=*CVCEt6wSljH4^<9(RP;kQud-q`R@ z0XOF%XR(vR_rOiNDa=EEL{@>EQ$0B%Z|toPozR^!4*rQ6GnkNXH09W>JPX)a1%+^b zit`>&rZbiDe45Cg>G#9`j@+W7hBHyaxv1eMsp0(8a6a&iVd8Vp!B4>8JTT0i0|saQ zmRR87f4TK6NKb^_}MHd`> z?SZ0ucn!Eu?BO*(rV;!Lxg`UU`Au#eCck-(TT}Etj5W1j?fLtnd*r7`V>nEyrGl8) z;_xHeCgj4nZiQ(OuOz;A7Bu}{s%RSI6#)hc1z-#Yi2>s_rv3Zv@fPq2U;|bG;8Y7U zePhxB&Oi-k#R8wg)NmPU_(f{?HEOsfHT*s`+z?J<3a7Dv(^$c2Ea5cfa2gXh%>y`% zF`UK#PNNH_(Sg%w!)Y|&G-_~~%W#?tG_+@F>CVv63DGm~F*0&9GjjsA!EeY0fAiBW zQ=|J<5AN7Lyyak`;bf}rYNqCHrs`p?>T9LqZ>{3@=(?wshQ}jqcWWJ28+~Wnhp5Mv zzj73Ca&d8TcXRUeaPsnU^6_@^^L6s~a|-Zx3Jh?15{L>4L5Es*a&e7 z!$x?hb9ksrc$iB>m}^9sTV%LLWQ1o_gm+Y=Z*-J@OmtvuOmJLmaKh7&q}0%qtgy7_ zAsH`yGE1DZ%I&k>KhCbPCHZF0e1#1MMITtON*f7389(QDgwDYtuwK0u zI^ESN?};8khMoLg|7RX#6P8#2_-%mO28eB78|)i@=Vt=Xw-oyg%K0m{0Z1_zH4_ZZ z34;q_@8J38#_!wnKK*l_0ZI=}wdgQRI3`ABW@c6lZ|CPs;^E;viIFV^(C6PD^fWWp zwRxzGGPz-8de6wzRLAVGmbsILh085VXI(2tqeu2;{{dowUr4xTXq0udjEYZ*UMGp+CTA_Sidnwd$ADov~@mVe#IP@g95UU%+UtLU!#p&*zT3 zwZuI{DJ!fzTH#7cEo!&vbO{g(Jdem)6Awl^(xmFkMkugIiFOS=JK&Xf4UhpJFq= z_yQPIm|pI+&m@1G9~g+O623@C{$9k`_mY|#JJGkGr~zu z&wQGZlaQ4c^QyM4WTb;;tDI% zURC52zbz|$Raur_Tb9%CI_tyhjF#7Ft*=u%-llZFOYN;n@2|}mY{(k?kTckv+uvN! z{h_$^Lq$VNQ(aqIU3(`u)WDo*^bR!l54H{rwGRz<4UhDWj0}td^3LcuhGqaN6ev}D zM-~A0{1)H@W3P&hfGqn1R_Q-nwge%HKb0+FN^xO6rgt~0pJr1OKIkgBcu3dnbKnu` z8s`FWt1oJoS>=LBY4|nLP4)*XEEn!IPB+f`Kf+}8kr>PpBP9le!QwD53<(>1VL%u- z4GoAt!(o1iz+hGtSbht?fHff|W=>2O$jo`1h3i|evT(5g?T?>~r2zHOB;%&-37 zFR_{*0Wtuk`6VFp?Z-V>MjH#u+{M5$rh3-qMz&Ta_O_Oe_BPHa2Ukol==y(dDFs+? zz(xw3QUC)ffWv^&1iHL$ILvQNqxR|&5Yz`3aF6=o1+?~mdjXTFy$e`Pf$N*wR0q~@ zs=K=z2v`DV3}77vbOHdMZBK6h-vZ10gvkJ{{RDqtDfOG}#sdaN)96omDLtGuW# z5)4>R-K~1UZkT%0W_#_0{u|@E6^ZAwmefl|X3H~F8yxzgMq29fbmyV<4L=#Iv(3I5JWnig>g{WxF=o?kMx-L#*|+H}u&%j~J95Eo{7#tqQ(% z*lNzEhQ;nmEEbd5T%G?WsmthaPlRn4wJ)h#tL@}}n|0Ln=yknOH&}k!s5`CI%%}&W zJI9zOYna}c7e{LPk1&~WfAJ_eSDwjDmWe=FO8q@dCUCMxS~lSJk=y^B*Lh0b}Ia!+}(yqtx$7(91Jy@REcM!n#)i~ z5go`hea1DJX_8y*-SMon)4))^E@LK9BchRj3(XzcP{&!K0kV@WFfy86*FxhD=TtUy?5#LqPKi%OQx`%IZp?iA4SV-m#*o#3zsQ&7X%)Yk7Va%Qkc2NfKCx2cu-vi1qZ)fa_ znT8hZ#$ZI5zU{_<u-zqa-J zONU$kE?Ylf=m*}lKq?r#Zh=nl6i`yaikO2}@9!zLtYO8JfM77VfM)RTUEsC-dl%*% zd=Byna3ymSz=k<^2dC%azW)gqukwK*3treAIJ7KknH_M?4{Pm_o;>chg0jsh)yl*1IStvb8Qef);77s3!uEaevatO!*m+sld0BraxK9f5A%ua%il{j93{qBFRt~s(TvEDn z{W=ie)&@4Uz?$}Np^NgJ6D?pzrlh82WCBf;9H4~)Bv499U%vtUe`R%5O?@5EnQv}u zY3u6f>g(K_MCy9PFwAJ;yuep>&uz5z7vffw!O7AB3b*Jq%8kBRNiTbS4eAMM4r z$w4n?ziNH28Ss78Iz~z>-$Dzle1I-WU4BZ#&sA$r>^iMEBJO(Bm!HJ0v6Dl1R-Z52 zHfXN>o0U&YBKk{#XwX7;fnIy2W<#MdtL(1xb;16^Ju4qYYOa>I*EkL=(J2%GD<65K zmp6__=-jQu=%R>ID>L4|&!95YSX?lj(^Of{b8(|!wmn^Cx8oT`7bW*b0MDUPAa?C> zuc5lB^wsjq68&BJOJzlEBh|qtZoLsLFqvvey2!3+S@LPV2XS}!gJ$vi5@2(U@9@4U zv+20M5__xJp};n1xxXP^Qg{dXd2MxG)rWy$Cv0bOBHng$V3pz0&fr~bJ7T!?Ehkcv z5N*`wYcOgzyyA}m{MgB%^2J!a2WyzzQyymWagq~kg)>a2p1-)$;Pbpu&*wz82`uRZ zpLcqrzr+V3R)0i^-VfPa{JVPASE#U)gT@Xc6tKBK->=Enii$L{%D7K?|4ro7LCqyb z87i@sx|CS!xnAAqZ@MUno@|*jPkk|B*G{QdIihZp3fvDT|H4uctEtAQjAvpcni{2` zLt+pvNu*PeqM5wioVlYw^kSAG%OR3IT)`xYE&bJ!hzun{{Bl}+IteRYjDj^6POL&> zxj}ArR6SR6$92QSmp%8h77L#|6_`z-oKZKVBG=$Dq6*(B*UwJLX~-xk%71J?Wpd`! z$&{iclZ=7~1P#xhD}CwLO@HICRT+VEpdS_2bYbQFbIq8B#mb|qMk`gYlU$sMdYQBL za%Hb0eX21XCB}!&>w0l+Fu#IwhSMbO^x>OU6$~C?i-#jGFdF6D z{TOY8N6v1%F=##Qx3bgboPUD9cGFDXsY`!o3qR`ma)w}C(RMFyK3RCL2~`WF##Vgz zhQWNkzPbtTpawxdcSRk2*2ZjlTF!Q&9U<4rif#9Wl-KMu{=%cyygMIBEmgEECv^PZ zAST}#e0aXn?y&HzMZ?)YE$a27(Jylyst>=;a@;^0N5s@ea=%le-LWdtXU;hh?=c^# z`#Pzf$9#*ZTMX}g3(2t2iUQ*anH8mj_9mlOYOl2nxMwkxoxJl{9uxk>F>7W zxsB4fZhxe$eNVrwe0hhA)(hX!vt;(jil>|cbAq#QAQRUq{W*9aMVj1M2L8*}t_i5m zCP!59+FrI)wdWF8!%U=eb@|bY+!<8>y0xH#`SdPB2yTf@1rX5)}F#%UHkDy)>Ss$C5*=p*U z1J?y+li5)h1W;86sA8WMyVNx;tBU0!nzMAGa@ zCwP_pD^<%!3oeJQre|&k+AkMdT(jZ|y+In>qtd|TB0gA`qiJv=KRxQY!}^OGmkf2Y zss*m6zvIl{S04Vtd+n<3R%bMS3Z-Ii2RHvI0mbRIm~hYI%G6q1QE^E#ksofnRGyvH zxO6vsSemf-$?U19d-rz2axNV^+xt31C7owcuf|Iy&$L-5`{|fr8=31nr4DY$<{PMwBCSSf! z6**=N$tUAnKXq(Pb}Kci_o(h>r6w_lTDaPWCCFK|nND(QZVaMjPLZ6Xd=zkxx!NEh z(@PjKeo=|;K>uY+8cnE}x7VeESDoiWGz$$Z>WFgCk4kUe8d~Di-mE$qCK;1T{E9f| z*1PU|j%8y{)NSg=vMF}Lj2nk(?yf6~v*n{=xzrzz9j!Pd$e$Rfkxr_6?!og{$ABx9~_hKYNm= z)Rg{`g~MmTd}K4DRgnW_gvVr-p-_qGNVVRJP~Caamk%9!uAe$5^Qub>q0;5^^i#qY zqwHH0Z9~x=9A&Mw+S0Lp>MxR$-VhT{+AoU)5-1f_91$^b6Dtcp=vY+ALbKv^b0Ff_ z+oEcwGvx9QzKp*rOGfVCl70*_yb{JLR9sKv^)a+mJcP%wxRH~3HL~CCNq$-J2P%=E z*w1!>61&AMi?Fpsn%913B}>{GBGyvGUi&CImUP6!K4qMcIH1;C()H@Yr<})M=e3t@ z6Eh!tO1vmV!Y^0a*ZpC=u=MMqNq|^?N}w*EVBW%|X57BX4;ybjYc5$Z9K{dzeU!NT zb=gy?Z1}*}lnN@XSr65+3HG;E)sO2|0)$GAsw1~PTzmr!TPB}EJhcAscxTOl@byTZ z+;&^i&L=Zf`(gYxbeD_WYHsuE{(B4@;$1`QG&Qf6JmRf}@ai|pH;U0-&mWIFMy}Tl zZ+(nB{CK*6c&qj8)*Abc(xYb=ZxiTCKHhYiw3&}44xn$|X)MsTt-r;E4nfepedD;@ zGHx(2_sWLy(&4n%0mO@6yB*VY9gny;Zn2wx?zXX@vN6FGf0BlBxpIN?5sD%lwdBDY z>cP8A=zs@vB9L=Bq3bl@;bgGk`0OJpR`rq1CnrWdGiDB(1GP?0H7C{1JAYy4Na=9q z-EihhcXINuV)Nvsow4ESIbM?N!d2tqP3Wj0?YPU1r)2HoZ00JbW_E$dMfbepsH!su zht1jA<5$((7#_KGu)7U1yI)sxuiS9cBy-oZHq}XY52>y(VGb(N*7Sm|q)*Z-<&+p|xL+wKqkP-_WMt2+aRnx8GQV z;|pp3$q2g_iUKG1YG(ekpq>usa!WvlOQZR~7iYHx03ZRTKU?rdV^ZurPs z*V^~)qW~?-Cz_T)T2@c)SO?vE9HM6*V&D*B>=l#fyF;M6O^~})keg+Yn?xc{u1BQtq zm@70GxR8a0MTCZdU;g%+KmR5yJUSvWCLu97CpZ5^VR2hWSO4J95cX&RIEYV7O;1kG zd>=D&!02lUIDG+=pS@Vd&QQNMAFTjA=1=Qj_5p*>x2Xp_fcfY@9e?F-`GfE5ee`WW z<3NY+9V`CcfF{GsDi@So5%jwQno@M4*3S0#1DZ-ivac_^{<{H9HTG%pmx9cn2eiev zqPja!O`EptJ+IZ9S3)8klQVbv&SC~MPl^*-zZS0C_geKlPtA0VYLfS6p4Mx#D(rxE zw;@guGoby}YxQ}W0_Q!$@Y$QW$|-lwzQzn_1>f8ff4Oe+`twH5#VY9W`n6{&&m4~R z|EXId6DrS>*_BWx@Wn-*+z|c-w_id#&IKX37kNG$deOlBJTSk(M|^z-xDgR>P6Sdd zN!On!=-_DK%`1A!^5my=n|r8pCFDLqy9w1K`l{~x>o%yjf$uJG7n125;LZrdZH&YU zS6W9A9pua?Z<|6stQOIYbEPzxNpxN6osP$S?d2Wgd5&u~IfSH`oy(zwnvS#P>fCHv zf;)WlRI+xxUU;-S%UtHO!af7xos|0|GpRXU2J_h-)%ALO6|O25we6rM7IG^oA0Op> z>H0nkS>{fWl-F|Z#Nvx~?{p)+#&!5b&JL^j#aAN^*Di2(-+$a#$j{?L@w_L0o}zT= zKFzWu`p${xC8JYW%WrmlAN!W1gh-QcCNe?ZfHwo*;| zXkn#>(c=r61CLNV5SIj2Ue3<_YT;u8Uk&$aqd>ROYLoEvv(*pc8w;z=NJ5^q7VLl~ zh|q@A<0l#+@#N0)eCoKWYW%5FO*i{f*BPPQ7r2UP3y^M|aO3q}y|nE0zAIvA%N_#X zru6}fZtQ?2QLxjm5YJsWgd*hK9C4+3fEd>PtXYmHn#KgBmQotCrVo_63}rf}^pt>{ z(Nh~b6|eWf=J35-@j8m6>D!`5=}|2%bM7^~pBLOEm65}^iDlLwf{{-uD5Wm8;S*|A zw&D;wZ7#?iy>@WSY?1*LSV43rx6z%D35Ak6Y;D(eZjDi+9FJk>{B8wQB2ek`_QI>@ zg^NYINn+!|8*x%p6^J9!D>dxH1uW-bPP=OBo`{7}iiew!!}vJFte&WY!Ftj}IY>fQ zU&g~n${6LGd=gh|0z zYebG{Tq57u{)|g|hR>P9y4)in`27(ipG;5dZ7;^n3Tl5eiqJQKpldlw6+3iKtPJfJ<5%|E{t$6y2TAjw&Z{(|b>pqb)3DUO@yp-xkO)q$50C)u5WQALNU44A9TS-$m8~$`WTBYi)I;56C;^W zu&&%`zYjaJLiE*Aij=-+gndrgLvBXO(il=fN}K3Ph8jIY?O9G5k94A&S*7rA89p{K z(uhR9BXu;9J+FHM+F4aW#E3>6tDVL->{G^*(0fNzj&6&X%T2}8NjeO{A(kL}cjP|f zEgDt`fv~u?Q;@Q>m`DQN83pFUHoj?B)1pq3i1Qmki^?TFO}pU-LCCltyGX}EaPJf@ zc(nzWONT<7`O0wcYGp?7EdmKlw@;GZNtPkxD|bP9ulbw|b~$neh0pApNXC=GdG0n> zyFG6qp?uNoT|!~PLmH3+f;znv@3$Z)WS#LAE9Z|9Fg03T`Sc=vvJaY*DSU81CG?iu z&I~DO1-~!~MQCKn-O$nEv|z7|dq7e8<}jaXF8L$E2V{52UlVyYRke}0Y|cY&rMe$V zR*LMdOh;s8s6F|Z5as`A3G(=r>KStBLp=>Ty2Pz*{Cu}#3b=6z*kGLN^)pH>c3*ul2g zUUK@)>SlXpUsW|3A_d<&LJE*bcCAx0>V@KmUZ@Z=6Ui`*Fgi6iCE{IcfgC2-#3z+Y zIQXLKc~JO50oj635EN43*h}Kh(2(zBXCy;lrTkvBvBK$|+&%n!#@lDKtO+Tv8}882 zs!6!dnULO>)1r`t5S%Z6;cmPsML!WpIBoiZ&_3ZkfoQGkk-*!eG^-u(hI4H;+~=K4zf6rJY?_1+L==rlmNC5^YjAPpgfzOlk3Q}_P(f6$ z>^aoC?eBuNTKA`Zz+n{ZrEQ|sP#Gn$@~MKD-19i$8NW+JAxKMqz1TJS*g1#K{r4DQ zNL#-6QL^re_4{lt#R;2n>Cx;Dpm{7?&gMw*^U8Wr3s=Qe(=1?aMgWwY7Y%+@P ze2j=UAY)b9!jWTIO*kw;oKn7(%ESn{O7?nA^`saVzV^q|!{tZSls@;(8fJ?yY_X-Dbn{Nvrv zryJfZEkbraM(^IU3fx)8L+-4WGJKise)HwhEsu@<-EB+d-7k0$;>07b=V5|S?PCJw zjQB_s0%YI~)O%ArVL=0JsM~wgMz~O5f+LBEZAbz_Ru}5eh`Q1ue`VwnUnPzcAK_Ip zV%$xBsG0XpYGh$Yr?;tHAKjBN0;p-ut{pFn5h^{LsL*~{5PH}7*uZJ!KX$PVeK8SjG8FA zx!B`#hYY$Q>>aM=9a+o&h6A7Pe!xJwA4|F45RtzRhyTVV>PxNDkw{Mh;_DHxfK?c- zKA%5Xj}zV|ex{4dms&qrA&FX93j#G6Sq}nfMgl5**F5VT1aYo_;$6sr1O#%;HGmOy zxrLDSn#9a8d}$MWW@YDV5Wl)fN%>G{$5{eXWnH2hP-AUZQ;3QbAAuqnz7)!jNFF*^ zgvWDD=0UC}gf)Z?1x;eZx!;R-zYfn$IZR3$Urm|FTp21ggMTZ9;F7#b8d12}4I&3wm4xmo_3)3K@Z7B)rZ^;3uyV01Fl@ zfCxlNpUyx8mV2F~Af!bS9CHl|9>G7G;jC51AG8yQuONbuKduO+Bq}Es4=l&gXyL!O zMT`uA2B7dCh=jFT6ATvOD_P&xR*sdu7K?jT`;JX4FGaw~ae}jT@kCccE}-sznsN7# z$F)ZiUqs@1sUa?TUaqWB7FE9CEg0=q>p?yh7Q-1IkBoOuk9^Q2e<2WWhy^!#Hl7DB zfp?XF92Hhx?4D2T`7$Gt=>o3gOK)}p+`#vj&t%{XQmfG>oT(N;)b>JagBqQ%PA~;{wXTh@xcQRK!k-ql8(an4#l8sC)~9i{UP`bq1O?$Wvc%ia;M1an3^at|ws|ZqnbbEEG|y-8y}#@vo6k2c zSh_9HSd7mBPcb2j4TL~#4Dh+VFI$Kz%R|IfGjH;!5Q>~2ZnjOmoDizyoy~%TItFGZ zCJ~GY5Ge(wjn%)nNE3IeG7One+(+W`o~u+2S-N2(p)QXBjnTw>ukljx|<`U%S-RkZT1u0%Erdj|EhMj74i2`Eer+MkZgD^o`S~KEH=5HnZ1DW*+*=5BMxZwn zpv)3&teS0X_H7)oJ8fJNZJI~|d*#;CGPW>3TN=MQMWp~T4|SPIbXyE|ax>xyLr}Ur_Ef@lMvJvJ33$B9-L9HF=1sV# z6T10>?GS_Zj(%BAgShSzy&H6H8a0U5l1PXdTclXB8 z`B*351@ZLd+V==(_aR*R><1mPjAOFD_T>%sTS@c_Q#k53ITYI`TPHxv7W?b{I=T7q zUhp8^y>|GtqdIV^j)7zh>8>OL<)bmI)3U<=eu8!E^+Cd5Z% zJ2H|uh^q~0mtPg+D4ki_AiRm5vDC!7jU=)Ogl5MP3I@*F^5KO&Ao!@+%Y%l>-$$(7 zoJ)P+;8+gL)an)(fjXfH9r*}^%ZKc>2~Ld+*ze5VVtggAI=@b{Fe0>26*m~a1nqhw zlpMF%w`4!CwAeF<8|IJjOcFEHSn57cRO!FekiFzyCKPbA4!vaW+5#QCwCrxYENm{l z{bsqVdwG`>?K+67k=wy9gAUR`uPiN-4EG;gMxQdTf6BemrAnj~h(0FS&65j-9o|8} zpG#*pt~5`tFfx499>i5w{&;e{-YQ4>Si;8>yHK9xk6Mek>e}X~RdBW(8ibeaJkU@9 zvTkw7K7n#5@)n}ZX!`55wI*F6Va?8qw|cn!@w6FNd4n6T+-kh~(9RA$DyZC{7r$lR@;dG-o;^|1bL(R!1cS?8*X)RNm2ryWA<$gNVIBN0ZMayK`oPj4E05|qg=hvc<_xIaO~13v0NOg zidJ3LdSm}}2TH4k)&?3K;}TgT!*`zg(Mh_~-uS3fAIfv9I_Ade{SUDcj`Rd{>T7y! zDTo@cS`@jagx9Awz=|SwlC>V#^z2MxlxM4lc&Bo5p&LPUpeeo3k zH4)((GRWJ?7j$l1zIRW{@Znt(TTNphE!~K_+Bp_?${g-iy6M#W=u~;?y>T(lv9V6K zw2w1$3AOU_d+g!r4#LUV-Ogt{pOSdCpANQ?}az(hc}qUw?5A7bIG4@dpYA# zH0N8o7+$sXv|%B;Y2sB=UwM6VRc&20HmYiB-@UJV`}Xbo(ig2INrNR}(w&w%ek%JL0x`Q@4h5HztcV=PNc>>$WyqH#U1dtq-rQjjyiGeq3Gr2t-j=*S-(* z$F-Fo^0HPwq5&j<2{dqq+yf~9U;zR!zV>2%VQFe+Zg6tCdvdC6Xr`fO;a$hdoA%Z6 zuGM$_tM3Na-j8k6POY~rY<8?{_N;I9f7%*a+ZtQhnpoYQUfZ5u-(J|*UfkGT+SpnF zI<1>48ym}8n~U3<3)ooP-dNsVU)kPR-P%~&+FaiTu>}@RF#EzlL;2hF9VKj!7>2q3 z;v3kn{`|WynCri(HulHsG2g(EO{IW80Y|tFt~Qfb1mm9lp1rpEl$0*y;8Sk3f}fl; zuO3gK*sTxjy@B0(NxBfbZ9*PN!4^oKT#wy*d4FestMFMbV6SztW`VsI;OfPuV`vh% z2aYtndOi&HUJlS>*=yf{BO9?|xq!0eNvV%zuQeyg_|Pksyuh&6_FcVlvEazMuB`jQ z+%s{#BPqPv<#yD7y|yx53)pKP%8FN~0eda}(s$s5bqEuR5! z1UzMvqV4!0X)@*@wL4xsJ6AD#FZa{`Xz#^L&&M^0k-vp8KmnKF z_^EH;2zKv<{R(b1Yk=@(08@}Mx%+Xs>-v-XdoSC1@~{xOJGGKCvUe}Ch%F^gMPc?{ zqD`tfr(^cOk*SR7IJ@=P>39@LvJOk3tP81VOAoVrloN)%7KjB$t{cpzh;edy@wCuJ zrTd3ybIqkEhZ)Req^Cxu1qGYTW$^3-+a1Zwe1QQ+il#E>B}4354bqO^z$Ku*YNfxB zSId^Qkl$#gM@+3P$3aF&EvJm6ZqWhkwE-+R;(lVOXd=vTX-|u6p>Tew6kUB{xopk* z<~ba4o$`toomw}S-$DrYw8${vNZHcst)12p1szlfY5yLo~CSI4GWG` zpMA)v+`)Kj@l&_92i?Q2n-_Vo;K=FTT@yNFvq25d#(;eA5#$^7SDK4E{T3UG8^fpi z{T}s_;2(l_GF=Yl5U)@(w@I5z6(hZ>wX=5pbR}ve$soTHcjk2 ziMqhsY`$JwJd$lf!lMxn4zcve;s~yY;G0RKqBmpU=gPgBvzMJ=1J^$fsq#QPr5w14 zve<=ky?{sfdot&9w@1jKDg>b><&Qj#-VF3^b- zg*w2k430x;%LTubQ^W`3?RKCmIWFaSw*)?=grxJ}`{$4}nd2OMWi7!#(n4`Xfo_|> zwmQSB!akrs3TnMkQRjxHh{St$e4P==6~gRxCB2fqmd|VY?6PfK1QV`&0`VfWf@0{i z6Wcl&;W0U(){GptDdSu#>%DYV;@jG3rPbVJnH7Xv(*Hdshb{)s(m|6uXz2^P1(ehUk z-I#D%8lwqPi3tqdm5=IeO5qp0Bw#dQc74`CNhXGLHcwrRJw#hUiGm}K>ft8S6|qWx zuF3v??7at2RNJ=q+k^(1CWGYAge(O}u2^Tp zou_GeAHLmDz7F!aX}*Tfy6sLZ#n=IhYYa$nY@w3e#?aO;$+Z4VMXCK14Ik(6dlD76 zdZ%!cl|x?=cZugwnPMZ)x<~SIEsM^ys^Y^Q5-@S5BCReFI?sHh8^OX557()yG? zFs6OOdtJ(A>QJ)=t5Ds$oLzF)-;D%(&AXW+JBiM7wxrNHWD;#?v{)f_;!Ao9@lK2T zg+gE6lxz7Ns0Z+Ja0!Xw4dlB!r8-PH(wK+=kt-O9B6%kUlJ)QVmveTG69>7VyF6h;1zp!`+lC) zW%q3e8Z|$bmVGlWSz>+a9qUrPO%Un|g1w$6)}au#tUxskL#MPdNgrE-W2cw2NN!d2 z-a!dgOlX@8ztjp;;+BVauV4`xJ&eE0dQTx%!y-husz|FRpS4F3`o=VfTx+t);@Qr( z+peMCT-tnc)B0A-mQAjZzCKWRLHyJp-FXmUy-FYaK}*lid3apzK&6y*-B{-3NXwL$ zqt3~#ha-)is86uG@8R=mcN0xwVAffrB`a!INAiaWzPEhbcszTfbX?s*7Mq-F)4?ow zB2J_t>#FA3lbVw$QmstNP%LIQbEvx#=xlkz>MKG#)LkBSwlXCBwO>6HBndxTRcmSb=4AC4D2^1l zj5v3S9~^uX9UwPx1EIHB9hN^L+8{Kp8VlRu6>oz>CnB5hIVotx=ZUigs^6?zpdWZ=T_cAYA4!;ykZfui@$Gd(D2< z153@z5uVT$ulPawipSu|o9LgHKlwNh_V#aYte&k_#XC2%e=*{XlM2UXs2^`qKN|Ox zo*M*1DUq*@8Y@oLCsFiHRTQ9mdEe*pxQHJ)W}@Qi*_x=vPPXGfE3X-!d!L_stC`!;E3D&IH)*6BmcM(gpF7x}H|?g| zjIH}FHog_e)k+T(`Ta3r31}%D+Un=Dkp0Rl8_H{q&R!2r$$lf)_Nokt{k?*xwcbNV z`?Uchc!dJjSr3cd8tm{2{W=1|7k)*W2p2of6^+cJ>=nA^kqbP=Td&Rajk1p`w!2FO zmaaRl94|<&QD$yN#*&p{A0wdKOyV4QwS{r0M$8jsp08LyYFk9Ubj?HK6y-*q4 z!UyGrgWsgyxeW{XM(HskhU-`#0&jufSlq|4aNa$_J`fAv@W;jAgcmPkNg^O?q5;<` zA#U}k5c_&`gA(k)Sg@ORFc%TnjR+6pN5B(ywDd|{!f>=DPpEhs4_UkCC_1*w@Gata z9+mbWq-T_)UhqKN-I^Spn-F{sb8xkGn3Zuz!0b~x{~&rC*GfwNah8yb*t^c!&x2zf zpNqfY3kRn>issb^kKc-%|LFesl{-}>kE)Y9A{s?6mPE z9_rP!O3L(<7*{r~#9Q%Db8GaISjXNH1D)-(Qn7bwsgcLIJlzI<q#d$g6a>eyuA7SGQ=7P05G)oh(*tBzXjHL{#-COnYrW>)+k8i_N+`QVc*pTsN zV}59P;9hN2L>|uzwZf`V2m7aJ4#yz+dJB)XY%fu4evsEA>%#j1X}$^1o|a@!MCK$= zC()_;<)=cQyQAj>I*&0yua&sX;(7^%=T_$ACa6K*;(D#)=DiWm^Yw#*UC>>)pl-_; zR)f*>Dlw@YSlB1;TJ=;_I52Lf2He)xv2sV(tjsJ}L_d`%V&5*li;F4)K~ywaxM&Nt;48gPm4!gy23X^i zZ(|R}K=t!^N=r1H@;r?0>KLAg>#Be9N6J)L;}EMt4@ICls-OHyu)77ztI9vwyFdfN zam>bfDu|-TZ7ZB=DiC~7r?rZEi9A)v3V#1u`7noL+CPg>^#r$n6iXr9-JpYC3-yy8=lbsc&|82UN7GQ|%1^aRi1E^vaA{iIYm zu?+n~+45}EE$wSQM=|aOc{_&UH#JT|ay2EE^crf&1n))}) z=m*cT&#%_waEoG2)L|#p6S#^%E$f-L>&fs$n6>NGIzgmH4YWqW6kYW+6AetYLJZsu z%&v{9Hyf!m&^aa=;qvH|>tDFn8-Dd;Cgk~Gp zmnq?3Ed-`|IA)YldyH#)TvB^NZF`bNyCxFzb}D4%DsNyx8Ppg(#Pwwo9IOe{R<}D! zXgfbjc9t1+mb-SA)M6@cV;Yty&6%L<)wbm%b!b&Uv`R25le#);yDDli)!o5gxOwX* z>dyJPzPj4CxMFtIc25*^DS^5dOwjS2NwQtLRazlhsoj&cJ?nU#)3n_)=v^E-J&Snu z%LP3fNxkEz-ChTsP`=(Fqh8Thy~jp~&aU2>)82tyLb4JNI}9PCjKGrWD-TA@+oD6^ zXoRKL@PUen6kZ3*S;UfDO@a;&X`UURwv(xdir-B9=`+3j$ zIVc9!UBQXlkQ8@_9uiX{93007{AT{S-eioX5RHszH1Eu&;B$|82&Ck!HtWVmJVQ@HTu5X);EQD(SB+1W9a<*MA;dTgP;j0vDfRzO#nhOa(`#f|KD8piOGc z60`RnuLN>rpc`%Q9mdFOn})*S1aFAGHTc~&j$wUgq%qil4|le(cO8FnIuc`BbMkWt z#=&!&cR-DEvb$CiHxrJVRRY#VV9wtI*IMGngTR*ez~ZdDVkO93DKuPT48r?1#L_bp z6PQ|Xu#hx3q6<^YcuwpFSSNLAqHBtko>wFlL`pPGojS`sHH-IsR$y`-exFzV{`|L) zd9^R|BvbQ(nzPzB=9O+N+~&2`2wh-0o1Z6H*f}F45v zq$Pb+;fv3D7EvIInHL00q|Y&J@AJNtMmv_{aqd|HeTP^PEPF^V+gmO9B`;yXF#ZMvTyabp{t(n0AaWL>&rb1Fnn zxcikGwQDNB%Xq$S3+k7}FH_0irjcjvnAuG4=ij`+GA`KKHO)*S^;A2}6c zup!Z)+VdDLFREpDf6DW@HEr(M&hJPHADTUHWy}_iiW%ThN7qUKz)qRik&x<3N)VG$k(-lMLyK{9{bP4{t zIP&pHce3Kum$@D8m+BT$KZ_VNKoKJxlubrX18{|cmV%0bk_JXa%S8RFYQX|yVC90b zGG3M`E{hdh42=BjOe!Lr&*k|YZfd?XGJI+B!0U-g3r;l^)$9X;JWfI1WaVBpczGFaZU zklAvO(sh#3dy+SJQaE|?Vfv(W`lNjFxN71@?f6j}@?dOfcYbAiZDSJv=wJYZ5`M1+ z{5;v%0(290|EiDS;`N%{=E86Fa7*;e|PEkPy5$j=3ig^WjTH64|qu=e~NcyaB1XyV`;pmU;1?N zR}mwSPW@*QjcHHWz!K5A*D+Wlh@WB5&rAC=6i z4^}f_&AJ)VG8nL>*&x0a zj=5l=A@jKqvBexfyz9?J3<-kNSvY}^J3L6`m!Zn9B8CisI~;=m=iB^SqYFb7^Q>H; zh@rc}8fPK_d6M{B5raMCh3}8vIJ-^G<9_IUrFMU1EK)7?5af&P8dyp^mP zZCnnZ!viQ{JavA`2^2B%R`cKq9US?nk`}J3`9)X~7ex$Qi^A%|)wN>hUEGTfkDB)- zEf+-$Ii}9_QiKvsMrr?@XU{)=yAKpGs!Th94v(zWjbMjLW6$t~n#kvG3ZoqNu#1)sU6+XPdlhGM_7BEs`H^BS3 zSt!_(75lDqnWu)sYrO48@;*@yDgD{_%d2=9-Mx0}jYJE&S|{J1jPaHf3X@BI7{z&@ z-P&-i{9XOr>Wz2XJ^a0=MT2p@N1nAkVW_I}HoLwvBOx)z_Ggct%uSvku)kp4S9Ptt zI^EzJ`{lq%>(MTH@}^abFXo*WmbgUpo#tPw_T%xNvs=btD<7q2LbR|NJ4f+3?lg9@ zg4_tY(xPCLLXehTXH?pN5lZ7oh~Nvi6Ma=ew;yJeqb?GpkVb;fbi!Jjv z>&b_duNtUF`tH-)HGF#vM{92nePbN_IQ(l)MsT0H5^zN1@?s&sb#Rv8BDK z&3y8RAdi%Cdn_`zhuV{BZ*tgo^yej9_jUp&mA;T=j}%%s$5Y?j+w`n@p3`9V%4KS6 zwXD{`M;5mhI<;K=sa)#bh7ITT*rDfe&El17x7(jhSH{%WP{wUOn;u7Yc8C(x6r$Ps z&=?fbYu24UZ*qXp`fd0gRF8gMH^5(`MM_XAHNXCF=VXm(;LaVT_}4FPgmrv~RxAHB z_IzD`gXnHyo^Xwg;x3*v%^bAiMWe~2&7*6y<$F`)SPy*~?muJElgdeLl{Muu^`M<& zq%i1wdD|03{w%NAUzn;x!b{L+&~Tu1k+M@n(ay^5*(A9ol?9#Yj?ydpxeq+TEoM-m z&@^ZU?cItGy=VM}#D}AZRgJ=mduv*HH73;0CGu4d_)TRrZnKY@f6DFVu@$5F0KH57 z5UpqR=|YEvVy}6j`zOKNIaG5Cf##b>E~`vIqsa&;;>U16l6ZYTdfot^YM!v%~s4Ito%kfPesM+O}gjR zC3%P2b*RDa1!rXngcH`sv}^Q!!HKRzXr^T$r(;_L(@qT^4h~YFMV7BIzEz;g)>BB| zEfqAnx9DK4mOdb}Att@vzoSGM01jRWIVZzL`bOlw4So5#H?{5=-L-ZL7QNzfr~A^O z)xJy5_G3E}dZf(~lPr2ZyR*NV|9tpC?Q^Rg9OKgnAvine?Q`?Q8=_U^xi4eH>|3I65`L*SXTqwar(L@)f&^_e%~9RX*R>j{YeB zNB7WU+wQ5q~O5HeT1@a{N&MLz5rIIdv|LJuI&>Y=9{QC3YQDxEQb@uixTJhDI&4CjD4SNhr9?6AjIkHsP=IkDJa*fgVW3pv<|DWix~-$pxPZsLS# zv_~9_glZt87^;{Eh+;Z8qEP}-ES%V*Bbbr~VKgOJxGMp85a!n;F)4B}&W~bx;{0uX zFxhd&EStyndB!?9`Mazzy*7w-7k}$z5qvEm*ghaGKs@+XRU92>V3>GJL@tk~YP_?4 zT$@c?Tzve{$M~dn-{cjl)E}|w@!XjP2~Qmp-tDr+<|gDDa2Kv5nByeoLZUv2bNl!w zrd0aJsK%y^CidF;IpHL|J@RW>iLJFr`hxCjl9S|rPBoTZo(V9vD5|8*l61nqNn;Fb3LxCz9F)=q*_f?k94KWd$WegAwiVB zkc|=b5p+WiSWm)WqrP>W4-Iph6$&Hb3It*EfzXLSl4BXt#~EYU)Q zoY3Q(aO&JhiQFi|+!*KFxP;t<>fEHU+~nijRO-C+)f}S^khL6<<}3?NNnXKNUeR%0 z33dKQiTpCd{Bq~~%7pyt>ipWV{4dA(_0$E85(Qrk3tA-d@vZY%7-QPU3VMzU5Y&bJ z5{2Ik3x}KwM-mFhstYH^3a5?>k<>-A5=HZdMT^cwgVZsI4OB(%X&(O#~TK^4NxR+|> zl)%rWRQaV$IiOPhyB_X^K?aPGk%@(gnFSET{kInGf1}aUg?>depkEOa8yg#U5&!WC z2?>dR5ElF^W&iB#?3|pO+}zx}yuAGU{DOjl!otF$qN3vB;{UAC(|=J5cWCI+ig{#s z?81$CWMX_|5@2FvYI1C9>cUzBiJYF9nE~`W=jP@Bja)#*6OhRTgggPITtLfnb#)bx z^ITtF|0})RpE9|C7Vhshw7^c$-}i=IENOTF9B!oo zDUh7bw6-#Wu_Y8DOL96AF|YKNO2_b)s!nF3H;&>jE!^K!1ykU^mNb6XBTr&ZM+Hg9 zJsynLdt&-YtyEqwfu=t29aYS_e!RVT0;z?i*9SM6St~r8zX|D1quoTK2XXx8NH|JHJtK7WYJlA-y@$>Nu2nYxY2@8vgii(Me zi36_85)#+1Uze1Wl#-H?mX-$8ZQyXYtgNh@oSeM8yn=#)qN1Xbl9IBrvI?Nbsj8}` zrlzj0uA!l!si}G6#tkhkEp2UW9UUEAz)#@cLc0HxaoN${-qi&tigqD-d;0r&2l^3% z1ARk-{UbvIqr(GZBj3hHzfFt*3{C=!4^I7&iNUE0hNgcqIXpc%f}8>votYk+MNZ7k zOwP|vFU$kh8}rK-KIqHqYpXzLZUOttfxYH`65G9yul`qYX>%EuC8@F=lO!nhk&V@!apg+|8(-WkcbC-JAhcEr=^3@(KFFAFw+BG=!~okjBGF_0CoUIW&jQVCYB4B zSpj13quygWoUgf>Y&Bx8l&wEXPk6%bYP*~_PHv)+fNQwW>hX1=y zseobP*RM^jEzLk2c6PS)baw!u*oWvI=3d|CAc{ zD;qX=p*L`zW)smi`Vrwv1gk{Mehs7~yx-Nv|FAU-Pu5|Aqu-=Gm_toM^{GlcEDVP>#u_q2M2I!gy7-=W{rSbzL$63@#pL6{ z77?t9vDBnY-kcwQuaYmpN#N&btPkIE+{h4(An(pCGrbw1C8M+;Cj97jkRGS$yGmgb zJui75tOd%S9k-V`lOMejLjd<&pi3Z<9{S){+>3OF4E?&oXN`04dhG?F2GTakB6848lND)fRLaN@FWY& zC4qUQT02>V*2Ms+J4Ffkd0}nOq z8Z{$7HIooElQ1>2C=H7k04=LH03DkI06m*H1DiOEU7V3!jG04>g+r8$QdF~)3b#exX9e~khZnIC^W))Y>D!I(6xXh|KFQ~b|yq41(I9|YI zUd?4*b=AC*+q{C;y!@K^Cq9cZ0gI1979T{O7K=YCy#6d-+A>%6dA5SpdzBX%>egvm zHYvC4lJxBp?m5JnI7XX0zkU8X+|Di3*(2E9JHXG+?|XDs)pc4Y(&> zX8Dokys_cl^`VVA*2c}e_t1|x?iuHipO4Hmv8UtI3(ih#C{3#=aw*j1&B& z1^oBz?$5HRP0oV~JzhQ^uDH8Ye&+oB>2#h)HhE~mk;PnAMC_d#2|vu2QY?C7LL~k$ zZM8yw34(*TLD}e-#ORnL=wK2IFzGL_NHMUkU}BSBfI|Vsp#(z!sKB^XSh&K zEj9oi9X37#4gn($Av1)C1(%2!O3aK$!bnI8BPL@YBd4RFyqMhr3rh4bW?&JC0hqS3 zT)i-B;t*!MDhcC}qvus-6wqK1(P0z6!*=~Hhm0|&+>@(H&v-Q)_;fw^^@8~CMhQGf z5->>@e4Ha_@j=L{R>-zl*r7|Ygxp5MZ|mccSOBcf8nz#`inJD zpEa>dfc>k$Mpj9`HR*sgc;K3B(3;%8L?LKRIcQD(U*7XCKVe-iXhSY&^O7yOAb{;l zcI1Kpb}!kJ3j)~x0|#q095k!wTt)kKJFQn?L92tF|XWtUcGHw zv*l2;>0G<IJnXClh);vuC>$N z&C{Wsv+?~ibtA}ObYbnO%J~nbbMy=@32j-t_pFfLZGpeExJi3|2 z%r)ueUE`3Pd#9k#hW_-2df!?K+t;XPn^NMqHs1(7o_!#?gB>YRSFN{~N#yE4kkw%) z@FIEEX+Cuz_pY9%kc+j`pm@)#7xc9E9g}MAIln+{N_Ow_42!zOpue_H8l7vu(U2nJ z95d2R-i!97%Ryf2rnfGMb{Bq}7Zyq~15Jx~RF~L`U?{?q4{Mf%!~mmtAK|Z&X$>d9 zTCnzz>3R%jl7~dH4h9SLv~`Dw&FaqubMwvhLatvZf?q$r`N&$X`jH%7C(+9MTOn$v zOiS%M7Ei);Z^SP|8_88YiF)9`$rhulsyY>Cj%&ddeJg9lG~!%{!YuAZH77f;X;hpo z((W*KDMj!jWI5HYT$Ll_SNZsIlJRqdV*+J^ajC($7lRfSlnx6@kA(-ofQ<+H4MuFd zOYj-7f5C)Jzzl#x$bv)2ibDjz1|bGu2f!uafRb@RuUy3==fS7sBcKu>pb;XZ6(NR6 zk}}I);ZUXIy-6$l048n8qU6M><;Q(H;@aKBYxh$49;EX>%o2E2A@@k!EuP0IgblmY-Y-~(foe9*dL@VZjSU$LPS@=w`P z3fWc)+4+fb$o3^$${|15R1W#chH}VH)|Es46@UE&{_2bUPrZKeJwyL5sD!SohOViH zt!jp^XooM|j##`Kx$yAqoJH)cO(N1cW!gP$%J=wRPE z-$vI)Mpws2SEt6-=Em2TCf1iHHdZD#S0}gDrnlFpw>OYGo5-E5nO%VG3-)$q_jcy? zcjxza7xwoS5B8Q0_E!!MH@+Y3{P=Nj{Nw2K==kjDhKJ8fI@vop^h$l5Kd62 z)5}hTv-9&`Biy7j>tny)N4O?Bx%-nOINmC`e;DDKKva}imm?erW8B3E2Y%3zl-mdE zP84`PI}xDE-kU=I8l5gdheIb_DGXh6)mHtJn|9wI*QW(~iM(@UUt_z_``GMpE1jC} zp?7ZE-#C{YAHDKq(2DZmS&&1_kPN=S$Y!O*tBvNoxxDI9Tn~k*#OGSl?~e88$6U12 zWVg*IckU;Ye=~7)5m|fO;b(V0xoUx7BB<=N?-N(7SKV;5;wQT;LqWSxj zQu>n9e$QM3n{1ub;deF0(>)48cixU`m6-IJZx7g;uu+zK9`16fvBa2IF}j|7s3;<1 zHR9-bV@?*3bsS!sFovAk)k)nxUz%t{unc1=OTPlfm3>685Va5nHd`C~kpijg!Y|K* z0W$IKa22-P`AAi^*7?YP9GhUEY%~l!bPRlSOacr{LJTkw2ACKFiv;s0*d$ z0+S*E42qa!NSNRx%(A4+a-=Nsmne|2UT}p?@d_JoR3K+lpkSA$WS6JnkfY&{rQ?Ld zu1d4;t8j?xaw|OH*LfpqmMvl5Ao*rU%4RW)o)HEjLwdAp$+y{Q_rd2x)~`1`B>aKBpE`hPqB;*V-X ztlWrP)QOtE89jSD26-oTN3OlUd0IC5`_PUzOWKRR52p12$5KXNG|G4E$&V$>B{)fo>AJ8@u?xRvNEH#DC6_{ z)GtYy_0jJeL$jLv^IARgTHfTfy5zPx0pwqj*Xoqh>Xg;&m{D(=T>Uhm>|soi!P~r> zVVPm{#K znqH@TeFKpC)hoR@;C<`c+_t0-T}4%WRZT;6eN)Zj3te-oy{lV2n|pOz2OqY-r|$kp zJUEUzJPAKK4f$~vbbJ>~-|R^WeyH|GUTj zp~wD#`@z2Z;hx*~J-34$x5HhxUt^PpXQsFR&#@`zaU`4GP(f9{P%g4D2rC+n&dLWN zg~Q|nX;mZV(>3~Xa*c8YsIwGVA9=F8#f)MW5U^`WdK~h;H+qO|g{A$gPGp*jtfAVE zQVStlH2U8fXtw7-qVu2F2%uwo(@HIy@98EZygQ{bqBNzD`z|2AKbk8?USXV zNMoLE(Ss`K3}Ib$;bIka=^504dMxX$OhI6Rm-}835br-q5cM?o} zvpn))?G<#mz~#(ndT&_5>QVHdn)+e6#GSgAWe>h54i=B_)>Y{*`WlUFN4qWDX^9l2 zbtrId4m^mwYRGD_m?(%k%LsP4ckrep=)(X#Md@a3I_kZl!SnkE&If_{LvQXby#H?b zdY6!MKc0QUa&@C3SSt*)JZLvnlCI00e;Xr_`#VbxQmtTOFzMmc>0HQ*wPj{?;l-8o zl&3Uz1mnC29rn6K^V{X{1J5RM7=xO*Z$k7K5`0zfT+bsX#1{iujHyI>FWih+?~0R) z=8Y8o$HReoj?v@Bhtx87DHP9=uNnvMYI^nC|hD0`z*^i``wF1h=0;O z>hKO3&I#o0$Ig)~OQKjvcMpF`JnF}3OtS9gk=&Mh_)yQOmt>i&@54D%#PqibMX7H^ zV={}`3Jb1}Nt(MtOmSwZ+LaQ_S}u%;XPQfNmXBCFGQJe-EJANPW@&_>WN0GX4Y*bfl)c=#Kn5E>s?W zLJ!D2UO)?oKK{<%yt7#87=GhI1M+WNdTIfBkiRcY0}IrDF5&*Mocn8w6Bmqyn}LOw zj`@?C?$&&HJcm_y8;83A``bF2cII3prWv-qO^pP!gb{v*ER24*EN>9Ya(O% zNXo`Y%1KYgO-I&8ODRxMGg8hlRpw#db+b}o>qb$RehH5WU`z%cB7Z(d!h_f0A?p{% zz>CL9fZr~y%LW2$CI`XBouePeQ zrmnfVvA(L|b7fssd1ZNd)hB>Ym7hMAmHniwytJ&mirU{5 z55|3%d0RFgQMD5LW$j(_W@h_FZqIIU-(KnPe)+^fCGxOl_Ius@QPaYYmZhWC#qS-n zK<#j?e{gnaXmVt9Vq|O_V03h13|JDrD9rrgVs&bIdSPaCW43p9w)JT4^T|TZ*-|ZP zt>J95|o^dXzKWA;pk}f;9v{rHwD~@0rkp_t(}dn-PP?qRJKsR zkDU9r4#(&!^1`uCc6+On7afk-Mm|rgjw^n8SjAB4U!7^bFd5cxdODeJ9)wkNVKUsC z%9H%sRn%hnLZ(s4@=AVvP5y;Uql+aX4dZOG=)z=pT3oMOavbMUrcsa1%J84aH2&7% zh$^nKTOP=N(EH`DWEzd#mPgEPII+jSB@h`>A?@}eQsS8LCcE?3GL1|={rX;-64*=} z{Z7Mtq}{?p^Z(f4c=4Y#oPE>v|$&T9khcc=lO9ecR zn)TA`drhD+f=>wUPa|*Go&n=jkX(~(@j`a3=wo~e>D+LD)~xgHWA%?Y*Mh( zs%=AC(h7^MjcOyhYPs8?mX`GV>y-sTHNHq&7CXLuSG&&Z-7i^6nF2@933X(yHbSM) zue`SJ&j5WE>Kv~M=IJ7f5Nv1IwSO!;l!xb{ zX>LzNCb_VFsFaaYDVYD*8bj$i=F289f2ziVvxCu_TVV%Z#t9lOE# z=!D|2VxNze-$kR=SBSy9d!xY$p8jhk&%Tc0?hsgW&srLc_(!l3WDmdL@8O&bYZ^m&R6fkK_VH(Kfp%trmswe8quP+W zZ8`y^is(eB-4Sm}g{1(#S}#)c$KJ3-<+_fM7Y0XOD#+RhFzon|tv&{r!nHxtvMs}= zYaEkm>XopQqa3bh>LhC;BDDQ|AHy8cL&+rU&(<(`2A;>s><)~a)0|ACb?`AZC4CX@ zQrb0&U;392INWJEH&w!!DoJTqyqn8GnrZkG?)S5gE0`|P(= z*y{x|Gtg4&Q`XAO`m1OoJ^a2QLdL5HK7X)>V;6~;QGQegM3^GPr( zYe@`IK0dk+_#k)KM7MICYLlUVZ%T}tI6$V0IgDUOnYCc-bDVwCvwLT)dSMY#uN+_I zLKxd_<*S9M`OiGV6TT`&kQS`EFBgYeR$ysK)k?g9l@0N_jp`V|$3ZdEKAFd)43y=t z^q2SAgJH8qb_kb|6VS>SB|hFG3VT7Dp%F{@P$Z&U+Swcw{ zpG6z*?7qX841P|v$bU=csmc3yx4!DOrv(dmn7n`UE?9gyUZ6qkLongJ048!B|6V3? zVmQrLaRD2g)R|qnyNSv(an-l9y6mg{D1D{jIykBPOi^=jm`vVx0*Da~xm+asjkJXXU)L-9o{T!ao zi`jbM`oeqdeo7U*E7T!;TWZ5a<~ovd_wci*$tHU4i888)sKxGUdtF@HbgM^z5U={` z!WVybOk&k|y;+70X(x_bX@O?6aHT3k;#>vT$UmfyeimUJ26vkedRNY3V3Gy z>xx(xNQ2Y#_RCgJrx_CND`|uh-w7eugqa8eBoe0?ZX2i#{e-~HrXa|%_L#7?N2L0dK3`d@nfR>Wf8!k0+bi;7i z0iBoePg83fj;QUaBNt$q6&+!?E=9YTPD# zkR9;!Ral=8&MwFag~Sgr#*3K8S@R8k(GuC&j|yC6dP_P(IA*Out{6m9Y4wi6%qW8J zDh_dzesH#OkoX-a?orS=+@oR{zezbn5se^I&q=}Jj);DAk~U6eHm)DYwxN>BWSPLA zD%$=wq+wevp(I$2k~9tJ6RhJQqUu}}OZd(`N}a-Nn$OjOH9F570#zZBz>d4#3h{-< z+@~^?va^3j=EP7HP)$Votx_bK$f>FlH&ZnHyxs$UC&0p=TZogFg3sg2o;^m|+aQoF z3gJ$S7FEAY1Xm3fF^{qr!G$er%f=J->XY5$z-_@Mc)skNWEQMoKqk@#@dkOq9ODQ* zqFV!!*0mvY27o%P18&1hVFQmbg!c`UKG__?w*sk#KSOx06936wVkn%rJ3fib!xJ_d z_cWF$P&6Lh1Ew!E+tvVxWC-KinZ+sknti5RE*dGUog*a3>Y< zHwJ?5i`BBeroT5>4NNrCfneJTV0gBd_%yTysgmM0Sf^TN6FmsT)APpN4lgK$cz%Hs zAz6fY*s*9!)_MZ z=6Fv+JTr;#z;~f$PWqu-p=Sw?Hoc2h$FAE{;$O-4J~V{x9II?96p!Uej2z=nQR70{ z3xoHHa}A)Im^Wa{s2dXa-Z>=Jy*0a{nl-+jp30=f0LRKP4NWrTw*6`Q=+GQ8=$v zA-~JkOXFYUk9%pnYH59Vc-(mSMF39kHLEu%KtVH>Vae6uk1ZpU`D4zjyYGEnvcqqla-e@zbUy)@BGj9k#5IB&C_wrokD|OeE7hCj`Fk z*+i$`Lbu&a$kMW53gnh(xna|SYiHz4fj>iho@;60=cU8KTP0>2@9@I!)wS@YwC0z$ zN_w_!p0{4X+m`%V9~9BbN3^NyHz@VBEiSb^iJ*Nd(XOuFem{jzJEc9dyq#7b>Rm=; zSw}>m54E&`+MqfJY+4NKTAnj^=-RZH+YoP|iFe9Ko64YArymF$lZ&w?V6o`Nb)^$ZH^F@31WXN=oTo4_Ubua5dI|aISn8^;xh=CYTC2!})l-{9F zy>;6(4Sh|`@V-#xzD+cAM}TZUqYvBEH=s6m`%b-oqddk49K1h2VktYV)0`E&HBK0&TCQ*Z*q%>C-4W290jMX(c4H0?i6L*z$ zqIkR9Fi?;&oQSXWm(2i~0S$S5lkEjjGaO6Yi0Zm_N#v>qJ=*@(PdvO#+~4bmKP)jE z`*c`=ene=lsXC&1%5P+?XawCnBDp;R79?ZZX&vMpo%9>gFdh}}Z(l1Mwf;7`Q`n|q z3{+F$Q&$;_@g0?j7<-gCw$(dk$iQ#HHy$oCE?6{5ya>7~95*82d%ZIriZ>y^3vk#0 zp;RWY))O|bfzOI3JYJ8jZcPv^f=mIU*T0RqT=Kd_P6pXEhp99~T#}hJfq=~*;@Rey z`tdpSsklojYz8#cW-Q`$uNpI4ZEx}_85&?P9pp6~yhv6n&=9r*N>OPrYnsfsY^)NQ ze(N<-6*&{QNVZc(->y47anQfGU1s6a8q-Y95c>eNeSfSSO_ z_Bok1vVWRk47WPv+01cZP(jWz73ej&H%IkTa^Z%_LS^K_uYPW9{hTHo^T`zaQ3V5G zVkVu}A{RYQO>P_7LOFu++||;m)}C&Lj?6^|zYF zC8^zI!`)Ty-SxEH!GUe|Cg2@3e&!6mC<_0+0RBH}8XJCG%>Tgk#{ro3fYN&)qdkbv z9xQ$D?=_8=Z}3IX`0b28B+>igW&89C`;1q=fmN*12W&g`l$d1A(#$jr4Jt%9m@M0DyAPQH6AK29I9R&sxcj@ zOCLQqI@0tx(oR3pZ9IDT?YZ`3^ z;r}o$p}#Zvr#MzpA70!atfW5?NqX0 z_ayxP6f-OL--HV}{mwJ-^5404U+liHgovo5tgO7MlB%}4#tU6TyBFqemapBcom^gf zIavofyor2mAN$fVPR}Vt(u21j#suBn5(uSHczqMu$wigX_Rt$7k_jlI}_SbwHs{c0BG(6b-M|$1=3d{aV}n`D=4wZFg>ce^KkV&)p+c1EXJu#_EQ~8V5&P zhQ>OF$NEOb`bWlwe!nd4#sAdU=;+w!@3rQM@yRJ%y5P@%!Sw7bE}_1>isK~x4x?{w zZR7Ije+t)>_*=4uMScF%@4(L=d7nRn={RoDzZ32W|L+R-rvCFk z|L42@YY0z&TKcwGHJRc+58>4pQz*m4$n{0xCTxn)^xY|sKL0a7@qebBtW<9BQoL60 zR?p~Fh~dSkE==yN@HTn6iuOzH2mW!A0C+T#Vxk}jg^EO!vAl}qa2m1p;2L! zJXq6MO6W6_Z-26q{;U~Hvmtp#|0p4kV%w2xI7OxQpRA;Zwn^7EVv&WZyfR56Ts40U z;nVDLMbW%8^z)$iv4&`G1qh`=vUWp+(Peec5DM9`BQU%RN zE|JakOg8=o_T^aR`-vI%9zv>OxzZGcf~B#~vsdEuoi|qEjf1#W6U_cqGx&Q5|Hf1_ zm@O@#h2nk3OM<^xNf7SeHG^U~(xYQvW2IdOO#a16;z|!q%371wUgGM^{-b6P$4cUk zw*nU#z72TfC*teS%%A#iW$75ICoR zEbIS;l{9YsqkbhS0|254Kn#7Eibefs0#VugW+fHvwGaz$^AnsOpWm*;bxiNIQ(F}6 zchI|R3pU?+uwD9vGI?*mn=`lQpoh0gxrBiANlI}y|AfuYev!2zhpz%Z#XlhcJV?J9 zOlc+zCt#vH2LEDL`ofG5Wos#vb|Jz7EP z>vwc|@vqes7f)HBRBsA^a8rr=WY)>Tw~A@kuN*||;VK?PuereRfXR@T{K2+H9`l3U zT8?24a(!M#@#|dlT2w$N)gBaDF*PX$t{Du#f$Ce7f7+VfO5T)@9%O~5jUmTM-c;MsZr!81e)!>U5F zDE+>rfkX3R9vol5+m}EF?MK{KEpqRZAdE`6?S?i0pG|QQ<_++NCzsvh&S--5e()pS z#sr9|%fK95Gg+yoK2a+Eu($$f11%HyYiLY}l&Ke~bB2Jd`Z6w0!sY1O;Lt*YOt37x z?b>K?;Poy5Sx}iDp&tg^XBSQ=z}a$x@HAMkO$J`_Sa!Px5uE$-2S~8me+*$)|Ze+77}4C$`w zQ-P#Bd5E3LTCc@Y!OWGeg}sr;M>IoZI6KG#IRJi)HDACxiN+w5qaX1BQfWm-#@Yoj zD-o>pJSd+Tk2GOk^5<8elh-#wK5E&jPbj6J=^t?e6)&DsO{;}U?GS#p!NB8O8iBwp zA`NXk!T?P0?e&2Vi<`377%c*YSo!^)X@57+LOranq$GHA zKq@3}lGdA(bTmyL3kZx_)cMnRC`pB_nf;-i6EI$QcD_L*? zZcbU_Yt3M;YUaE+l2X@&b|606_1Fn}6rOGdf1zI{0iTF2A5(lAbzcRkqop6w9y}f%jCeLGF++GZq=+zE3rn4`Pw$8%=o)3gb31)fJ{@EWVMF;SYcUc*XkD3N<5GyWsE@SzKjq!rp=#y@Rgd{0hV0TCXg}# z)4$1Pf>kcNhcrFNaB5gc`6;21FQen8qjo?Lx2Le&;h1BR@bilO{JXrkSl3!=g8Ni5 zziCG)5liHa=uQMw+_fe?wGy8p%qoPx4-d}#9)C$aQbgIqofJbam$L(xMo-I-##J8W z){lXojQDmcdfzMaDBiH`o*r>ww$52o3l_0_1}0lB$+g;9f2Bn?EVsH%QDksi%JBUR z#`%yUAi{8fn`L%S=`*!&V5U8)v&_QWs;F`V*Dst_n$Jo7uvRP*o)I zTzrO<8bLuguorYLLV$mIqJDiB$4W}cgU6qmUu)P4_qh1Z*C*0~r_50cX2!ncEgjiW5F*U6nKS zI}RxEX&>+Jwda!C_CvL^UZenv&aDVngnv~-2B^9v9K~PePjrxRnq-9siQ-703{d-( zY=E`(vCyFhpbo3a0`|<*CTIeiPNhWf?42e{?iw^f`G(X9GS+V3MWSG~kD6hc7*EzT zl$_`&i}!aw;E$Wazx-Nk4J%K8yQL6M7Um^XqQ%4yf9!(Co7W3xY8f&oz1f~WgpE!H z<0nqMj4qMG4F)F2ma5L9%R3Zz57$`nH*Pgiq|+e`LX5%UM_~RksB)9+f-K6@SWj=y zd)5!82EbQl)|dnO%HfLt(XbE<$ligUj#C2;dk6sIcR_CxucK~+`0mDg0bpRN1Yfds zKWdn-fF-{w!dI;fC@A1}>y%$e+h6|Bk7ttqhm%kDiC;1Z|7)<%iYY*`lL9^jV9MY( z1Aq|#nHU#T1XNUG63B-FfnCA3Gr$$`;Obyly|e$kI&PZo!=;8uU(-x61HBmo-bO=J z(Ll#hs2UukjJzAd9E4JXsAB?^LSWcf1eH34NNfAXQ+w0Gz=o%uAW&#YZm`m1uum6X<;#0%c>ysuL8V~nT59Ry zknn8nP?kf#1Z}XPrB`t$pPIn^Op!1zq`W&!+Q~H-UIB7A^|wR>@pc6)9pI4w@YE&& zEE)W!#(|+YZVUp7LJGSHK-2;FX*ouoaEK!_q_IOEc?_mS0Z_nUU;ta>V>J3HK>E-!+7AJ~gVb~f zK*&R*-+*KH?#QIw$AXmATb?CUYBc{rZC@zm2VT;8H1K<(nmiF zr*wM@Pmpjf1Cmm{SGe~lPlYzthL?FXLkf#6;#T3vD0qM|A(%1ufGJ`pEAUYXI^L{X6fZ-f# z3^-5T-%{TL>EAnIw(-EsWgiI`FW|flfc`wAC~;QOdkdBSb=_sg2E;c zG~*!SFo}Cg!8~Z!MN{y|N&0t+4E!33=~#ZVGO#>8Ke1BM8fVaqtF9^{@w-qa_PP?< zx0~-%+}(@od7)}i?{qSS2w)n3XlHm*U}#p5TRv}?+z8|&M(9Jzrj>y}c%)cdT>eKt z%M?vT$g`&WSDe=QxVp!#AX*Wbd;(b5iq)b*c3n-Om&of;bAJ6WRYO9pT{r(Qj?kCx zIsSKFzy6YQ&ZWZiNE1oRf0lKNkXc}Z0`i0zgpt*76DUx>?o&3!_W}uigp?r{%X_h5 zcH1})27}O3XPT6Km{l+3h2#6cll@GDHwKkEn5iDaA z=6aY9G!83TJOuWJK?+)PI95J~PXNJsIOv(+y#6CRIOPCzBC3u-2z_I4z7Cud0rOGTvT!RR!U&#Y>S}cLI?GLho8m2_^vFCay75(1Pg-?$BkkXU%-S#anvf!de zw6!O3yQfUQm;YvOq_TZwT`%ujyQ>2-`p({#BB2HeAuL5-Yf2yEvpxiVUrkY;4l&Ht z81xVU8u#pIa5iGU(dgM{@%#B)QUd-x&}{9g6mapo$ZXWV`$xc7UmVn3rKt5*fHII}8+bQFa-wvIg;`j_{I< ztYtabDU29dj64V*5i=Mi?H^f{b!PVL;*~q*+&yNPI!>0#?<+hWVBu=sAL*Jg?npAeCgiS}ikC+<;Ve2Kc8M>C z0FCj2r1yp%FoSSF)CU5fz|;}v*D2@mc)-jF5;VYbZbEDa|3L=S8x3_wKp*bmOJkre z8B@4ndF0%%R0cl*$}#qmY?3u9o^L`lbuwKAgg}7Y1fUUfP-g*5!Hi2nUE$D&P2V0~w*895l%?`1_F|mlp(h~gX zFTPI#*X*KJu?}hDPW=2XstX2nYq){D!R6W_g`8hnM}W7JxA8ha0ADS&ZAtw}`24!@ z$vW=WDKYcLLzRt1(~Y-YoeADfK7fs@p^b-L&EI7^7gRR0v5r0&!>>pIz|2j)Is77i z{t~H8FZwM_DC|+mIBqhZ)-WtpwzbIG_2}MaDtP+|2TZnX1LV8KL;}hnRL*-CQSqA@LB^|5ojtk+RrTsuKgXA-I zxA@I=u)B7BKk%Od*ChnDNoO`!fUw36+)SRt=Qh9b9$eb?T4~31+kKD&azM40AsXAx z)VRk|y1%M z$Iq0ZbSR*;?QJm*Co7{7oAhsN1}D^BCmYJcck53)OZ%h@P96cC_?Gq|(V&-Ww-w1w zaNMLiVyGetC?vc|00*)nfd4~QQiaiZ_H7^wTBoZXaAgd@-}^VLBB~7MZPM2Ol z_Q-%|bNKZDLNwri!b-YWxWa*405J#*!VmvCFOr$1RXXU3S;P`<*Zd&tI-gWKwJxqGOp^i&Mrb^nk~d(XHf zkc3G-MSI`0Ba%Tnh+gNwtmi$SQAdi7!^@InNuQSx2Hiu;;cS(3`Qon*uf~fF8iN@0 zj<-h&trj{`^-kW**E7rR7G>{t6!CseWeXO5d=#aEHu2ItPZb0!m@ zZG#KfgO%I{tCGxcWQj-~uED=8}@#ASJy)d7Xxe z2G1gTcXc_3~7#J9F#i@UHRQ@zi{&{_i^R_fXR#!*M%+%1v(%8=0 z#KFeI)xj#r-#Z~bE+;qd^OvfombTvhp|J_v!u$Nx%mPl+vlyIa=a*L3xBe4J3Afz- z|MmaQC$RtX@IQQC|KZX9_95Jz2Zu*LkB)Jz8#v$S=;Y)W=N)W>UWT z;)lZN^#AHt{YUR{DjW7StXYK68F!Y< zGsHBIX#0<#L!&s!{Z#Q2e#53eJr+C7&rSs5|L|A@Ww8p{Hs(#!vf+#>HUA#vG;=qU zguUVsB`y`AZOQuu|r1$s~B-Ke_CQIX3)>;Nq=qC{8I@IO&bY34UAC4WcrA5ffrH+uLxxT<{L<)e|x zA1J3doL8)2p1%?YVf?xH-ox&<$D(Tidu<$~gF`u0CK@KWf8|sb+Txt1R^BndY@zT;-M%6?Fsv5}MFyt(lw$_eMOZ2pOI zDyrPv`~&5*h4WaZxpOo%GPeGm$MPHH#IsW|s#(ih@>Lgya{8Ocq8k2MVw`RL? zYqxeU%7b5H|F_3-x?1?7p=Ut+dLsbJyNB~w`idGAX#VtAkTo#6qrEmtEt~!JMtOb8 z-yX|;=gBK&$}YBen}hDLFbPVW$FhCUTUWqK*>`us=5xCc)amDd#0fES0P&0WaOgoH z(czPa9L0yjql`P(M${De?v<;a+&vo8er#~>iH^(8(U9Jc!=p*F5&BBim$}8x-4?YK z$1}+9v-cm{O}wsZaTxJB!OnYbC7&pHLHSQ>eRA)fE{4SGojwW`-W90|Pd+?dekVug z_UOGu$*=PGw-vwEGR~)eDQ3o#o~^ScmbkCx1y`JHMOTqhY**amKUes&#(28JxUqXa zSLbqgzK4VklJ9rrzP^y}7QQ+IX+}@_wwkeRy6tXEKl*}!?|Fxq_ub%$Wxp+ZIRnqn6UxIDIDeJ8o3~5tKplve_IE^XM9* z+PgxcCTS&t@@HAYjs^NF9M{)+w1W8KK7Gsvyw(xZUsVsRUB0#M`KuQhsGjihrnz9F zld@TqN@DM}=AG1ydzSJJdLtjr$BW!ltY1D$*80B6ov8B|DW#hDQJF*Z++v_-Q78_N z86dDWq1w|tg13iF$vxi`71fBNNISU8F8*snM16oF9Y}y8f-0%Gusdd+T3fE}bt@sk z&$437IOVzWzeO5;`oK80{7}xl!8Z1}1G}Wvih99tcX3(v+-D5fL`*XAK02rSbH1ue z&q&(YVJ?ECKrL8lG>i5qPf?{nJ-%l&N9-tHEwbQwuF_b6?ookue}QII&sd53QK2zO zp?0Uz_@|_!B1@G*-HD#@%9^8MWMrZKn$kqg^ihdxf1%+?&qTx7Q7MX~$Qb%~vW51z zEJUTql&W{KL+rR59a&_?@p!67_xMvnf04Ox@6>?%@#hSZVoQa`)5A%}6?rPfue5rn z$7_ziltp5TZ7d$oOiv$IR`(abap|3zKRd2!A}K)zKb~EpJ*n`8pI? z;+Xq*Zc`W68Pi|lT-7_b>wZ#;!Fep5kLM4PPU_ZGO5G=V=Z|Yn>h~f`J=Y#DoK2rJ zoc5P`pY$$Z&rTWvq-7|mG6qO@+5}TA^P}p+K*Ud*;ZbD)9LkG?dZ#Va17$(NeT$?X zr>)GSDY1)|C$ER?^~&YX6L43tN?^nGVMKkY=2enJN; zFSFA9>QYqw6dT{SjQb+H)uKMV%T-?C*8A0?J@6^6s&9qg<5#aS>F0z_oOaT;CUyR65Jg&%flD{Y(w*TVEfrZ*{p<4L zXW!6K6(2cNHk9IG>KKXohUA3xaqJP)9_Iz$HN;rWO32@U3m_IIoHT;x}@ftZ_ zApIrW1SUn=fA_#ZPlTJd43Ksl5*QFwSIeyi+u++5OYqySt*s1pA(nOD>7Xv1Sf&Fz z-)D96-&I9=IIv`K!51@x!fw4c4eh;g9*fA}*8!J-pK0e8YY4KMp5yo%UVAa$G+AdMK~JFP?!E{x8na9^LS>NU+Y&NO^I{Bhq~!o zRJAP=Qa>Yn>Zk0Y-R8I&j>~)LcLn3c+s@ORYV^c^@c4)<=%^mFDA4WOSe#?#ybo&c z=~?UY?KR zo?dw6IUAjRUUMv^)nw$oUz&a~Cwz7OE#3OaHt=%ai%$C=>A zUG2v^>BnE~N3Csr-PrH8wm%N#beq~=NLxnb`rnE>CGqs}9^lF1<+6+NaEkGAi}UeH z@C!%@-bLKKFC%Hk;<&lqi*UVH;Z8H=$+6@vvgIms;QH*! zRpHK6>B&_a#Mv0hRUaWx6(nAYlFRdaoaU?+=b#y7rx*0bz}LpW)!NX(+Q8022l+w+ z`Qo{~rJnsO1AA-3-+EdR@AXF>WIm@u z$xY|-o35X3x>vAyR^IZjV-IR%4{l)(YGe2AxMkDNYCOiGGtHulVKrI5X|c!l=8)a( zjLYwWHw?=cg%vxc3x>Tsx+((KgA%*f_U@6HeIeYtMK#UA5jUXvAmlT{%zwNZ18af@xq%N=PeJ((+m zd8;EOYZK+GlNHO;bu06&%kyoki+wAYZ;OlLvzVzd%-q1@LeCPW>-%E+_oZgcV(rXg z&E&$@DNMukV*Bjk$l}t}^3u!-u6TY4v$C|ZytKNqh^xQ;Lvw2@IN|=p>31vrpZEWD zG@(~4%lKEP&L2mU1SBX=3&8nmwyPZ19mvdLkGZQv9*E|A=3Ei-G`lxm;Dze!-GXdc zl@FTWQwzJ%qPIdcrnC<$EC;mWl(k_!=$G<2xU%b`5U$ZYIYMz)T8)imT=Em8$|o|K zHNG@t}_e#4bulIOQRdSQlMM?i*RHA}{T(I82Z1 z`ZH~Ii@R%?ReDktkgO@6W5ayEB#vE2#k-nnxLI9aerJ(}9$xT)*rB>zAJl*9a=)?> zSoFP7l566BnTnVTA^6g%E5i(rQqxt6enXqI&6;#crHfpR75LvMpz!(3CMCpWNRA|U~gEe`Mpz&5;fQPLGaPnMS`$` z{X-^_kjeWl38$JzxhJbp#)rv-p>*9hD_MDQMHU91lfGHN*;y$L@k}~~6P^|02Lej8 zZ^C|=CL#nMTe-5m6di)F9lhFeT=2G7dG+J0pcLWZ%`vU-MS8tA;)?ivh|4?DFYBMD z+3!wNz!LLH5JQY+G&P0I=4dA=M$o~t-MDJnuQtAZ3-vd3ofDj(bcZ}1y9|egg zEokm#4DjciKJ(BSe0k4KNv@uD7yvcz_J$6pmSYRzwU-EdRJ3YlWE7~{@CXvLhY5TR zj_&s4ZpG+2KXr7tOipD?K6Q3^Aui=+3DlW5R0|8Kx$bOpli04y!juS^^>&M)3c==S z^&E5e6ZXj>(2aRTM=DOuOqGh1?bq6Syp_g~-6-L6MIx2Uzx6VGs zK|c1hC=zfKHF*rPBqzVUbu$IUHbTEOU{mZ6qfT&>J;k^=ok3rAp7#!S-0?e(oU{yM z{_M|FlUd_vjQ)zA&SP!P8rfKHmDjg5W!ezDki4%idCaDt&Pik9KfNd6Q4t9R2T-?5 zqO4f`Gd*U1!W3DdnpqqJrr#!4mjr__A1SaJ1T)eN*TX3|A6w3hq*gQDr*solah77$ zmQfC@O|wLXO+O8H3CR0!W3xvbUx=B6FZf>4q&4%M^G>sxhj6l?{AU?xuu50U}sG;^-dUmM%r#p*nlpi^xj$(KVzp}2id=YQq+-DLan$b5am#t*8jmWbamjFu5Jg1nV^g6! zVm#5XvAg$uU9Id*SYi3pZrQrB+YTSGob!~?3h%TJ1Ku18%{&^lh2_iDT#b!Gdd+__F% zj3&!Rl46SwS<~ZT_xW@AusaE+9`G@2Yh{^JvGt;?-c%H<>dTJJE5|~;$io|~oku&4 zu{`kA)#ERqshtNYz3@$Lm+BUhH_lI5^)d2oHFo9MA!rQS!ik%#jWOs8tCda;jZPUdmvATL|n{9faIiun4r>%IOT=uCE0 z5?Y1>k=8oL3zxf9jaQtd(q%D*C$d_tSx=Dx*F2Z-tE!v%f^IwV^qGQ2sN1PZ?1Bt% zzp%qM8b{y(=wRLu3B|=*^cb*c#yXW~(wE^{GkuUR-C9gm8t^i-S)fzM$ zgmoS+SSn}tb)|m7hV2|IPjoo9-ZKn&e~jCj$2^d{<`dkXg;_8~8tZZ@9mLGFNnHe~qPO$02?sCyaVcFR=s zqfITLcThwYa>;b|YCAqNO|Naw<)+m$0AFYDUcbV{j58kwe7(ebBLru|uR{k5_n*Em9P<2XEoZ`oug;_AaRBWal|mfMin+FFk2Huu*r z``;pluvIi|Fwwh00Q*bl55!q3yiKCJi?(fe2&xkWI>I;p|IN`PSM{iX z&@_yymH}hjK?!LIaY>0MRUc|%c9kKqwMu1~W`|0plm`ASZ_YzkA9@!)g>q#uQ$;L5dTeWn+>rj5 zg36k|jwZ#O?!j77JJHbEtu}}NJ>e3O58RLiK6w0jA1`<)39~eJ3Pi=){g@bMZG0^t z;k~~P@l*6$fa@Pn9F#){-p72V$l0zFJt3)!!e>-3O#Go zz}%!NwYSg!KkpQ;ND3yiLRcYWfXf)NA!gkxClZZ}TU5bhHW|8u9H>+sHrOzp?I?ya*%CL?bqJB}K4_H8}3d1DN(Fm}^M!<&QQUxghDt`i(E+Y7P7 zU*@1rkBC1WlilhhF+}K!Q5&a>;ZfzffMk3ax^PWXfzP!A%eDMesqJ{zoleUjkaDl1 z`_QE|XUrOWn%%g-Dd^cJAEMI>U2tK{;HT5!B4;37r z7rfUQ>~$JU2@eUJ3@f4b3l<4I%?*j4RR4-{0YFGzX!}FULo&aF+>JL{Koj=@U>9h>|s;ygDK12jAiQze;_}|Epf&#sVf!!I@bFWwL4hE- zL+2rFc$Q_<$|T+fDg-VVIqn*L%IP$j5OS?58zw3hFIHXDi~t@&l%G?NbvXGN^U? zEU~fNkMIOx-p?|0IZ?zW8G1JoW26$J&lBL&U4dVO;cW;K2V*eWjA)^Y(6!_3!6>;=HI#zdP)GWvu*yvVvX0yW(A-c0&cY!(z&v? zDH`s%RblFEtkUu#3bNx; zG-4@@fz_6;*(w8MsJtYn;y>zy_~Zv(YDa-gh|W7~kImuB9jQXa^pA(nMmH5#<`{?xB-3@GDGP*pN;zX;3GXl{$6!5&0tO9SnPFY z3MSet_MU{BXTcmbS<&~+xdn}QU+D;(k>8>H@K)mkgYSp?ggRn1BVsULX>+t;xDf4Vu zT??AZmoNUL%+lt(-252foTHWm>%@?V>sWGyy};UueJltup*nu)@(;=^(Un@fT9SqJ zs*bX*(c8FuIZG?Cpu8tFxgiC)QDOxjbqgL5=Eo|%^bC8Y%bD+|n{QuPkmPRVZf=tE zCuP&%<7UjtvXg;lvaFpv)FK12W&|HU|Q0)KV6Xlb$_D zv75Brsy4bp8!^ViZ&{E~;@H*4A?;NL94O-Dz2ZS6c&goLGs(tl!jq%Sb}!B#=}xp=$P4e)MGn`L5zpXavad+Biu1b?!jPzOX9tj-=h;0tYgO>~O|q3R_}VL? z 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 z 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 z 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%0Dp`s?aqBganF0-;OyP_tqw78%s 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 literal 0 HcmV?d00001 diff --git a/casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/MainApplication.java similarity index 65% rename from casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java rename to spring.reactEventApp/src/main/java/com/github/curriculeon/MainApplication.java index 93877b366..35b3201eb 100644 --- a/casestudy-registration/src/main/java/com/github/curriculeon/MainApplication.java +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/MainApplication.java @@ -5,7 +5,7 @@ @SpringBootApplication public class MainApplication { - public static void main(String[] args) { - SpringApplication.run(MainApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(MainApplication.class, args); + } } diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/config/ControllerInterceptor.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/config/ControllerInterceptor.java new file mode 100644 index 000000000..60150ea86 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/config/ControllerInterceptor.java @@ -0,0 +1,42 @@ +package com.github.curriculeon.config; + +import com.github.curriculeon.utils.Loggable; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.logging.Logger; + +/** + * @author leonhunter + * @created 06/07/2020 - 4:15 PM + */ +@Component +public class ControllerInterceptor extends HandlerInterceptorAdapter implements Loggable { + @Override + public boolean preHandle( + HttpServletRequest request, + HttpServletResponse response, + Object handler) { + log("A request has been issued!"); + String requestLog = "Incoming request is\n\t\t%s"; + String responseLog = "Outgoing response is\n\t\t%s"; + log(requestLog, request); + log(responseLog, response); + return true; + } + + @Override + public void afterCompletion( + HttpServletRequest request, + HttpServletResponse response, + Object handler, + Exception ex) { + log("A request has been completed!"); + String requestLog = "Incoming request is\n\t\t%s"; + String responseLog = "Outgoing response is\n\t\t%s"; + log(requestLog, request); + log(responseLog, response); + } +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/config/MvcConfig.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/config/MvcConfig.java new file mode 100644 index 000000000..9b73e0da5 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/config/MvcConfig.java @@ -0,0 +1,20 @@ +package com.github.curriculeon.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Created by leon on 7/11/2020. + */ + +@EnableWebMvc +@Configuration +public class MvcConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(final InterceptorRegistry registry) { + registry.addInterceptor(new ControllerInterceptor()); + } +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/controllers/EventController.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/controllers/EventController.java new file mode 100644 index 000000000..e3552ea1f --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/controllers/EventController.java @@ -0,0 +1,43 @@ +package com.github.curriculeon.controllers; + +import com.github.curriculeon.models.Event; +import com.github.curriculeon.services.EventService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +@Controller +@RequestMapping(value = "/event") +public class EventController { + private EventService service; + + public EventController(EventService service) { + this.service = service; + } + + @GetMapping("/") + public ResponseEntity> index() { + return new ResponseEntity<>(service.index(), HttpStatus.OK); + } + + @GetMapping("/{id}") + public ResponseEntity show(@PathVariable Long id) { + return new ResponseEntity<>(service.show(id), HttpStatus.OK); + } + + @PostMapping("/") + public ResponseEntity create(@RequestBody Event event) { + return new ResponseEntity<>(service.create(event), HttpStatus.CREATED); + } + + @PostMapping("/{id}") + public ResponseEntity update(@PathVariable Long id, @RequestBody Event event) { + return new ResponseEntity<>(service.update(id, event), HttpStatus.OK); + } + + @DeleteMapping("/{id}") + public ResponseEntity destroy(@PathVariable Long id) { + return new ResponseEntity<>(service.delete(id), HttpStatus.OK); + } +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/models/Event.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/models/Event.java new file mode 100644 index 000000000..10c2439e2 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/models/Event.java @@ -0,0 +1,61 @@ +package com.github.curriculeon.models; + + +import com.github.curriculeon.utils.Jsonable; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import java.time.LocalDate; + +@Entity +public class Event implements Jsonable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + private String name; + private String location; + + + public Event() { + } + + public Event(String name, String location) { + this.name = name; + this.location = location; + } + + public Event(Long id, String name, String location) { + this.id = id; + this.name = name; + this.location = location; + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + +} \ No newline at end of file diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/repositories/EventRepository.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/repositories/EventRepository.java new file mode 100644 index 000000000..06d09c893 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/repositories/EventRepository.java @@ -0,0 +1,9 @@ +package com.github.curriculeon.repositories; + +import com.github.curriculeon.models.Event; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface EventRepository extends CrudRepository { +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/services/EventService.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/services/EventService.java new file mode 100644 index 000000000..7b769a34f --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/services/EventService.java @@ -0,0 +1,47 @@ +package com.github.curriculeon.services; + +import com.github.curriculeon.models.Event; +import com.github.curriculeon.repositories.EventRepository; +import com.github.curriculeon.utils.Loggable; +import org.springframework.stereotype.Service; + + +@Service +public class EventService implements Loggable { + private EventRepository repository; + + public EventService(EventRepository repository) { + this.repository = repository; + } + + public Iterable index() { + getLogger().info("Getting all event objects:"); + Iterable result = repository.findAll(); + result.forEach(event -> getLogger().info("\t\t" + event.asJsonString())); + return result; + } + + public Event show(Long id) { + return repository.findById(id).get(); + } + + public Event create(Event event) { + getLogger().info("Creating event:\n\t" + event.asJsonString()); + Event result = repository.save(event); + getLogger().info("Successfully created event:\n\t" + event.asJsonString()); + return result; + } + + public Event update(Long id, Event newEventData) { + Event originalEvent = repository.findById(id).get(); + originalEvent.setName(newEventData.getName()); + originalEvent.setLocation(newEventData.getLocation()); + + return repository.save(originalEvent); + } + + public Boolean delete(Long id) { + repository.deleteById(id); + return true; + } +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonable.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonable.java new file mode 100644 index 000000000..c0e6098f3 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonable.java @@ -0,0 +1,10 @@ +package com.github.curriculeon.utils; + +/** + * Created by leon on 7/10/2020. + */ +public interface Jsonable { + default String asJsonString() { + return Jsonifier.jsonify(this); + } +} \ No newline at end of file diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonifier.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonifier.java new file mode 100644 index 000000000..4ce759315 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Jsonifier.java @@ -0,0 +1,14 @@ +package com.github.curriculeon.utils; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class Jsonifier { + public static String jsonify(Object jsonable) { + try { + return new ObjectMapper().writeValueAsString(jsonable); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } +} diff --git a/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Loggable.java b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Loggable.java new file mode 100644 index 000000000..5d394d495 --- /dev/null +++ b/spring.reactEventApp/src/main/java/com/github/curriculeon/utils/Loggable.java @@ -0,0 +1,16 @@ +package com.github.curriculeon.utils; + +import java.util.logging.Logger; + +/** + * Created by leon on 7/10/2020. + */ +public interface Loggable { + default Logger getLogger() { + return Logger.getLogger(getClass().getName()); + } + + default void log(String info, Object... args) { + getLogger().info(String.format(info, args)); + } +} diff --git a/spring.reactEventApp/src/main/resources/application.properties b/spring.reactEventApp/src/main/resources/application.properties new file mode 100644 index 000000000..491d50294 --- /dev/null +++ b/spring.reactEventApp/src/main/resources/application.properties @@ -0,0 +1,15 @@ +#server.port=8080 + +spring.mvc.view.prefix=/ +spring.mvc.view.suffix=.jsp +spring.messages.basename=validation +spring.datasource.username=root +spring.datasource.password=password + +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console +spring.datasource.url=jdbc:h2:mem:dbtest +spring.datasource.driver-class-name=org.h2.Driver + +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/spring.reactEventApp/src/test/java/com/github/curriculeon/MyApplicationTests.java b/spring.reactEventApp/src/test/java/com/github/curriculeon/MyApplicationTests.java new file mode 100644 index 000000000..bd61b9a66 --- /dev/null +++ b/spring.reactEventApp/src/test/java/com/github/curriculeon/MyApplicationTests.java @@ -0,0 +1,16 @@ +package com.github.curriculeon; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class MyApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/spring.reactEventApp/src/test/java/com/github/curriculeon/controllers/EventControllerTest.java b/spring.reactEventApp/src/test/java/com/github/curriculeon/controllers/EventControllerTest.java new file mode 100644 index 000000000..5bf7d7620 --- /dev/null +++ b/spring.reactEventApp/src/test/java/com/github/curriculeon/controllers/EventControllerTest.java @@ -0,0 +1,68 @@ +package com.github.curriculeon.controllers; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.curriculeon.models.Event; +import com.github.curriculeon.repositories.EventRepository; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.BDDMockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +import java.util.Optional; + + +/** + * @author leon on 8/30/18. + */ +@SpringBootTest +@AutoConfigureMockMvc +@RunWith(SpringRunner.class) +public class EventControllerTest { + + @Autowired + private MockMvc mvc; + + + @MockBean + private EventRepository repository; + + @Test + public void testShow() throws Exception { + Long givenId = 1L; + Event event = new Event(); + BDDMockito + .given(repository.findById(givenId)) + .willReturn(Optional.of(event)); + String expectedContent = new ObjectMapper().writeValueAsString(event); + this.mvc.perform(MockMvcRequestBuilders + .get("/events/" + givenId)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.content().string(expectedContent)); + } + + @Test + public void testCreate() throws Exception { + Event event = new Event(); + BDDMockito + .given(repository.save(event)) + .willReturn(event); + + String expectedContent = new ObjectMapper().writeValueAsString(event); + this.mvc.perform(MockMvcRequestBuilders + .post("/events/") + .content(expectedContent) + .accept(MediaType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) + ) + .andExpect(MockMvcResultMatchers.status().isCreated()) + .andExpect(MockMvcResultMatchers.content().string(expectedContent)); + } +} diff --git a/spring.reactEventApp/src/test/java/com/github/curriculeon/models/EventTest.java b/spring.reactEventApp/src/test/java/com/github/curriculeon/models/EventTest.java new file mode 100644 index 000000000..9c25c3a49 --- /dev/null +++ b/spring.reactEventApp/src/test/java/com/github/curriculeon/models/EventTest.java @@ -0,0 +1,23 @@ +package com.github.curriculeon.models; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Assert; +import org.junit.Test; + +import javax.persistence.Entity; + + +public class EventTest { + @Test + public void testClassSignatureAnnotations() { + + Assert.assertTrue(Event.class.isAnnotationPresent(Entity.class)); + } + @Test + public void testCreateJson() throws JsonProcessingException { + ObjectMapper jsonWriter = new ObjectMapper(); + Event event = new Event(); + String json = jsonWriter.writeValueAsString(event); + } +} diff --git a/spring.reactEventApp/src/test/java/com/github/curriculeon/repositories/EventRepositoryTest.java b/spring.reactEventApp/src/test/java/com/github/curriculeon/repositories/EventRepositoryTest.java new file mode 100644 index 000000000..38281e45b --- /dev/null +++ b/spring.reactEventApp/src/test/java/com/github/curriculeon/repositories/EventRepositoryTest.java @@ -0,0 +1,7 @@ +package com.github.curriculeon.repositories; + +/** + * Created by leon on 2/24/2020. + */ +public class EventRepositoryTest { +} diff --git a/spring.reactEventApp/src/test/java/com/github/curriculeon/services/EventServiceTest.java b/spring.reactEventApp/src/test/java/com/github/curriculeon/services/EventServiceTest.java new file mode 100644 index 000000000..d5674738f --- /dev/null +++ b/spring.reactEventApp/src/test/java/com/github/curriculeon/services/EventServiceTest.java @@ -0,0 +1,75 @@ +package com.github.curriculeon.services; + + +import com.github.curriculeon.MainApplication; + +import com.github.curriculeon.controllers.EventController; +import com.github.curriculeon.models.Event; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.BDDMockito; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.HttpStatus; + +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@ContextConfiguration(classes = MainApplication.class) +public class EventServiceTest { + @MockBean + private EventService service; + + private EventController controller; + + @Before + public void setup(){ + this.controller = new EventController(service); + } + + + @Test + public void testCreate() { + // Given + HttpStatus expected = HttpStatus.CREATED; + Event expectedEvent = new Event(); + BDDMockito + .given(service.create(expectedEvent)) + .willReturn(expectedEvent); + + // When + ResponseEntity response = controller.create(expectedEvent); + HttpStatus actual = response.getStatusCode(); + Event actualEvent = response.getBody(); + + // Then + Assert.assertEquals(expected, actual); + Assert.assertEquals(expectedEvent, actualEvent); + } + + + @Test + public void testShow() { + // Given + Long expectedId = 1L; + HttpStatus expected = HttpStatus.OK; + Event expectedEvent = new Event(); + expectedEvent.setId(expectedId); + BDDMockito. + given(service.show(1L)) + .willReturn(expectedEvent); + + // When + ResponseEntity response = controller.show(expectedId); + HttpStatus actual = response.getStatusCode(); + Event actualEvent = response.getBody(); + + // Then + Assert.assertEquals(expected, actual); + Assert.assertEquals(expectedEvent, actualEvent); + } + +} From d9cf3f8a99c875f2615466fb4ef049d362d3ef4e Mon Sep 17 00:00:00 2001 From: Mondira Roy Date: Sun, 27 Sep 2020 21:11:24 -0400 Subject: [PATCH 14/21] Added member-service Rendered member service on react app --- .gitignore | 33 +++++ HELP.md | 26 ++++ member-service.iml | 103 +++++++++++++++ mvnw | 310 +++++++++++++++++++++++++++++++++++++++++++++ mvnw.cmd | 182 ++++++++++++++++++++++++++ pom.xml | 69 ++++++++++ 6 files changed, 723 insertions(+) create mode 100644 .gitignore create mode 100644 HELP.md create mode 100644 member-service.iml create mode 100644 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..549e00a2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/HELP.md b/HELP.md new file mode 100644 index 000000000..14d2cd9a0 --- /dev/null +++ b/HELP.md @@ -0,0 +1,26 @@ +# Read Me First +The following was discovered as part of building this project: + +* The original package name 'com.casestudy.member-service' is invalid and this project uses 'com.casestudy.memberservice' instead. + +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/#build-image) +* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#using-boot-devtools) +* [Spring Web](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications) +* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-jpa-and-spring-data) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/) +* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) +* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/) + diff --git a/member-service.iml b/member-service.iml new file mode 100644 index 000000000..8536391aa --- /dev/null +++ b/member-service.iml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mvnw b/mvnw new file mode 100644 index 000000000..a16b5431b --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 000000000..c8d43372c --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..c10446bc9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.3.4.RELEASE + + + com.casestudy + member-service + 0.0.1-SNAPSHOT + member-service + Project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.h2database + h2 + runtime + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + From e23413e0504220d9dedda16455b1e74bd068058a Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 28 Sep 2020 09:11:23 -0400 Subject: [PATCH 15/21] Member-service with frontend rendering --- .../member-service/.gitignore | 33 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 117 +++++++ .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes .../.mvn/wrapper/maven-wrapper.properties | 2 + healthyliving-casestudy/member-service/mvnw | 310 ++++++++++++++++++ .../member-service/mvnw.cmd | 182 ++++++++++ .../member-service/pom.xml | 64 ++++ .../MemberServiceApplication.java | 13 + .../controller/MemberController.java | 22 ++ .../exception/ResourceNotFoundException.java | 12 + .../casestudy/memberservice/model/Member.java | 62 ++++ .../repository/MemberRepository.java | 9 + .../src/main/resources/application.properties | 24 ++ .../MemberServiceApplicationTests.java | 13 + 14 files changed, 863 insertions(+) create mode 100644 healthyliving-casestudy/member-service/.gitignore create mode 100644 healthyliving-casestudy/member-service/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.jar create mode 100644 healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.properties create mode 100644 healthyliving-casestudy/member-service/mvnw create mode 100644 healthyliving-casestudy/member-service/mvnw.cmd create mode 100644 healthyliving-casestudy/member-service/pom.xml create mode 100644 healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/MemberServiceApplication.java create mode 100644 healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/controller/MemberController.java create mode 100644 healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/exception/ResourceNotFoundException.java create mode 100644 healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/model/Member.java create mode 100644 healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/repository/MemberRepository.java create mode 100644 healthyliving-casestudy/member-service/src/main/resources/application.properties create mode 100644 healthyliving-casestudy/member-service/src/test/java/com/casestudy/memberservice/MemberServiceApplicationTests.java diff --git a/healthyliving-casestudy/member-service/.gitignore b/healthyliving-casestudy/member-service/.gitignore new file mode 100644 index 000000000..549e00a2a --- /dev/null +++ b/healthyliving-casestudy/member-service/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/healthyliving-casestudy/member-service/.mvn/wrapper/MavenWrapperDownloader.java b/healthyliving-casestudy/member-service/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 000000000..e76d1f324 --- /dev/null +++ b/healthyliving-casestudy/member-service/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * 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 + * + * https://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. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.jar b/healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 GIT binary patch literal 50710 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 EfAhh=DF6Tf literal 0 HcmV?d00001 diff --git a/healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.properties b/healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 000000000..642d572ce --- /dev/null +++ b/healthyliving-casestudy/member-service/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/healthyliving-casestudy/member-service/mvnw b/healthyliving-casestudy/member-service/mvnw new file mode 100644 index 000000000..a16b5431b --- /dev/null +++ b/healthyliving-casestudy/member-service/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/healthyliving-casestudy/member-service/mvnw.cmd b/healthyliving-casestudy/member-service/mvnw.cmd new file mode 100644 index 000000000..c8d43372c --- /dev/null +++ b/healthyliving-casestudy/member-service/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/healthyliving-casestudy/member-service/pom.xml b/healthyliving-casestudy/member-service/pom.xml new file mode 100644 index 000000000..673353aa4 --- /dev/null +++ b/healthyliving-casestudy/member-service/pom.xml @@ -0,0 +1,64 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.3.4.RELEASE + + + com.casestudy + member-service + 0.0.1-SNAPSHOT + member-service + Demo project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.h2database + h2 + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/MemberServiceApplication.java b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/MemberServiceApplication.java new file mode 100644 index 000000000..e10707881 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/MemberServiceApplication.java @@ -0,0 +1,13 @@ +package com.casestudy.memberservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MemberServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(MemberServiceApplication.class, args); + } + +} diff --git a/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/controller/MemberController.java b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/controller/MemberController.java new file mode 100644 index 000000000..820f33467 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/controller/MemberController.java @@ -0,0 +1,22 @@ +package com.casestudy.memberservice.controller; + +import com.casestudy.memberservice.model.Member; +import com.casestudy.memberservice.repository.MemberRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/members") +public class MemberController { + @Autowired + private MemberRepository repository; + + @GetMapping("/") + public List getAll(){ + return repository.findAll(); + } +} diff --git a/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/exception/ResourceNotFoundException.java b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/exception/ResourceNotFoundException.java new file mode 100644 index 000000000..2c70a4145 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/exception/ResourceNotFoundException.java @@ -0,0 +1,12 @@ +package com.casestudy.memberservice.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.NOT_FOUND) +public class ResourceNotFoundException extends RuntimeException { + private static final long serialVersionUID = 1L; + public ResourceNotFoundException(String message){ + super(message); + } +} diff --git a/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/model/Member.java b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/model/Member.java new file mode 100644 index 000000000..026760ba6 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/model/Member.java @@ -0,0 +1,62 @@ +package com.casestudy.memberservice.model; + +import javax.persistence.*; + +@Entity +@Table(name ="members") +public class Member { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name="first-name") + private String firstName; + + @Column(name="last-name") + private String lastName; + + @Column(name="email") + private String emil; + + public Member() { + } + + public Member( String firstName, String lastName, String emil) { + + this.firstName = firstName; + this.lastName = lastName; + this.emil = emil; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getEmil() { + return emil; + } + + public void setEmil(String emil) { + this.emil = emil; + } +} diff --git a/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/repository/MemberRepository.java b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/repository/MemberRepository.java new file mode 100644 index 000000000..8feafd600 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/java/com/casestudy/memberservice/repository/MemberRepository.java @@ -0,0 +1,9 @@ +package com.casestudy.memberservice.repository; + +import com.casestudy.memberservice.model.Member; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface MemberRepository extends JpaRepository { +} diff --git a/healthyliving-casestudy/member-service/src/main/resources/application.properties b/healthyliving-casestudy/member-service/src/main/resources/application.properties new file mode 100644 index 000000000..36d2f3414 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/main/resources/application.properties @@ -0,0 +1,24 @@ + +#================UNCOMMENT IF USING MY SQL DATABASE========================= + +#spring.datasource.url=jdbc:mysql://localhost:3306/healthyliving?useSSL=false +#spring.datasource.driverClassName=com.mysql.jdbc.Driver +#spring.datasource.username=root +#spring.datasourse.password=password +# +#spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect +#spring.jpa.hibernate.ddl-auto=update + + +#======================Comment the below lines if using MySQL================ + +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console + +spring.datasource.url=jdbc:h2:mem:memtest +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=root +spring.datasource.password=root + +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/src/test/java/com/casestudy/memberservice/MemberServiceApplicationTests.java b/healthyliving-casestudy/member-service/src/test/java/com/casestudy/memberservice/MemberServiceApplicationTests.java new file mode 100644 index 000000000..ff5343723 --- /dev/null +++ b/healthyliving-casestudy/member-service/src/test/java/com/casestudy/memberservice/MemberServiceApplicationTests.java @@ -0,0 +1,13 @@ +package com.casestudy.memberservice; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class MemberServiceApplicationTests { + + @Test + void contextLoads() { + } + +} From ab3b4ed2d5d2c54cf07c33cb533d1c47bfdd85c0 Mon Sep 17 00:00:00 2001 From: mondira-roy2020 Date: Mon, 28 Sep 2020 13:11:14 -0400 Subject: [PATCH 16/21] updated the read me --- .gitignore | 33 - HELP.md | 26 - README.md | 114 +- .../node_modules/axios/CHANGELOG.md | 632 + .../node_modules/axios/LICENSE | 19 + .../node_modules/axios/README.md | 798 ++ .../node_modules/axios/UPGRADE_GUIDE.md | 162 + .../node_modules/axios/dist/axios.js | 1742 +++ .../node_modules/axios/dist/axios.map | 1 + .../node_modules/axios/dist/axios.min.js | 3 + .../node_modules/axios/dist/axios.min.map | 1 + .../node_modules/axios/index.d.ts | 160 + .../node_modules/axios/index.js | 1 + .../node_modules/axios/lib/adapters/README.md | 37 + .../node_modules/axios/lib/adapters/http.js | 287 + .../node_modules/axios/lib/adapters/xhr.js | 186 + .../node_modules/axios/lib/axios.js | 53 + .../node_modules/axios/lib/cancel/Cancel.js | 19 + .../axios/lib/cancel/CancelToken.js | 57 + .../node_modules/axios/lib/cancel/isCancel.js | 5 + .../node_modules/axios/lib/core/Axios.js | 94 + .../axios/lib/core/InterceptorManager.js | 52 + .../node_modules/axios/lib/core/README.md | 7 + .../axios/lib/core/buildFullPath.js | 20 + .../axios/lib/core/createError.js | 18 + .../axios/lib/core/dispatchRequest.js | 79 + .../axios/lib/core/enhanceError.js | 42 + .../axios/lib/core/mergeConfig.js | 87 + .../node_modules/axios/lib/core/settle.js | 25 + .../axios/lib/core/transformData.js | 20 + .../node_modules/axios/lib/defaults.js | 98 + .../node_modules/axios/lib/helpers/README.md | 7 + .../node_modules/axios/lib/helpers/bind.js | 11 + .../axios/lib/helpers/buildURL.js | 70 + .../axios/lib/helpers/combineURLs.js | 14 + .../node_modules/axios/lib/helpers/cookies.js | 53 + .../axios/lib/helpers/deprecatedMethod.js | 24 + .../axios/lib/helpers/isAbsoluteURL.js | 14 + .../axios/lib/helpers/isURLSameOrigin.js | 68 + .../axios/lib/helpers/normalizeHeaderName.js | 12 + .../axios/lib/helpers/parseHeaders.js | 53 + .../node_modules/axios/lib/helpers/spread.js | 27 + .../node_modules/axios/lib/utils.js | 351 + .../node_modules/axios/package.json | 114 + .../node_modules/bootstrap/LICENSE | 22 + .../node_modules/bootstrap/README.md | 209 + .../bootstrap/dist/css/bootstrap-grid.css | 3872 ++++++ .../bootstrap/dist/css/bootstrap-grid.css.map | 1 + .../bootstrap/dist/css/bootstrap-grid.min.css | 7 + .../dist/css/bootstrap-grid.min.css.map | 1 + .../bootstrap/dist/css/bootstrap-reboot.css | 325 + .../dist/css/bootstrap-reboot.css.map | 1 + .../dist/css/bootstrap-reboot.min.css | 8 + .../dist/css/bootstrap-reboot.min.css.map | 1 + .../bootstrap/dist/css/bootstrap.css | 10259 +++++++++++++++ .../bootstrap/dist/css/bootstrap.css.map | 1 + .../bootstrap/dist/css/bootstrap.min.css | 7 + .../bootstrap/dist/css/bootstrap.min.css.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.js | 7023 ++++++++++ .../bootstrap/dist/js/bootstrap.bundle.js.map | 1 + .../bootstrap/dist/js/bootstrap.bundle.min.js | 7 + .../dist/js/bootstrap.bundle.min.js.map | 1 + .../bootstrap/dist/js/bootstrap.js | 4410 +++++++ .../bootstrap/dist/js/bootstrap.js.map | 1 + .../bootstrap/dist/js/bootstrap.min.js | 7 + .../bootstrap/dist/js/bootstrap.min.js.map | 1 + .../node_modules/bootstrap/js/dist/alert.js | 177 + .../bootstrap/js/dist/alert.js.map | 1 + .../node_modules/bootstrap/js/dist/button.js | 213 + .../bootstrap/js/dist/button.js.map | 1 + .../bootstrap/js/dist/carousel.js | 610 + .../bootstrap/js/dist/carousel.js.map | 1 + .../bootstrap/js/dist/collapse.js | 372 + .../bootstrap/js/dist/collapse.js.map | 1 + .../bootstrap/js/dist/dropdown.js | 538 + .../bootstrap/js/dist/dropdown.js.map | 1 + .../node_modules/bootstrap/js/dist/index.js | 23 + .../bootstrap/js/dist/index.js.map | 1 + .../node_modules/bootstrap/js/dist/modal.js | 638 + .../bootstrap/js/dist/modal.js.map | 1 + .../node_modules/bootstrap/js/dist/popover.js | 205 + .../bootstrap/js/dist/popover.js.map | 1 + .../bootstrap/js/dist/scrollspy.js | 315 + .../bootstrap/js/dist/scrollspy.js.map | 1 + .../node_modules/bootstrap/js/dist/tab.js | 247 + .../node_modules/bootstrap/js/dist/tab.js.map | 1 + .../node_modules/bootstrap/js/dist/toast.js | 241 + .../bootstrap/js/dist/toast.js.map | 1 + .../node_modules/bootstrap/js/dist/tooltip.js | 857 ++ .../bootstrap/js/dist/tooltip.js.map | 1 + .../node_modules/bootstrap/js/dist/util.js | 193 + .../bootstrap/js/dist/util.js.map | 1 + .../node_modules/bootstrap/js/src/alert.js | 173 + .../node_modules/bootstrap/js/src/button.js | 206 + .../node_modules/bootstrap/js/src/carousel.js | 598 + .../node_modules/bootstrap/js/src/collapse.js | 391 + .../node_modules/bootstrap/js/src/dropdown.js | 534 + .../node_modules/bootstrap/js/src/index.js | 34 + .../node_modules/bootstrap/js/src/modal.js | 627 + .../node_modules/bootstrap/js/src/popover.js | 180 + .../bootstrap/js/src/scrollspy.js | 320 + .../node_modules/bootstrap/js/src/tab.js | 254 + .../node_modules/bootstrap/js/src/toast.js | 230 + .../bootstrap/js/src/tools/sanitizer.js | 127 + .../node_modules/bootstrap/js/src/tooltip.js | 772 ++ .../node_modules/bootstrap/js/src/util.js | 198 + .../node_modules/bootstrap/package.json | 212 + .../node_modules/bootstrap/scss/_alert.scss | 51 + .../node_modules/bootstrap/scss/_badge.scss | 54 + .../bootstrap/scss/_breadcrumb.scss | 44 + .../bootstrap/scss/_button-group.scss | 163 + .../node_modules/bootstrap/scss/_buttons.scss | 142 + .../node_modules/bootstrap/scss/_card.scss | 286 + .../bootstrap/scss/_carousel.scss | 197 + .../node_modules/bootstrap/scss/_close.scss | 40 + .../node_modules/bootstrap/scss/_code.scss | 48 + .../bootstrap/scss/_custom-forms.scss | 523 + .../bootstrap/scss/_dropdown.scss | 192 + .../node_modules/bootstrap/scss/_forms.scss | 347 + .../bootstrap/scss/_functions.scss | 141 + .../node_modules/bootstrap/scss/_grid.scss | 73 + .../node_modules/bootstrap/scss/_images.scss | 42 + .../bootstrap/scss/_input-group.scss | 192 + .../bootstrap/scss/_jumbotron.scss | 17 + .../bootstrap/scss/_list-group.scss | 154 + .../node_modules/bootstrap/scss/_media.scss | 8 + .../node_modules/bootstrap/scss/_mixins.scss | 47 + .../node_modules/bootstrap/scss/_modal.scss | 240 + .../node_modules/bootstrap/scss/_nav.scss | 123 + .../node_modules/bootstrap/scss/_navbar.scss | 324 + .../bootstrap/scss/_pagination.scss | 74 + .../node_modules/bootstrap/scss/_popover.scss | 170 + .../node_modules/bootstrap/scss/_print.scss | 141 + .../bootstrap/scss/_progress.scss | 47 + .../node_modules/bootstrap/scss/_reboot.scss | 480 + .../node_modules/bootstrap/scss/_root.scss | 20 + .../bootstrap/scss/_spinners.scss | 56 + .../node_modules/bootstrap/scss/_tables.scss | 185 + .../node_modules/bootstrap/scss/_toasts.scss | 46 + .../node_modules/bootstrap/scss/_tooltip.scss | 115 + .../bootstrap/scss/_transitions.scss | 20 + .../node_modules/bootstrap/scss/_type.scss | 125 + .../bootstrap/scss/_utilities.scss | 18 + .../bootstrap/scss/_variables.scss | 1140 ++ .../bootstrap/scss/bootstrap-grid.scss | 29 + .../bootstrap/scss/bootstrap-reboot.scss | 12 + .../bootstrap/scss/bootstrap.scss | 44 + .../bootstrap/scss/mixins/_alert.scss | 13 + .../scss/mixins/_background-variant.scss | 23 + .../bootstrap/scss/mixins/_badge.scss | 17 + .../bootstrap/scss/mixins/_border-radius.scss | 76 + .../bootstrap/scss/mixins/_box-shadow.scss | 20 + .../bootstrap/scss/mixins/_breakpoints.scss | 123 + .../bootstrap/scss/mixins/_buttons.scss | 110 + .../bootstrap/scss/mixins/_caret.scss | 62 + .../bootstrap/scss/mixins/_clearfix.scss | 7 + .../bootstrap/scss/mixins/_deprecate.scss | 10 + .../bootstrap/scss/mixins/_float.scss | 14 + .../bootstrap/scss/mixins/_forms.scss | 178 + .../bootstrap/scss/mixins/_gradients.scss | 45 + .../scss/mixins/_grid-framework.scss | 80 + .../bootstrap/scss/mixins/_grid.scss | 69 + .../bootstrap/scss/mixins/_hover.scss | 37 + .../bootstrap/scss/mixins/_image.scss | 36 + .../bootstrap/scss/mixins/_list-group.scss | 21 + .../bootstrap/scss/mixins/_lists.scss | 7 + .../bootstrap/scss/mixins/_nav-divider.scss | 11 + .../bootstrap/scss/mixins/_pagination.scss | 22 + .../bootstrap/scss/mixins/_reset-text.scss | 17 + .../bootstrap/scss/mixins/_resize.scss | 6 + .../bootstrap/scss/mixins/_screen-reader.scss | 34 + .../bootstrap/scss/mixins/_size.scss | 7 + .../bootstrap/scss/mixins/_table-row.scss | 39 + .../bootstrap/scss/mixins/_text-emphasis.scss | 17 + .../bootstrap/scss/mixins/_text-hide.scss | 11 + .../bootstrap/scss/mixins/_text-truncate.scss | 8 + .../bootstrap/scss/mixins/_transition.scss | 26 + .../bootstrap/scss/mixins/_visibility.scss | 8 + .../bootstrap/scss/utilities/_align.scss | 8 + .../bootstrap/scss/utilities/_background.scss | 19 + .../bootstrap/scss/utilities/_borders.scss | 75 + .../bootstrap/scss/utilities/_clearfix.scss | 3 + .../bootstrap/scss/utilities/_display.scss | 26 + .../bootstrap/scss/utilities/_embed.scss | 39 + .../bootstrap/scss/utilities/_flex.scss | 51 + .../bootstrap/scss/utilities/_float.scss | 11 + .../scss/utilities/_interactions.scss | 5 + .../bootstrap/scss/utilities/_overflow.scss | 5 + .../bootstrap/scss/utilities/_position.scss | 32 + .../scss/utilities/_screenreaders.scss | 11 + .../bootstrap/scss/utilities/_shadows.scss | 6 + .../bootstrap/scss/utilities/_sizing.scss | 20 + .../bootstrap/scss/utilities/_spacing.scss | 73 + .../scss/utilities/_stretched-link.scss | 19 + .../bootstrap/scss/utilities/_text.scss | 72 + .../bootstrap/scss/utilities/_visibility.scss | 13 + .../bootstrap/scss/vendor/_rfs.scss | 204 + .../node_modules/follow-redirects/LICENSE | 18 + .../node_modules/follow-redirects/README.md | 148 + .../node_modules/follow-redirects/debug.js | 9 + .../node_modules/follow-redirects/http.js | 1 + .../node_modules/follow-redirects/https.js | 1 + .../node_modules/follow-redirects/index.js | 498 + .../follow-redirects/package.json | 90 + .../REACT-SPRINGBOOT_CRUD/package-lock.json | 24 + .../react-frontend/.gitignore | 23 + .../react-frontend/README.md | 68 + .../react-frontend/package.json | 36 + .../react-frontend/public/favicon.ico | Bin 0 -> 3150 bytes .../react-frontend/public/index.html | 43 + .../react-frontend/public/logo192.png | Bin 0 -> 5347 bytes .../react-frontend/public/logo512.png | Bin 0 -> 9664 bytes .../react-frontend/public/manifest.json | 25 + .../react-frontend/public/robots.txt | 3 + .../react-frontend/src/App.css | 47 + .../react-frontend/src/App.js | 21 + .../react-frontend/src/App.test.js | 9 + .../src/components/FooterComponent.js | 25 + .../src/components/HeaderComponent.js | 31 + .../src/components/ListMemberComponent.jsx | 53 + .../react-frontend/src/index.css | 13 + .../react-frontend/src/index.js | 18 + .../react-frontend/src/logo.svg | 7 + .../react-frontend/src/serviceWorker.js | 141 + .../src/services/MemberService.js | 12 + .../react-frontend/src/setupTests.js | 5 + .../react-frontend/yarn.lock | 10849 ++++++++++++++++ .../casestudy/memberservice/model/Member.java | 18 +- .../src/main/resources/application.properties | 6 +- member-service.iml | 103 - mvnw | 310 - mvnw.cmd | 182 - pom.xml | 69 - 233 files changed, 61491 insertions(+), 791 deletions(-) delete mode 100644 .gitignore delete mode 100644 HELP.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/CHANGELOG.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/LICENSE create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/UPGRADE_GUIDE.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.d.ts create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/http.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/xhr.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/axios.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/Cancel.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/CancelToken.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/isCancel.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/Axios.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/InterceptorManager.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/buildFullPath.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/createError.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/dispatchRequest.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/enhanceError.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/mergeConfig.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/settle.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/transformData.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/defaults.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/bind.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/buildURL.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/combineURLs.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/cookies.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/deprecatedMethod.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isAbsoluteURL.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isURLSameOrigin.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/normalizeHeaderName.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/parseHeaders.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/spread.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/utils.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/package.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/LICENSE create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap.min.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap.min.css.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.min.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.min.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/alert.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/alert.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/button.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/button.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/carousel.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/carousel.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/collapse.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/collapse.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/dropdown.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/dropdown.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/index.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/index.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/modal.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/modal.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/popover.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/popover.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/scrollspy.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/scrollspy.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/tab.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/tab.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/toast.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/toast.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/tooltip.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/tooltip.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/util.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/dist/util.js.map create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/alert.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/button.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/carousel.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/collapse.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/dropdown.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/index.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/modal.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/popover.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/scrollspy.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/tab.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/toast.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/tools/sanitizer.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/tooltip.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/js/src/util.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/package.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_alert.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_badge.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_breadcrumb.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_button-group.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_buttons.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_card.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_carousel.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_close.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_code.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_custom-forms.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_dropdown.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_forms.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_functions.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_grid.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_images.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_input-group.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_jumbotron.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_list-group.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_media.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_mixins.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_modal.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_nav.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_navbar.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_pagination.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_popover.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_print.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_progress.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_reboot.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_root.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_spinners.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_tables.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_toasts.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_tooltip.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_transitions.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_type.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_utilities.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/_variables.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/bootstrap-grid.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/bootstrap-reboot.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/bootstrap.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_alert.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_background-variant.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_badge.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_border-radius.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_box-shadow.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_breakpoints.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_buttons.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_caret.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_clearfix.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_deprecate.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_float.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_forms.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_gradients.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_grid-framework.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_grid.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_hover.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_image.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_list-group.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_lists.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_nav-divider.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_pagination.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_reset-text.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_resize.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_screen-reader.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_size.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_table-row.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_text-emphasis.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_text-hide.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_text-truncate.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_transition.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/mixins/_visibility.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_align.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_background.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_borders.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_clearfix.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_display.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_embed.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_flex.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_float.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_interactions.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_overflow.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_position.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_screenreaders.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_shadows.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_sizing.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_spacing.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_stretched-link.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_text.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/utilities/_visibility.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/scss/vendor/_rfs.scss create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/LICENSE create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/debug.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/http.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/https.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/index.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/follow-redirects/package.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/package-lock.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/.gitignore create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/README.md create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/package.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/favicon.ico create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/index.html create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/logo192.png create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/logo512.png create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/manifest.json create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/public/robots.txt create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/App.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/App.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/App.test.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/components/FooterComponent.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/components/HeaderComponent.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/components/ListMemberComponent.jsx create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/index.css create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/index.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/logo.svg create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/serviceWorker.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/services/MemberService.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/src/setupTests.js create mode 100644 healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/react-frontend/yarn.lock delete mode 100644 member-service.iml delete mode 100644 mvnw delete mode 100644 mvnw.cmd delete mode 100644 pom.xml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 549e00a2a..000000000 --- a/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/HELP.md b/HELP.md deleted file mode 100644 index 14d2cd9a0..000000000 --- a/HELP.md +++ /dev/null @@ -1,26 +0,0 @@ -# Read Me First -The following was discovered as part of building this project: - -* The original package name 'com.casestudy.member-service' is invalid and this project uses 'com.casestudy.memberservice' instead. - -# Getting Started - -### Reference Documentation -For further reference, please consider the following sections: - -* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) -* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/) -* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/#build-image) -* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#using-boot-devtools) -* [Spring Web](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications) -* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-jpa-and-spring-data) - -### Guides -The following guides illustrate how to use some features concretely: - -* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) -* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) -* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/) -* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) -* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/) - diff --git a/README.md b/README.md index 5c0a1e7fa..ff26c9071 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,75 @@ # Full Stack Web Application -* **Objective** - to create an implementation of a web service -* **Purpose** - to demonstrate the construction of a full-stacked web-application -* **Description** - * This Case Study is your first foray into building a full-stack application. You'll be building a Spring MVC based application, which means you'll learn about what it takes to build a functional application from the ground up yourself. - * This is exciting! It's a lot, but we've given you the tools to be able to build what you need, and you get to decide what you do with it. You also get to be creative in choosing what sort of application you want to build! - * You will be working individually to design your app. We hope you'll exercise creativity on this project, sketch some wireframes before you start, make sure you have time to run these ideas by your instructors to get their feedback before you dive too deep into coding! Remember to keep things small and focus on mastering the fundamentals. -* **Additional Resources** - * [The Original Case Study Document](./case-study.pdf) - * [Case Study Outline](./case-study-outline.pdf) - * [Case Study Deliverables](./README_deliverables.md) - * [Identifying Plagiarism](./README_plagiarism.md) - * [Suggested Project Topics](./README_suggested-project-topics.md) +* **Objective** - to create an implementation of a web service. +* **Purpose** - to demonstrate the construction of a full-stacked web-application for Healthy Living website that offers variety of services for organization of special events and some retail. +* **Description** + * This Case Study demonstrates the process of building a functional, Spring MVC based full-stack application from ground up. + * The Healthy living website offers its members health supplies and products. The members can login to attend events and also take part in a variety of offered services like Zumba classes and yoga. + * Healthy Living is an app for users that are planning to stay fit for a lifetime of healthful benefits. + * The website includes six webpages: Welcome, Login, Registration, Members, Products, and Shopping Cart. -## Minimum Features -* `RESTful` web service which consumes requests from a front-end web application and caches each request and the respective response to a database. -* The application must support a login functionality. +*## Features +* `RESTful` web service consumes requests from a front-end web application and caches each request and the respective response to a database. +* The application supports a login functionality. +* To access the services and view pages of the website a user will need to create their account, register and login with valid credentials.Thos portion is developed using the template +https://github.com/curriculeon/spring.jsp-loginpage. +* This app will allow a user to register for events and services and buy health foods and exercise gear and equipment. +* adding the product or service to shopping cart and view the total for purchased products and services. +* This app also keeps a tab of the loyalty points accrued for buying from us or being a registered member. ## Developmental Notes - -### Tech Stack Selection -* Select at least 1 technology from each of the following categories: +### Tech Stack * **Version Control System** - 1. Github - 2. Bitbucket - - * **Wireframe** - 1. Mockflow - 2. Balsamiq - 3. Lucidcharts - - * **Frontend** - 1. Angular - 2. React - 3. Vue.JS - - * **Business Logic** - 1. Java - 2. TypeScript - - * **WebServer Implementation** - 1. Spring Boot - 2. At least 1 [backing service](https://12factor.net/backing-services) API - - * **Data Layer** - 1. MySQL - 2. PostgreSQL - 3. MariaDB - - * **Web Server Cloud Deployment** - 1. Heroku - 2. AWS EC2 Instance + 1. Github used - * **Web Application Cloud Deployment** - 1. Netlify - 2. AWS EC2 Instance + * **Wireframe** + 1. Balsamiq + 2. Lucidcharts + PNG files - images of the web pages + + * **Frontend** ***ReactJS + 1. Java Server Pages 1.Axios + 2.Java Server Pages 2.npm and yarn + 3.Cascading Style Sheets(CSS) 3.CSS + 4.JavaScript 4.JavaScript files -### Installation -* It is advised that you make install each of the following technologies to ensure that are at least accessible - * Install [NodeJs](https://nodejs.org/en/). - * Install [Angular](http://angular.io/). - * Install [AngularCli](https://cli.angular.io/). + * **Business Logic** + 1. Java + + * **WebServer Implementation** + 1. Spring Boot + 2. At least 1 [backing service](https://12factor.net/backing-services) API Microservices Architecture + +*****How to start/Navigate + +1. Navigate to the folder casestudy.fullstack_webapplication\healthyliving-casestudy\member-service. Start IntelliJ by clicking on Pom.xml. Run the Mainapplication. Keep it running. + +2. Navigate to localhost:8080/h2-console + + + +Follow the JDBC URL, userName = root and Password =password. The result is that the members table is displayed on clicking on MEMBERS tableName and selecting RUN button. + + +3. Navigate to http://localhost:8080/api/members/ in order to see the following screen. + + + +4 Start the react App by navigating to the folder /casestudy.fullstack_webapplication\healthyliving-casestudy\REACT-SPRINGBOOT_CRUD +cd react-frontend +npm install +npm run +npm start +The display on localhost:3000 is the default Member List from the database. + + +7. Still under contruction: Adding buttons for Update and Delete. +8. . Adding Login and registration to the react app from the spring-jsp-template. Planning to do this for all the microservices developed so far. diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/CHANGELOG.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/CHANGELOG.md new file mode 100644 index 000000000..80edebb53 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/CHANGELOG.md @@ -0,0 +1,632 @@ +# Changelog + +### 0.20.0 (August 20, 2020) + +Release of 0.20.0-pre as a full release with no other changes. + +### 0.20.0-pre (July 15, 2020) + +Fixes and Functionality: + +- Fixing response with utf-8 BOM can not parse to json ([#2419](https://github.com/axios/axios/pull/2419)) + - fix: remove byte order marker (UTF-8 BOM) when transform response + - fix: remove BOM only utf-8 + - test: utf-8 BOM + - fix: incorrect param name +- Refactor mergeConfig without utils.deepMerge ([#2844](https://github.com/axios/axios/pull/2844)) + - Adding failing test + - Fixing #2587 default custom config persisting + - Adding Concat keys and filter duplicates + - Fixed value from CPE + - update for review feedbacks + - no deepMerge + - only merge between plain objects + - fix rename + - always merge config by mergeConfig + - extract function mergeDeepProperties + - refactor mergeConfig with all keys, and add special logic for validateStatus + - add test for resetting headers + - add lots of tests and fix a bug + - should not inherit `data` + - use simple toString +- Fixing overwrite Blob/File type as Content-Type in browser. ([#1773](https://github.com/axios/axios/pull/1773)) +- Fixing an issue that type 'null' is not assignable to validateStatus ([#2773](https://github.com/axios/axios/pull/2773)) +- Fixing special char encoding ([#1671](https://github.com/axios/axios/pull/1671)) + - removing @ character from replacement list since it is a reserved character + - Updating buildURL test to not include the @ character + - Removing console logs +- Fixing password encoding with special characters in basic authentication ([#1492](https://github.com/axios/axios/pull/1492)) + - Fixing password encoding with special characters in basic authentication + - Adding test to check if password with non-Latin1 characters pass +- Fixing 'Network Error' in react native android ([#1487](https://github.com/axios/axios/pull/1487)) + There is a bug in react native Android platform when using get method. It will trigger a 'Network Error' when passing the requestData which is an empty string to request.send function. So if the requestData is an empty string we can set it to null as well to fix the bug. +- Fixing Cookie Helper with Asyc Components ([#1105](https://github.com/axios/axios/pull/1105)) ([#1107](https://github.com/axios/axios/pull/1107)) +- Fixing 'progressEvent' type ([#2851](https://github.com/axios/axios/pull/2851)) + - Fix 'progressEvent' type + - Update axios.ts +- Fixing getting local files (file://) failed ([#2470](https://github.com/axios/axios/pull/2470)) + - fix issue #2416, #2396 + - fix Eslint warn + - Modify judgment conditions + - add unit test + - update unit test + - update unit test +- Allow PURGE method in typings ([#2191](https://github.com/axios/axios/pull/2191)) +- Adding option to disable automatic decompression ([#2661](https://github.com/axios/axios/pull/2661)) + - Adding ability to disable auto decompression + - Updating decompress documentation in README + - Fixing test\unit\adapters\http.js lint errors + - Adding test for disabling auto decompression + - Removing changes that fixed lint errors in tests + - Removing formating change to unit test +- Add independent `maxBodyLength` option ([#2781](https://github.com/axios/axios/pull/2781)) + - Add independent option to set the maximum size of the request body + - Remove maxBodyLength check + - Update README + - Assert for error code and message +- Adding responseEncoding to mergeConfig ([#1745](https://github.com/axios/axios/pull/1745)) +- Compatible with follow-redirect aborts the request ([#2689](https://github.com/axios/axios/pull/2689)) + - Compatible with follow-redirect aborts the request + - Use the error code +- Fix merging of params ([#2656](https://github.com/axios/axios/pull/2656)) + - Name function to avoid ESLint func-names warning + - Switch params config to merge list and update tests + - Restore testing of both false and null + - Restore test cases for keys without defaults + - Include test for non-object values that aren't false-y. +- Revert `finally` as `then` ([#2683](https://github.com/axios/axios/pull/2683)) + +Internal and Tests: + +- Fix stale bot config ([#3049](https://github.com/axios/axios/pull/3049)) + - fix stale bot config + - fix multiple lines +- Add days and change name to work ([#3035](https://github.com/axios/axios/pull/3035)) +- Update close-issues.yml ([#3031](https://github.com/axios/axios/pull/3031)) + - Update close-issues.yml + Update close message to read better 😄 + - Fix use of quotations + Use single quotes as per other .yml files + - Remove user name form message +- Add GitHub actions to close stale issues/prs ([#3029](https://github.com/axios/axios/pull/3029)) + - prepare stale actions + - update messages + - Add exempt labels and lighten up comments +- Add GitHub actions to close invalid issues ([#3022](https://github.com/axios/axios/pull/3022)) + - add close actions + - fix with checkout + - update issue templates + - add reminder + - update close message +- Add test with Node.js 12 ([#2860](https://github.com/axios/axios/pull/2860)) + - test with Node.js 12 + - test with latest +- Adding console log on sandbox server startup ([#2210](https://github.com/axios/axios/pull/2210)) + - Adding console log on sandbox server startup + - Update server.js + Add server error handeling + - Update server.js + Better error message, remove retry. +- Adding tests for method `options` type definitions ([#1996](https://github.com/axios/axios/pull/1996)) + Update tests. +- Add test for redirecting with too large response ([#2695](https://github.com/axios/axios/pull/2695)) +- Fixing unit test failure in Windows OS ([#2601](https://github.com/axios/axios/pull/2601)) +- Fixing issue for HEAD method and gziped repsonse ([#2666](https://github.com/axios/axios/pull/2666)) +- Fix tests in browsers ([#2748](https://github.com/axios/axios/pull/2748)) +- chore: add `jsdelivr` and `unpkg` support ([#2443](https://github.com/axios/axios/pull/2443)) + +Documentation: + +- Adding support for URLSearchParams in node ([#1900](https://github.com/axios/axios/pull/1900)) + - Adding support for URLSearchParams in node + - Remove un-needed code + - Update utils.js + - Make changes as suggested +- Adding table of content (preview) ([#3050](https://github.com/axios/axios/pull/3050)) + - add toc (preview) + - remove toc in toc + Signed-off-by: Moni + - fix sublinks + - fix indentation + - remove redundant table links + - update caps and indent + - remove axios +- Replace 'blacklist' with 'blocklist' ([#3006](https://github.com/axios/axios/pull/3006)) +- docs(): Detailed config options environment. ([#2088](https://github.com/axios/axios/pull/2088)) + - docs(): Detailed config options environment. + - Update README.md +- Include axios-data-unpacker in ECOSYSTEM.md ([#2080](https://github.com/axios/axios/pull/2080)) +- Allow opening examples in Gitpod ([#1958](https://github.com/axios/axios/pull/1958)) +- Remove axios.all() and axios.spread() from Readme.md ([#2727](https://github.com/axios/axios/pull/2727)) + - remove axios.all(), axios.spread() + - replace example + - axios.all() -> Promise.all() + - axios.spread(function (acct, perms)) -> function (acct, perms) + - add deprecated mark +- Update README.md ([#2887](https://github.com/axios/axios/pull/2887)) + Small change to the data attribute doc of the config. A request body can also be set for DELETE methods but this wasn't mentioned in the documentation (it only mentioned POST, PUT and PATCH). Took my some 10-20 minutes until I realized that I don't need to manipulate the request body with transformRequest in the case of DELETE. +- Include swagger-taxos-codegen in ECOSYSTEM.md ([#2162](https://github.com/axios/axios/pull/2162)) +- Add CDNJS version badge in README.md ([#878](https://github.com/axios/axios/pull/878)) + This badge will show the version on CDNJS! +- Documentation update to clear up ambiguity in code examples ([#2928](https://github.com/axios/axios/pull/2928)) + - Made a adjustment to the documenation to clear up any ambiguity around the use of "fs". This should help clear up that the code examples with "fs" cannot be used on the client side. +- Update README.md about validateStatus ([#2912](https://github.com/axios/axios/pull/2912)) + Rewrote the comment from "Reject only if the status code is greater than or equal to 500" to "Resolve only if the status code is less than 500" +- Updating documentation for usage form-data ([#2805](https://github.com/axios/axios/pull/2805)) + Closes #2049 +- Fixing CHANGELOG.md issue link ([#2784](https://github.com/axios/axios/pull/2784)) +- Include axios-hooks in ECOSYSTEM.md ([#2003](https://github.com/axios/axios/pull/2003)) +- Added Response header access instructions ([#1901](https://github.com/axios/axios/pull/1901)) + - Added Response header access instructions + - Added note about using bracket notation +- Add `onUploadProgress` and `onDownloadProgress` are browser only ([#2763](https://github.com/axios/axios/pull/2763)) + Saw in #928 and #1966 that `onUploadProgress` and `onDownloadProgress` only work in the browser and was missing that from the README. +- Update ' sign to ` in proxy spec ([#2778](https://github.com/axios/axios/pull/2778)) +- Adding jsDelivr link in README ([#1110](https://github.com/axios/axios/pull/1110)) + - Adding jsDelivr link + - Add SRI + - Remove SRI + +Huge thanks to everyone who contributed to this release via code (authors listed +below) or via reviews and triaging on GitHub: + +- Alan Wang +- Alexandru Ungureanu +- Anubhav Srivastava +- Benny Neugebauer +- Cr <631807682@qq.com> +- David +- David Ko +- David Tanner +- Emily Morehouse +- Felipe Martins +- Fonger <5862369+Fonger@users.noreply.github.com> +- Frostack +- George Cheng +- grumblerchester +- Gustavo López +- hexaez <45806662+hexaez@users.noreply.github.com> +- huangzuizui +- Ian Wijma +- Jay +- jeffjing +- jennynju <46782518+jennynju@users.noreply.github.com> +- Jimmy Liao <52391190+jimmy-liao-gogoro@users.noreply.github.com> +- Jonathan Sharpe +- JounQin +- Justin Beckwith +- Kamil Posiadała <3dcreator.pl@gmail.com> +- Lukas Drgon +- marcinx +- Martti Laine +- Michał Zarach +- Moni +- Motonori Iwata <121048+iwata@users.noreply.github.com> +- Nikita Galkin +- Petr Mares +- Philippe Recto +- Remco Haszing +- rockcs1992 +- Ryan Bown +- Samina Fu +- Simone Busoli +- Spencer von der Ohe +- Sven Efftinge +- Taegyeoung Oh +- Taemin Shin +- Thibault Ehrhart <1208424+ehrhart@users.noreply.github.com> +- Xianming Zhong +- Yasu Flores +- Zac Delventhal + +### 0.19.2 (Jan 20, 2020) + +- Remove unnecessary XSS check ([#2679](https://github.com/axios/axios/pull/2679)) (see ([#2646](https://github.com/axios/axios/issues/2646)) for discussion) + +### 0.19.1 (Jan 7, 2020) + +Fixes and Functionality: + +- Fixing invalid agent issue ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Delete useless default to hash ([#2458](https://github.com/axios/axios/pull/2458)) +- Fix HTTP/HTTPs agents passing to follow-redirect ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Fix CI build failure ([#2570](https://github.com/axios/axios/pull/2570)) +- Remove dependency on is-buffer from package.json ([#1816](https://github.com/axios/axios/pull/1816)) +- Adding options typings ([#2341](https://github.com/axios/axios/pull/2341)) +- Adding Typescript HTTP method definition for LINK and UNLINK. ([#2444](https://github.com/axios/axios/pull/2444)) +- Update dist with newest changes, fixes Custom Attributes issue +- Change syntax to see if build passes ([#2488](https://github.com/axios/axios/pull/2488)) +- Update Webpack + deps, remove now unnecessary polyfills ([#2410](https://github.com/axios/axios/pull/2410)) +- Fix to prevent XSS, throw an error when the URL contains a JS script ([#2464](https://github.com/axios/axios/pull/2464)) +- Add custom timeout error copy in config ([#2275](https://github.com/axios/axios/pull/2275)) +- Add error toJSON example ([#2466](https://github.com/axios/axios/pull/2466)) +- Fixing Vulnerability A Fortify Scan finds a critical Cross-Site Scrip… ([#2451](https://github.com/axios/axios/pull/2451)) +- Fixing subdomain handling on no_proxy ([#2442](https://github.com/axios/axios/pull/2442)) +- Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426)) and ([#2547](https://github.com/axios/axios/pull/2547)) +- Add toJSON property to AxiosError type ([#2427](https://github.com/axios/axios/pull/2427)) +- Fixing socket hang up error on node side for slow response. ([#1752](https://github.com/axios/axios/pull/1752)) +- Alternative syntax to send data into the body ([#2317](https://github.com/axios/axios/pull/2317)) +- Fixing custom config options ([#2207](https://github.com/axios/axios/pull/2207)) +- Fixing set `config.method` after mergeConfig for Axios.prototype.request ([#2383](https://github.com/axios/axios/pull/2383)) +- Axios create url bug ([#2290](https://github.com/axios/axios/pull/2290)) +- Do not modify config.url when using a relative baseURL (resolves [#1628](https://github.com/axios/axios/issues/1098)) ([#2391](https://github.com/axios/axios/pull/2391)) +- Add typescript HTTP method definition for LINK and UNLINK ([#2444](https://github.com/axios/axios/pull/2444)) + +Internal: + +- Revert "Update Webpack + deps, remove now unnecessary polyfills" ([#2479](https://github.com/axios/axios/pull/2479)) +- Order of if/else blocks is causing unit tests mocking XHR. ([#2201](https://github.com/axios/axios/pull/2201)) +- Add license badge ([#2446](https://github.com/axios/axios/pull/2446)) +- Fix travis CI build [#2386](https://github.com/axios/axios/pull/2386) +- Fix cancellation error on build master. #2290 #2207 ([#2407](https://github.com/axios/axios/pull/2407)) + +Documentation: + +- Fixing typo in CHANGELOG.md: s/Functionallity/Functionality ([#2639](https://github.com/axios/axios/pull/2639)) +- Fix badge, use master branch ([#2538](https://github.com/axios/axios/pull/2538)) +- Fix typo in changelog [#2193](https://github.com/axios/axios/pull/2193) +- Document fix ([#2514](https://github.com/axios/axios/pull/2514)) +- Update docs with no_proxy change, issue #2484 ([#2513](https://github.com/axios/axios/pull/2513)) +- Fixing missing words in docs template ([#2259](https://github.com/axios/axios/pull/2259)) +- 🐛Fix request finally documentation in README ([#2189](https://github.com/axios/axios/pull/2189)) +- updating spelling and adding link to docs ([#2212](https://github.com/axios/axios/pull/2212)) +- docs: minor tweak ([#2404](https://github.com/axios/axios/pull/2404)) +- Update response interceptor docs ([#2399](https://github.com/axios/axios/pull/2399)) +- Update README.md ([#2504](https://github.com/axios/axios/pull/2504)) +- Fix word 'sintaxe' to 'syntax' in README.md ([#2432](https://github.com/axios/axios/pull/2432)) +- upadating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256)) +- Fix grammar in README.md ([#2271](https://github.com/axios/axios/pull/2271)) +- Doc fixes, minor examples cleanup ([#2198](https://github.com/axios/axios/pull/2198)) + +### 0.19.0 (May 30, 2019) + +Fixes and Functionality: + +- Added support for no_proxy env variable ([#1693](https://github.com/axios/axios/pull/1693/files)) - Chance Dickson +- Unzip response body only for statuses != 204 ([#1129](https://github.com/axios/axios/pull/1129)) - drawski +- Destroy stream on exceeding maxContentLength (fixes [#1098](https://github.com/axios/axios/issues/1098)) ([#1485](https://github.com/axios/axios/pull/1485)) - Gadzhi Gadzhiev +- Makes Axios error generic to use AxiosResponse ([#1738](https://github.com/axios/axios/pull/1738)) - Suman Lama +- Fixing Mocha tests by locking follow-redirects version to 1.5.10 ([#1993](https://github.com/axios/axios/pull/1993)) - grumblerchester +- Allow uppercase methods in typings. ([#1781](https://github.com/axios/axios/pull/1781)) - Ken Powers +- Fixing building url with hash mark ([#1771](https://github.com/axios/axios/pull/1771)) - Anatoly Ryabov +- This commit fix building url with hash map (fragment identifier) when parameters are present: they must not be added after `#`, because client cut everything after `#` +- Preserve HTTP method when following redirect ([#1758](https://github.com/axios/axios/pull/1758)) - Rikki Gibson +- Add `getUri` signature to TypeScript definition. ([#1736](https://github.com/axios/axios/pull/1736)) - Alexander Trauzzi +- Adding isAxiosError flag to errors thrown by axios ([#1419](https://github.com/axios/axios/pull/1419)) - Ayush Gupta + +Internal: + +- Fixing .eslintrc without extension ([#1789](https://github.com/axios/axios/pull/1789)) - Manoel +- Fix failing SauceLabs tests by updating configuration - Emily Morehouse +- Add issue templates - Emily Morehouse + +Documentation: + +- Consistent coding style in README ([#1787](https://github.com/axios/axios/pull/1787)) - Ali Servet Donmez +- Add information about auth parameter to README ([#2166](https://github.com/axios/axios/pull/2166)) - xlaguna +- Add DELETE to list of methods that allow data as a config option ([#2169](https://github.com/axios/axios/pull/2169)) - Daniela Borges Matos de Carvalho +- Update ECOSYSTEM.md - Add Axios Endpoints ([#2176](https://github.com/axios/axios/pull/2176)) - Renan +- Add r2curl in ECOSYSTEM ([#2141](https://github.com/axios/axios/pull/2141)) - 유용우 / CX +- Update README.md - Add instructions for installing with yarn ([#2036](https://github.com/axios/axios/pull/2036)) - Victor Hermes +- Fixing spacing for README.md ([#2066](https://github.com/axios/axios/pull/2066)) - Josh McCarty +- Update README.md. - Change `.then` to `.finally` in example code ([#2090](https://github.com/axios/axios/pull/2090)) - Omar Cai +- Clarify what values responseType can have in Node ([#2121](https://github.com/axios/axios/pull/2121)) - Tyler Breisacher +- docs(ECOSYSTEM): add axios-api-versioning ([#2020](https://github.com/axios/axios/pull/2020)) - Weffe +- It seems that `responseType: 'blob'` doesn't actually work in Node (when I tried using it, response.data was a string, not a Blob, since Node doesn't have Blobs), so this clarifies that this option should only be used in the browser +- Update README.md. - Add Querystring library note ([#1896](https://github.com/axios/axios/pull/1896)) - Dmitriy Eroshenko +- Add react-hooks-axios to Libraries section of ECOSYSTEM.md ([#1925](https://github.com/axios/axios/pull/1925)) - Cody Chan +- Clarify in README that default timeout is 0 (no timeout) ([#1750](https://github.com/axios/axios/pull/1750)) - Ben Standefer + +### 0.19.0-beta.1 (Aug 9, 2018) + +**NOTE:** This is a beta version of this release. There may be functionality that is broken in +certain browsers, though we suspect that builds are hanging and not erroring. See +https://saucelabs.com/u/axios for the most up-to-date information. + +New Functionality: + +- Add getUri method ([#1712](https://github.com/axios/axios/issues/1712)) +- Add support for no_proxy env variable ([#1693](https://github.com/axios/axios/issues/1693)) +- Add toJSON to decorated Axios errors to faciliate serialization ([#1625](https://github.com/axios/axios/issues/1625)) +- Add second then on axios call ([#1623](https://github.com/axios/axios/issues/1623)) +- Typings: allow custom return types +- Add option to specify character set in responses (with http adapter) + +Fixes: + +- Fix Keep defaults local to instance ([#385](https://github.com/axios/axios/issues/385)) +- Correctly catch exception in http test ([#1475](https://github.com/axios/axios/issues/1475)) +- Fix accept header normalization ([#1698](https://github.com/axios/axios/issues/1698)) +- Fix http adapter to allow HTTPS connections via HTTP ([#959](https://github.com/axios/axios/issues/959)) +- Fix Removes usage of deprecated Buffer constructor. ([#1555](https://github.com/axios/axios/issues/1555), [#1622](https://github.com/axios/axios/issues/1622)) +- Fix defaults to use httpAdapter if available ([#1285](https://github.com/axios/axios/issues/1285)) + - Fixing defaults to use httpAdapter if available + - Use a safer, cross-platform method to detect the Node environment +- Fix Reject promise if request is cancelled by the browser ([#537](https://github.com/axios/axios/issues/537)) +- [Typescript] Fix missing type parameters on delete/head methods +- [NS]: Send `false` flag isStandardBrowserEnv for Nativescript +- Fix missing type parameters on delete/head +- Fix Default method for an instance always overwritten by get +- Fix type error when socketPath option in AxiosRequestConfig +- Capture errors on request data streams +- Decorate resolve and reject to clear timeout in all cases + +Huge thanks to everyone who contributed to this release via code (authors listed +below) or via reviews and triaging on GitHub: + +- Andrew Scott +- Anthony Gauthier +- arpit +- ascott18 +- Benedikt Rötsch +- Chance Dickson +- Dave Stewart +- Deric Cain +- Guillaume Briday +- Jacob Wejendorp +- Jim Lynch +- johntron +- Justin Beckwith +- Justin Beckwith +- Khaled Garbaya +- Lim Jing Rong +- Mark van den Broek +- Martti Laine +- mattridley +- mattridley +- Nicolas Del Valle +- Nilegfx +- pbarbiero +- Rikki Gibson +- Sako Hartounian +- Shane Fitzpatrick +- Stephan Schneider +- Steven +- Tim Garthwaite +- Tim Johns +- Yutaro Miyazaki + +### 0.18.0 (Feb 19, 2018) + +- Adding support for UNIX Sockets when running with Node.js ([#1070](https://github.com/axios/axios/pull/1070)) +- Fixing typings ([#1177](https://github.com/axios/axios/pull/1177)): + - AxiosRequestConfig.proxy: allows type false + - AxiosProxyConfig: added auth field +- Adding function signature in AxiosInstance interface so AxiosInstance can be invoked ([#1192](https://github.com/axios/axios/pull/1192), [#1254](https://github.com/axios/axios/pull/1254)) +- Allowing maxContentLength to pass through to redirected calls as maxBodyLength in follow-redirects config ([#1287](https://github.com/axios/axios/pull/1287)) +- Fixing configuration when using an instance - method can now be set ([#1342](https://github.com/axios/axios/pull/1342)) + +### 0.17.1 (Nov 11, 2017) + +- Fixing issue with web workers ([#1160](https://github.com/axios/axios/pull/1160)) +- Allowing overriding transport ([#1080](https://github.com/axios/axios/pull/1080)) +- Updating TypeScript typings ([#1165](https://github.com/axios/axios/pull/1165), [#1125](https://github.com/axios/axios/pull/1125), [#1131](https://github.com/axios/axios/pull/1131)) + +### 0.17.0 (Oct 21, 2017) + +- **BREAKING** Fixing issue with `baseURL` and interceptors ([#950](https://github.com/axios/axios/pull/950)) +- **BREAKING** Improving handing of duplicate headers ([#874](https://github.com/axios/axios/pull/874)) +- Adding support for disabling proxies ([#691](https://github.com/axios/axios/pull/691)) +- Updating TypeScript typings with generic type parameters ([#1061](https://github.com/axios/axios/pull/1061)) + +### 0.16.2 (Jun 3, 2017) + +- Fixing issue with including `buffer` in bundle ([#887](https://github.com/axios/axios/pull/887)) +- Including underlying request in errors ([#830](https://github.com/axios/axios/pull/830)) +- Convert `method` to lowercase ([#930](https://github.com/axios/axios/pull/930)) + +### 0.16.1 (Apr 8, 2017) + +- Improving HTTP adapter to return last request in case of redirects ([#828](https://github.com/axios/axios/pull/828)) +- Updating `follow-redirects` dependency ([#829](https://github.com/axios/axios/pull/829)) +- Adding support for passing `Buffer` in node ([#773](https://github.com/axios/axios/pull/773)) + +### 0.16.0 (Mar 31, 2017) + +- **BREAKING** Removing `Promise` from axios typings in favor of built-in type declarations ([#480](https://github.com/axios/axios/issues/480)) +- Adding `options` shortcut method ([#461](https://github.com/axios/axios/pull/461)) +- Fixing issue with using `responseType: 'json'` in browsers incompatible with XHR Level 2 ([#654](https://github.com/axios/axios/pull/654)) +- Improving React Native detection ([#731](https://github.com/axios/axios/pull/731)) +- Fixing `combineURLs` to support empty `relativeURL` ([#581](https://github.com/axios/axios/pull/581)) +- Removing `PROTECTION_PREFIX` support ([#561](https://github.com/axios/axios/pull/561)) + +### 0.15.3 (Nov 27, 2016) + +- Fixing issue with custom instances and global defaults ([#443](https://github.com/axios/axios/issues/443)) +- Renaming `axios.d.ts` to `index.d.ts` ([#519](https://github.com/axios/axios/issues/519)) +- Adding `get`, `head`, and `delete` to `defaults.headers` ([#509](https://github.com/axios/axios/issues/509)) +- Fixing issue with `btoa` and IE ([#507](https://github.com/axios/axios/issues/507)) +- Adding support for proxy authentication ([#483](https://github.com/axios/axios/pull/483)) +- Improving HTTP adapter to use `http` protocol by default ([#493](https://github.com/axios/axios/pull/493)) +- Fixing proxy issues ([#491](https://github.com/axios/axios/pull/491)) + +### 0.15.2 (Oct 17, 2016) + +- Fixing issue with calling `cancel` after response has been received ([#482](https://github.com/axios/axios/issues/482)) + +### 0.15.1 (Oct 14, 2016) + +- Fixing issue with UMD ([#485](https://github.com/axios/axios/issues/485)) + +### 0.15.0 (Oct 10, 2016) + +- Adding cancellation support ([#452](https://github.com/axios/axios/pull/452)) +- Moving default adapter to global defaults ([#437](https://github.com/axios/axios/pull/437)) +- Fixing issue with `file` URI scheme ([#440](https://github.com/axios/axios/pull/440)) +- Fixing issue with `params` objects that have no prototype ([#445](https://github.com/axios/axios/pull/445)) + +### 0.14.0 (Aug 27, 2016) + +- **BREAKING** Updating TypeScript definitions ([#419](https://github.com/axios/axios/pull/419)) +- **BREAKING** Replacing `agent` option with `httpAgent` and `httpsAgent` ([#387](https://github.com/axios/axios/pull/387)) +- **BREAKING** Splitting `progress` event handlers into `onUploadProgress` and `onDownloadProgress` ([#423](https://github.com/axios/axios/pull/423)) +- Adding support for `http_proxy` and `https_proxy` environment variables ([#366](https://github.com/axios/axios/pull/366)) +- Fixing issue with `auth` config option and `Authorization` header ([#397](https://github.com/axios/axios/pull/397)) +- Don't set XSRF header if `xsrfCookieName` is `null` ([#406](https://github.com/axios/axios/pull/406)) + +### 0.13.1 (Jul 16, 2016) + +- Fixing issue with response data not being transformed on error ([#378](https://github.com/axios/axios/issues/378)) + +### 0.13.0 (Jul 13, 2016) + +- **BREAKING** Improved error handling ([#345](https://github.com/axios/axios/pull/345)) +- **BREAKING** Response transformer now invoked in dispatcher not adapter ([10eb238](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e)) +- **BREAKING** Request adapters now return a `Promise` ([157efd5](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a)) +- Fixing issue with `withCredentials` not being overwritten ([#343](https://github.com/axios/axios/issues/343)) +- Fixing regression with request transformer being called before request interceptor ([#352](https://github.com/axios/axios/issues/352)) +- Fixing custom instance defaults ([#341](https://github.com/axios/axios/issues/341)) +- Fixing instances created from `axios.create` to have same API as default axios ([#217](https://github.com/axios/axios/issues/217)) + +### 0.12.0 (May 31, 2016) + +- Adding support for `URLSearchParams` ([#317](https://github.com/axios/axios/pull/317)) +- Adding `maxRedirects` option ([#307](https://github.com/axios/axios/pull/307)) + +### 0.11.1 (May 17, 2016) + +- Fixing IE CORS support ([#313](https://github.com/axios/axios/pull/313)) +- Fixing detection of `FormData` ([#325](https://github.com/axios/axios/pull/325)) +- Adding `Axios` class to exports ([#321](https://github.com/axios/axios/pull/321)) + +### 0.11.0 (Apr 26, 2016) + +- Adding support for Stream with HTTP adapter ([#296](https://github.com/axios/axios/pull/296)) +- Adding support for custom HTTP status code error ranges ([#308](https://github.com/axios/axios/pull/308)) +- Fixing issue with ArrayBuffer ([#299](https://github.com/axios/axios/pull/299)) + +### 0.10.0 (Apr 20, 2016) + +- Fixing issue with some requests sending `undefined` instead of `null` ([#250](https://github.com/axios/axios/pull/250)) +- Fixing basic auth for HTTP adapter ([#252](https://github.com/axios/axios/pull/252)) +- Fixing request timeout for XHR adapter ([#227](https://github.com/axios/axios/pull/227)) +- Fixing IE8 support by using `onreadystatechange` instead of `onload` ([#249](https://github.com/axios/axios/pull/249)) +- Fixing IE9 cross domain requests ([#251](https://github.com/axios/axios/pull/251)) +- Adding `maxContentLength` option ([#275](https://github.com/axios/axios/pull/275)) +- Fixing XHR support for WebWorker environment ([#279](https://github.com/axios/axios/pull/279)) +- Adding request instance to response ([#200](https://github.com/axios/axios/pull/200)) + +### 0.9.1 (Jan 24, 2016) + +- Improving handling of request timeout in node ([#124](https://github.com/axios/axios/issues/124)) +- Fixing network errors not rejecting ([#205](https://github.com/axios/axios/pull/205)) +- Fixing issue with IE rejecting on HTTP 204 ([#201](https://github.com/axios/axios/issues/201)) +- Fixing host/port when following redirects ([#198](https://github.com/axios/axios/pull/198)) + +### 0.9.0 (Jan 18, 2016) + +- Adding support for custom adapters +- Fixing Content-Type header being removed when data is false ([#195](https://github.com/axios/axios/pull/195)) +- Improving XDomainRequest implementation ([#185](https://github.com/axios/axios/pull/185)) +- Improving config merging and order of precedence ([#183](https://github.com/axios/axios/pull/183)) +- Fixing XDomainRequest support for only <= IE9 ([#182](https://github.com/axios/axios/pull/182)) + +### 0.8.1 (Dec 14, 2015) + +- Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/axios/axios/pull/168)) +- Fixing error with format of basic auth header ([#178](https://github.com/axios/axios/pull/173)) +- Fixing error with JSON payloads throwing `InvalidStateError` in some cases ([#174](https://github.com/axios/axios/pull/174)) + +### 0.8.0 (Dec 11, 2015) + +- Adding support for creating instances of axios ([#123](https://github.com/axios/axios/pull/123)) +- Fixing http adapter to use `Buffer` instead of `String` in case of `responseType === 'arraybuffer'` ([#128](https://github.com/axios/axios/pull/128)) +- Adding support for using custom parameter serializer with `paramsSerializer` option ([#121](https://github.com/axios/axios/pull/121)) +- Fixing issue in IE8 caused by `forEach` on `arguments` ([#127](https://github.com/axios/axios/pull/127)) +- Adding support for following redirects in node ([#146](https://github.com/axios/axios/pull/146)) +- Adding support for transparent decompression if `content-encoding` is set ([#149](https://github.com/axios/axios/pull/149)) +- Adding support for transparent XDomainRequest to handle cross domain requests in IE9 ([#140](https://github.com/axios/axios/pull/140)) +- Adding support for HTTP basic auth via Authorization header ([#167](https://github.com/axios/axios/pull/167)) +- Adding support for baseURL option ([#160](https://github.com/axios/axios/pull/160)) + +### 0.7.0 (Sep 29, 2015) + +- Fixing issue with minified bundle in IE8 ([#87](https://github.com/axios/axios/pull/87)) +- Adding support for passing agent in node ([#102](https://github.com/axios/axios/pull/102)) +- Adding support for returning result from `axios.spread` for chaining ([#106](https://github.com/axios/axios/pull/106)) +- Fixing typescript definition ([#105](https://github.com/axios/axios/pull/105)) +- Fixing default timeout config for node ([#112](https://github.com/axios/axios/pull/112)) +- Adding support for use in web workers, and react-native ([#70](https://github.com/axios/axios/issue/70)), ([#98](https://github.com/axios/axios/pull/98)) +- Adding support for fetch like API `axios(url[, config])` ([#116](https://github.com/axios/axios/issues/116)) + +### 0.6.0 (Sep 21, 2015) + +- Removing deprecated success/error aliases +- Fixing issue with array params not being properly encoded ([#49](https://github.com/axios/axios/pull/49)) +- Fixing issue with User-Agent getting overridden ([#69](https://github.com/axios/axios/issues/69)) +- Adding support for timeout config ([#56](https://github.com/axios/axios/issues/56)) +- Removing es6-promise dependency +- Fixing issue preventing `length` to be used as a parameter ([#91](https://github.com/axios/axios/pull/91)) +- Fixing issue with IE8 ([#85](https://github.com/axios/axios/pull/85)) +- Converting build to UMD + +### 0.5.4 (Apr 08, 2015) + +- Fixing issue with FormData not being sent ([#53](https://github.com/axios/axios/issues/53)) + +### 0.5.3 (Apr 07, 2015) + +- Using JSON.parse unconditionally when transforming response string ([#55](https://github.com/axios/axios/issues/55)) + +### 0.5.2 (Mar 13, 2015) + +- Adding support for `statusText` in response ([#46](https://github.com/axios/axios/issues/46)) + +### 0.5.1 (Mar 10, 2015) + +- Fixing issue using strict mode ([#45](https://github.com/axios/axios/issues/45)) +- Fixing issue with standalone build ([#47](https://github.com/axios/axios/issues/47)) + +### 0.5.0 (Jan 23, 2015) + +- Adding support for intercepetors ([#14](https://github.com/axios/axios/issues/14)) +- Updating es6-promise dependency + +### 0.4.2 (Dec 10, 2014) + +- Fixing issue with `Content-Type` when using `FormData` ([#22](https://github.com/axios/axios/issues/22)) +- Adding support for TypeScript ([#25](https://github.com/axios/axios/issues/25)) +- Fixing issue with standalone build ([#29](https://github.com/axios/axios/issues/29)) +- Fixing issue with verbs needing to be capitalized in some browsers ([#30](https://github.com/axios/axios/issues/30)) + +### 0.4.1 (Oct 15, 2014) + +- Adding error handling to request for node.js ([#18](https://github.com/axios/axios/issues/18)) + +### 0.4.0 (Oct 03, 2014) + +- Adding support for `ArrayBuffer` and `ArrayBufferView` ([#10](https://github.com/axios/axios/issues/10)) +- Adding support for utf-8 for node.js ([#13](https://github.com/axios/axios/issues/13)) +- Adding support for SSL for node.js ([#12](https://github.com/axios/axios/issues/12)) +- Fixing incorrect `Content-Type` header ([#9](https://github.com/axios/axios/issues/9)) +- Adding standalone build without bundled es6-promise ([#11](https://github.com/axios/axios/issues/11)) +- Deprecating `success`/`error` in favor of `then`/`catch` + +### 0.3.1 (Sep 16, 2014) + +- Fixing missing post body when using node.js ([#3](https://github.com/axios/axios/issues/3)) + +### 0.3.0 (Sep 16, 2014) + +- Fixing `success` and `error` to properly receive response data as individual arguments ([#8](https://github.com/axios/axios/issues/8)) +- Updating `then` and `catch` to receive response data as a single object ([#6](https://github.com/axios/axios/issues/6)) +- Fixing issue with `all` not working ([#7](https://github.com/axios/axios/issues/7)) + +### 0.2.2 (Sep 14, 2014) + +- Fixing bundling with browserify ([#4](https://github.com/axios/axios/issues/4)) + +### 0.2.1 (Sep 12, 2014) + +- Fixing build problem causing ridiculous file sizes + +### 0.2.0 (Sep 12, 2014) + +- Adding support for `all` and `spread` +- Adding support for node.js ([#1](https://github.com/axios/axios/issues/1)) + +### 0.1.0 (Aug 29, 2014) + +- Initial release diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/LICENSE b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/LICENSE new file mode 100644 index 000000000..d36c80ef2 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-present Matt Zabriskie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/README.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/README.md new file mode 100644 index 000000000..620fecab5 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/README.md @@ -0,0 +1,798 @@ +# axios + +[![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios) +[![CDNJS](https://img.shields.io/cdnjs/v/axios.svg?style=flat-square)](https://cdnjs.com/libraries/axios) +[![build status](https://img.shields.io/travis/axios/axios/master.svg?style=flat-square)](https://travis-ci.org/axios/axios) +[![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios) +[![install size](https://packagephobia.now.sh/badge?p=axios)](https://packagephobia.now.sh/result?p=axios) +[![npm downloads](https://img.shields.io/npm/dm/axios.svg?style=flat-square)](http://npm-stat.com/charts.html?package=axios) +[![gitter chat](https://img.shields.io/gitter/room/mzabriskie/axios.svg?style=flat-square)](https://gitter.im/mzabriskie/axios) +[![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios) + +Promise based HTTP client for the browser and node.js +## Table of Contents + + - [Features](#features) + - [Browser Support](#browser-support) + - [Installing](#installing) + - [Example](#example) + - [Axios API](#axios-api) + - [Request method aliases](#request-method-aliases) + - [Concurrency (Deprecated)](#concurrency-deprecated) + - [Creating an instance](#creating-an-instance) + - [Instance methods](#instance-methods) + - [Request Config](#request-config) + - [Response Schema](#response-schema) + - [Config Defaults](#config-defaults) + - [Global axios defaults](#global-axios-defaults) + - [Custom instance defaults](#custom-instance-defaults) + - [Config order of precedence](#config-order-of-precedence) + - [Interceptors](#interceptors) + - [Handling Errors](#handling-errors) + - [Cancellation](#cancellation) + - [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format) + - [Browser](#browser) + - [Node.js](#nodejs) + - [Query string](#query-string) + - [Form data](#form-data) + - [Semver](#semver) + - [Promises](#promises) + - [TypeScript](#typescript) + - [Resources](#resources) + - [Credits](#credits) + - [License](#license) + +## Features + +- Make [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) from the browser +- Make [http](http://nodejs.org/api/http.html) requests from node.js +- Supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API +- Intercept request and response +- Transform request and response data +- Cancel requests +- Automatic transforms for JSON data +- Client side support for protecting against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) + +## Browser Support + +![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![IE](https://raw.github.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png) | +--- | --- | --- | --- | --- | --- | +Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11 ✔ | + +[![Browser Matrix](https://saucelabs.com/open_sauce/build_matrix/axios.svg)](https://saucelabs.com/u/axios) + +## Installing + +Using npm: + +```bash +$ npm install axios +``` + +Using bower: + +```bash +$ bower install axios +``` + +Using yarn: + +```bash +$ yarn add axios +``` + +Using jsDelivr CDN: + +```html + +``` + +Using unpkg CDN: + +```html + +``` + +## Example + +### note: CommonJS usage +In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with `require()` use the following approach: + +```js +const axios = require('axios').default; + +// axios. will now provide autocomplete and parameter typings +``` + +Performing a `GET` request + +```js +const axios = require('axios'); + +// Make a request for a user with a given ID +axios.get('/user?ID=12345') + .then(function (response) { + // handle success + console.log(response); + }) + .catch(function (error) { + // handle error + console.log(error); + }) + .then(function () { + // always executed + }); + +// Optionally the request above could also be done as +axios.get('/user', { + params: { + ID: 12345 + } + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }) + .then(function () { + // always executed + }); + +// Want to use async/await? Add the `async` keyword to your outer function/method. +async function getUser() { + try { + const response = await axios.get('/user?ID=12345'); + console.log(response); + } catch (error) { + console.error(error); + } +} +``` + +> **NOTE:** `async/await` is part of ECMAScript 2017 and is not supported in Internet +> Explorer and older browsers, so use with caution. + +Performing a `POST` request + +```js +axios.post('/user', { + firstName: 'Fred', + lastName: 'Flintstone' + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }); +``` + +Performing multiple concurrent requests + +```js +function getUserAccount() { + return axios.get('/user/12345'); +} + +function getUserPermissions() { + return axios.get('/user/12345/permissions'); +} + +Promise.all([getUserAccount(), getUserPermissions()]) + .then(function (results) { + const acct = results[0]; + const perm = results[1]; + }); +``` + +## axios API + +Requests can be made by passing the relevant config to `axios`. + +##### axios(config) + +```js +// Send a POST request +axios({ + method: 'post', + url: '/user/12345', + data: { + firstName: 'Fred', + lastName: 'Flintstone' + } +}); +``` + +```js +// GET request for remote image in node.js +axios({ + method: 'get', + url: 'http://bit.ly/2mTM3nY', + responseType: 'stream' +}) + .then(function (response) { + response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')) + }); +``` + +##### axios(url[, config]) + +```js +// Send a GET request (default method) +axios('/user/12345'); +``` + +### Request method aliases + +For convenience aliases have been provided for all supported request methods. + +##### axios.request(config) +##### axios.get(url[, config]) +##### axios.delete(url[, config]) +##### axios.head(url[, config]) +##### axios.options(url[, config]) +##### axios.post(url[, data[, config]]) +##### axios.put(url[, data[, config]]) +##### axios.patch(url[, data[, config]]) + +###### NOTE +When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config. + +### Concurrency (Deprecated) +Please use `Promise.all` to replace the below functions. + +Helper functions for dealing with concurrent requests. + +axios.all(iterable) +axios.spread(callback) + +### Creating an instance + +You can create a new instance of axios with a custom config. + +##### axios.create([config]) + +```js +const instance = axios.create({ + baseURL: 'https://some-domain.com/api/', + timeout: 1000, + headers: {'X-Custom-Header': 'foobar'} +}); +``` + +### Instance methods + +The available instance methods are listed below. The specified config will be merged with the instance config. + +##### axios#request(config) +##### axios#get(url[, config]) +##### axios#delete(url[, config]) +##### axios#head(url[, config]) +##### axios#options(url[, config]) +##### axios#post(url[, data[, config]]) +##### axios#put(url[, data[, config]]) +##### axios#patch(url[, data[, config]]) +##### axios#getUri([config]) + +## Request Config + +These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified. + +```js +{ + // `url` is the server URL that will be used for the request + url: '/user', + + // `method` is the request method to be used when making the request + method: 'get', // default + + // `baseURL` will be prepended to `url` unless `url` is absolute. + // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs + // to methods of that instance. + baseURL: 'https://some-domain.com/api/', + + // `transformRequest` allows changes to the request data before it is sent to the server + // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE' + // The last function in the array must return a string or an instance of Buffer, ArrayBuffer, + // FormData or Stream + // You may modify the headers object. + transformRequest: [function (data, headers) { + // Do whatever you want to transform the data + + return data; + }], + + // `transformResponse` allows changes to the response data to be made before + // it is passed to then/catch + transformResponse: [function (data) { + // Do whatever you want to transform the data + + return data; + }], + + // `headers` are custom headers to be sent + headers: {'X-Requested-With': 'XMLHttpRequest'}, + + // `params` are the URL parameters to be sent with the request + // Must be a plain object or a URLSearchParams object + params: { + ID: 12345 + }, + + // `paramsSerializer` is an optional function in charge of serializing `params` + // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/) + paramsSerializer: function (params) { + return Qs.stringify(params, {arrayFormat: 'brackets'}) + }, + + // `data` is the data to be sent as the request body + // Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH' + // When no `transformRequest` is set, must be of one of the following types: + // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams + // - Browser only: FormData, File, Blob + // - Node only: Stream, Buffer + data: { + firstName: 'Fred' + }, + + // syntax alternative to send data into the body + // method post + // only the value is sent, not the key + data: 'Country=Brasil&City=Belo Horizonte', + + // `timeout` specifies the number of milliseconds before the request times out. + // If the request takes longer than `timeout`, the request will be aborted. + timeout: 1000, // default is `0` (no timeout) + + // `withCredentials` indicates whether or not cross-site Access-Control requests + // should be made using credentials + withCredentials: false, // default + + // `adapter` allows custom handling of requests which makes testing easier. + // Return a promise and supply a valid response (see lib/adapters/README.md). + adapter: function (config) { + /* ... */ + }, + + // `auth` indicates that HTTP Basic auth should be used, and supplies credentials. + // This will set an `Authorization` header, overwriting any existing + // `Authorization` custom headers you have set using `headers`. + // Please note that only HTTP Basic auth is configurable through this parameter. + // For Bearer tokens and such, use `Authorization` custom headers instead. + auth: { + username: 'janedoe', + password: 's00pers3cret' + }, + + // `responseType` indicates the type of data that the server will respond with + // options are: 'arraybuffer', 'document', 'json', 'text', 'stream' + // browser only: 'blob' + responseType: 'json', // default + + // `responseEncoding` indicates encoding to use for decoding responses (Node.js only) + // Note: Ignored for `responseType` of 'stream' or client-side requests + responseEncoding: 'utf8', // default + + // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token + xsrfCookieName: 'XSRF-TOKEN', // default + + // `xsrfHeaderName` is the name of the http header that carries the xsrf token value + xsrfHeaderName: 'X-XSRF-TOKEN', // default + + // `onUploadProgress` allows handling of progress events for uploads + // browser only + onUploadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `onDownloadProgress` allows handling of progress events for downloads + // browser only + onDownloadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js + maxContentLength: 2000, + + // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed + maxBodyLength: 2000, + + // `validateStatus` defines whether to resolve or reject the promise for a given + // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` + // or `undefined`), the promise will be resolved; otherwise, the promise will be + // rejected. + validateStatus: function (status) { + return status >= 200 && status < 300; // default + }, + + // `maxRedirects` defines the maximum number of redirects to follow in node.js. + // If set to 0, no redirects will be followed. + maxRedirects: 5, // default + + // `socketPath` defines a UNIX Socket to be used in node.js. + // e.g. '/var/run/docker.sock' to send requests to the docker daemon. + // Only either `socketPath` or `proxy` can be specified. + // If both are specified, `socketPath` is used. + socketPath: null, // default + + // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http + // and https requests, respectively, in node.js. This allows options to be added like + // `keepAlive` that are not enabled by default. + httpAgent: new http.Agent({ keepAlive: true }), + httpsAgent: new https.Agent({ keepAlive: true }), + + // `proxy` defines the hostname and port of the proxy server. + // You can also define your proxy using the conventional `http_proxy` and + // `https_proxy` environment variables. If you are using environment variables + // for your proxy configuration, you can also define a `no_proxy` environment + // variable as a comma-separated list of domains that should not be proxied. + // Use `false` to disable proxies, ignoring environment variables. + // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and + // supplies credentials. + // This will set an `Proxy-Authorization` header, overwriting any existing + // `Proxy-Authorization` custom headers you have set using `headers`. + proxy: { + host: '127.0.0.1', + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + }, + + // `cancelToken` specifies a cancel token that can be used to cancel the request + // (see Cancellation section below for details) + cancelToken: new CancelToken(function (cancel) { + }), + + // `decompress` indicates whether or not the response body should be decompressed + // automatically. If set to `true` will also remove the 'content-encoding' header + // from the responses objects of all decompressed responses + // - Node only (XHR cannot turn off decompression) + decompress: true // default + +} +``` + +## Response Schema + +The response for a request contains the following information. + +```js +{ + // `data` is the response that was provided by the server + data: {}, + + // `status` is the HTTP status code from the server response + status: 200, + + // `statusText` is the HTTP status message from the server response + statusText: 'OK', + + // `headers` the HTTP headers that the server responded with + // All header names are lower cased and can be accessed using the bracket notation. + // Example: `response.headers['content-type']` + headers: {}, + + // `config` is the config that was provided to `axios` for the request + config: {}, + + // `request` is the request that generated this response + // It is the last ClientRequest instance in node.js (in redirects) + // and an XMLHttpRequest instance in the browser + request: {} +} +``` + +When using `then`, you will receive the response as follows: + +```js +axios.get('/user/12345') + .then(function (response) { + console.log(response.data); + console.log(response.status); + console.log(response.statusText); + console.log(response.headers); + console.log(response.config); + }); +``` + +When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section. + +## Config Defaults + +You can specify config defaults that will be applied to every request. + +### Global axios defaults + +```js +axios.defaults.baseURL = 'https://api.example.com'; +axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; +``` + +### Custom instance defaults + +```js +// Set config defaults when creating the instance +const instance = axios.create({ + baseURL: 'https://api.example.com' +}); + +// Alter defaults after instance has been created +instance.defaults.headers.common['Authorization'] = AUTH_TOKEN; +``` + +### Config order of precedence + +Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example. + +```js +// Create an instance using the config defaults provided by the library +// At this point the timeout config value is `0` as is the default for the library +const instance = axios.create(); + +// Override timeout default for the library +// Now all requests using this instance will wait 2.5 seconds before timing out +instance.defaults.timeout = 2500; + +// Override timeout for this request as it's known to take a long time +instance.get('/longRequest', { + timeout: 5000 +}); +``` + +## Interceptors + +You can intercept requests or responses before they are handled by `then` or `catch`. + +```js +// Add a request interceptor +axios.interceptors.request.use(function (config) { + // Do something before request is sent + return config; + }, function (error) { + // Do something with request error + return Promise.reject(error); + }); + +// Add a response interceptor +axios.interceptors.response.use(function (response) { + // Any status code that lie within the range of 2xx cause this function to trigger + // Do something with response data + return response; + }, function (error) { + // Any status codes that falls outside the range of 2xx cause this function to trigger + // Do something with response error + return Promise.reject(error); + }); +``` + +If you need to remove an interceptor later you can. + +```js +const myInterceptor = axios.interceptors.request.use(function () {/*...*/}); +axios.interceptors.request.eject(myInterceptor); +``` + +You can add interceptors to a custom instance of axios. + +```js +const instance = axios.create(); +instance.interceptors.request.use(function () {/*...*/}); +``` + +## Handling Errors + +```js +axios.get('/user/12345') + .catch(function (error) { + if (error.response) { + // The request was made and the server responded with a status code + // that falls out of the range of 2xx + console.log(error.response.data); + console.log(error.response.status); + console.log(error.response.headers); + } else if (error.request) { + // The request was made but no response was received + // `error.request` is an instance of XMLHttpRequest in the browser and an instance of + // http.ClientRequest in node.js + console.log(error.request); + } else { + // Something happened in setting up the request that triggered an Error + console.log('Error', error.message); + } + console.log(error.config); + }); +``` + +Using the `validateStatus` config option, you can define HTTP code(s) that should throw an error. + +```js +axios.get('/user/12345', { + validateStatus: function (status) { + return status < 500; // Resolve only if the status code is less than 500 + } +}) +``` + +Using `toJSON` you get an object with more information about the HTTP error. + +```js +axios.get('/user/12345') + .catch(function (error) { + console.log(error.toJSON()); + }); +``` + +## Cancellation + +You can cancel a request using a *cancel token*. + +> The axios cancel token API is based on the withdrawn [cancelable promises proposal](https://github.com/tc39/proposal-cancelable-promises). + +You can create a cancel token using the `CancelToken.source` factory as shown below: + +```js +const CancelToken = axios.CancelToken; +const source = CancelToken.source(); + +axios.get('/user/12345', { + cancelToken: source.token +}).catch(function (thrown) { + if (axios.isCancel(thrown)) { + console.log('Request canceled', thrown.message); + } else { + // handle error + } +}); + +axios.post('/user/12345', { + name: 'new name' +}, { + cancelToken: source.token +}) + +// cancel the request (the message parameter is optional) +source.cancel('Operation canceled by the user.'); +``` + +You can also create a cancel token by passing an executor function to the `CancelToken` constructor: + +```js +const CancelToken = axios.CancelToken; +let cancel; + +axios.get('/user/12345', { + cancelToken: new CancelToken(function executor(c) { + // An executor function receives a cancel function as a parameter + cancel = c; + }) +}); + +// cancel the request +cancel(); +``` + +> Note: you can cancel several requests with the same cancel token. + +## Using application/x-www-form-urlencoded format + +By default, axios serializes JavaScript objects to `JSON`. To send data in the `application/x-www-form-urlencoded` format instead, you can use one of the following options. + +### Browser + +In a browser, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API as follows: + +```js +const params = new URLSearchParams(); +params.append('param1', 'value1'); +params.append('param2', 'value2'); +axios.post('/foo', params); +``` + +> Note that `URLSearchParams` is not supported by all browsers (see [caniuse.com](http://www.caniuse.com/#feat=urlsearchparams)), but there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment). + +Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library: + +```js +const qs = require('qs'); +axios.post('/foo', qs.stringify({ 'bar': 123 })); +``` + +Or in another way (ES6), + +```js +import qs from 'qs'; +const data = { 'bar': 123 }; +const options = { + method: 'POST', + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + data: qs.stringify(data), + url, +}; +axios(options); +``` + +### Node.js + +#### Query string + +In node.js, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows: + +```js +const querystring = require('querystring'); +axios.post('http://something.com/', querystring.stringify({ foo: 'bar' })); +``` + +or ['URLSearchParams'](https://nodejs.org/api/url.html#url_class_urlsearchparams) from ['url module'](https://nodejs.org/api/url.html) as follows: + +```js +const url = require('url'); +const params = new url.URLSearchParams({ foo: 'bar' }); +axios.post('http://something.com/', params.toString()); +``` + +You can also use the [`qs`](https://github.com/ljharb/qs) library. + +###### NOTE +The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665). + +#### Form data + +In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows: + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); + +axios.post('https://example.com', form, { headers: form.getHeaders() }) +``` + +Alternatively, use an interceptor: + +```js +axios.interceptors.request.use(config => { + if (config.data instanceof FormData) { + Object.assign(config.headers, config.data.getHeaders()); + } + return config; +}); +``` + +## Semver + +Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes. + +## Promises + +axios depends on a native ES6 Promise implementation to be [supported](http://caniuse.com/promises). +If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise). + +## TypeScript +axios includes [TypeScript](http://typescriptlang.org) definitions. +```typescript +import axios from 'axios'; +axios.get('/user?ID=12345'); +``` + +## Resources + +* [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) +* [Upgrade Guide](https://github.com/axios/axios/blob/master/UPGRADE_GUIDE.md) +* [Ecosystem](https://github.com/axios/axios/blob/master/ECOSYSTEM.md) +* [Contributing Guide](https://github.com/axios/axios/blob/master/CONTRIBUTING.md) +* [Code of Conduct](https://github.com/axios/axios/blob/master/CODE_OF_CONDUCT.md) + +## Credits + +axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [Angular](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of Angular. + +## License + +[MIT](LICENSE) diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/UPGRADE_GUIDE.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/UPGRADE_GUIDE.md new file mode 100644 index 000000000..eedb04925 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/UPGRADE_GUIDE.md @@ -0,0 +1,162 @@ +# Upgrade Guide + +### 0.15.x -> 0.16.0 + +#### `Promise` Type Declarations + +The `Promise` type declarations have been removed from the axios typings in favor of the built-in type declarations. If you use axios in a TypeScript project that targets `ES5`, please make sure to include the `es2015.promise` lib. Please see [this post](https://blog.mariusschulz.com/2016/11/25/typescript-2-0-built-in-type-declarations) for details. + +### 0.13.x -> 0.14.0 + +#### TypeScript Definitions + +The axios TypeScript definitions have been updated to match the axios API and use the ES2015 module syntax. + +Please use the following `import` statement to import axios in TypeScript: + +```typescript +import axios from 'axios'; + +axios.get('/foo') + .then(response => console.log(response)) + .catch(error => console.log(error)); +``` + +#### `agent` Config Option + +The `agent` config option has been replaced with two new options: `httpAgent` and `httpsAgent`. Please use them instead. + +```js +{ + // Define a custom agent for HTTP + httpAgent: new http.Agent({ keepAlive: true }), + // Define a custom agent for HTTPS + httpsAgent: new https.Agent({ keepAlive: true }) +} +``` + +#### `progress` Config Option + +The `progress` config option has been replaced with the `onUploadProgress` and `onDownloadProgress` options. + +```js +{ + // Define a handler for upload progress events + onUploadProgress: function (progressEvent) { + // ... + }, + + // Define a handler for download progress events + onDownloadProgress: function (progressEvent) { + // ... + } +} +``` + +### 0.12.x -> 0.13.0 + +The `0.13.0` release contains several changes to custom adapters and error handling. + +#### Error Handling + +Previous to this release an error could either be a server response with bad status code or an actual `Error`. With this release Promise will always reject with an `Error`. In the case that a response was received, the `Error` will also include the response. + +```js +axios.get('/user/12345') + .catch((error) => { + console.log(error.message); + console.log(error.code); // Not always specified + console.log(error.config); // The config that was used to make the request + console.log(error.response); // Only available if response was received from the server + }); +``` + +#### Request Adapters + +This release changes a few things about how request adapters work. Please take note if you are using your own custom adapter. + +1. Response transformer is now called outside of adapter. +2. Request adapter returns a `Promise`. + +This means that you no longer need to invoke `transformData` on response data. You will also no longer receive `resolve` and `reject` as arguments in your adapter. + +Previous code: + +```js +function myAdapter(resolve, reject, config) { + var response = { + data: transformData( + responseData, + responseHeaders, + config.transformResponse + ), + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); +} +``` + +New code: + +```js +function myAdapter(config) { + return new Promise(function (resolve, reject) { + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); + }); +} +``` + +See the related commits for more details: +- [Response transformers](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e) +- [Request adapter Promise](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a) + +### 0.5.x -> 0.6.0 + +The `0.6.0` release contains mostly bug fixes, but there are a couple things to be aware of when upgrading. + +#### ES6 Promise Polyfill + +Up until the `0.6.0` release ES6 `Promise` was being polyfilled using [es6-promise](https://github.com/jakearchibald/es6-promise). With this release, the polyfill has been removed, and you will need to supply it yourself if your environment needs it. + +```js +require('es6-promise').polyfill(); +var axios = require('axios'); +``` + +This will polyfill the global environment, and only needs to be done once. + +#### `axios.success`/`axios.error` + +The `success`, and `error` aliases were deprectated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively. + +```js +axios.get('some/url') + .then(function (res) { + /* ... */ + }) + .catch(function (err) { + /* ... */ + }); +``` + +#### UMD + +Previous versions of axios shipped with an AMD, CommonJS, and Global build. This has all been rolled into a single UMD build. + +```js +// AMD +require(['bower_components/axios/dist/axios'], function (axios) { + /* ... */ +}); + +// CommonJS +var axios = require('axios/dist/axios'); +``` diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.js new file mode 100644 index 000000000..c8fb87125 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.js @@ -0,0 +1,1742 @@ +/* axios v0.20.0 | (c) 2020 by Matt Zabriskie */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var bind = __webpack_require__(3); + var Axios = __webpack_require__(4); + var mergeConfig = __webpack_require__(22); + var defaults = __webpack_require__(10); + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; + } + + // Create the default instance to be exported + var axios = createInstance(defaults); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios; + + // Factory for creating new instances + axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); + }; + + // Expose Cancel & CancelToken + axios.Cancel = __webpack_require__(23); + axios.CancelToken = __webpack_require__(24); + axios.isCancel = __webpack_require__(9); + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = __webpack_require__(25); + + module.exports = axios; + + // Allow use of default import syntax in TypeScript + module.exports.default = axios; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var bind = __webpack_require__(3); + + /*global toString:true*/ + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ + function isArray(val) { + return toString.call(val) === '[object Array]'; + } + + /** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ + function isUndefined(val) { + return typeof val === 'undefined'; + } + + /** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; + } + + /** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ + function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); + } + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ + function isString(val) { + return typeof val === 'string'; + } + + /** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ + function isNumber(val) { + return typeof val === 'number'; + } + + /** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ + function isObject(val) { + return val !== null && typeof val === 'object'; + } + + /** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ + function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; + } + + /** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ + function isDate(val) { + return toString.call(val) === '[object Date]'; + } + + /** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ + function isFile(val) { + return toString.call(val) === '[object File]'; + } + + /** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ + function isBlob(val) { + return toString.call(val) === '[object Blob]'; + } + + /** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + function isFunction(val) { + return toString.call(val) === '[object Function]'; + } + + /** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ + function isStream(val) { + return isObject(val) && isFunction(val.pipe); + } + + /** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; + } + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ + function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); + } + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ + function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); + } + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ + function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + + /** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ + function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; + } + + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var buildURL = __webpack_require__(5); + var InterceptorManager = __webpack_require__(6); + var dispatchRequest = __webpack_require__(7); + var mergeConfig = __webpack_require__(22); + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ + Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + }; + + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); + }; + + // Provide aliases for supported request methods + utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url + })); + }; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; + }); + + module.exports = Axios; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ + module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; + }; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function InterceptorManager() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; + }; + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + + module.exports = InterceptorManager; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var transformData = __webpack_require__(8); + var isCancel = __webpack_require__(9); + var defaults = __webpack_require__(10); + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ + module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); + }; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ + module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var normalizeHeaderName = __webpack_require__(11); + + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' + }; + + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } + } + + function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(12); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(12); + } + return adapter; + } + + var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } + }; + + defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } + }; + + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + + module.exports = defaults; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var settle = __webpack_require__(13); + var cookies = __webpack_require__(16); + var buildURL = __webpack_require__(5); + var buildFullPath = __webpack_require__(17); + var parseHeaders = __webpack_require__(20); + var isURLSameOrigin = __webpack_require__(21); + var createError = __webpack_require__(14); + + module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + if ( + (utils.isBlob(requestData) || utils.isFile(requestData)) && + requestData.type + ) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = unescape(encodeURIComponent(config.auth.password)) || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var createError = __webpack_require__(14); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ + module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var enhanceError = __webpack_require__(15); + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ + module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ + module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() + ); + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var isAbsoluteURL = __webpack_require__(18); + var combineURLs = __webpack_require__(19); + + /** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ + module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ + module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; + }; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + // Headers whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' + ]; + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ + module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; + }; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() + ); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ + module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ + function Cancel(message) { + this.message = message; + } + + Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); + }; + + Cancel.prototype.__CANCEL__ = true; + + module.exports = Cancel; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Cancel = __webpack_require__(23); + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ + function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; + }; + + module.exports = CancelToken; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ + module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.map new file mode 100644 index 000000000..bc07db5fe --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 54cb2e29151233e542e4","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,yC;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACpDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,6BAA4B;AAC5B,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9VA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;;;;;;;AC7FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACrEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B,wCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,MAAM;AACjB,YAAW,eAAe;AAC1B,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO,YAAY;AACnB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;;;;;;ACjGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;;;;;;ACzLA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C,UAAS;;AAET;AACA,6DAA4D,wBAAwB;AACpF;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC;AAClC,gCAA+B,aAAa,EAAE;AAC9C;AACA;AACA,MAAK;AACL;;;;;;;ACpDA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;;;;;ACnEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL,4BAA2B;AAC3B,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;;;;;;;ACtFA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,YAAW,SAAS;AACpB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 54cb2e29151233e542e4","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.js new file mode 100644 index 000000000..2d030546a --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.js @@ -0,0 +1,3 @@ +/* axios v0.20.0 | (c) 2020 by Matt Zabriskie */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new s(e),n=i(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var o=n(2),i=n(3),s=n(4),a=n(22),u=n(10),c=r(u);c.Axios=s,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===R.call(e)}function o(e){return"undefined"==typeof e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function s(e){return"[object ArrayBuffer]"===R.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){if("[object Object]"!==R.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Date]"===R.call(e)}function h(e){return"[object File]"===R.call(e)}function m(e){return"[object Blob]"===R.call(e)}function y(e){return"[object Function]"===R.call(e)}function g(e){return p(e)&&y(e.pipe)}function v(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function b(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){u.headers[e]={}}),i.forEach(["post","put","patch"],function(e){u.headers[e]=i.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(16),s=n(5),a=n(17),u=n(20),c=n(21),f=n(14);e.exports=function(e){return new Promise(function(t,n){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"],(r.isBlob(p)||r.isFile(p))&&p.type&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=unescape(encodeURIComponent(e.auth.password))||"";d.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),s(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in l?u(l.getAllResponseHeaders()):null,i=e.responseType&&"text"!==e.responseType?l.response:l.responseText,s={data:i,status:l.status,statusText:l.statusText,headers:r,config:e,request:l};o(t,n,s),l=null}},l.onabort=function(){l&&(n(f("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){n(f("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(y))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),n(e),l=null)}),p||(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(18),o=n(19);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){function n(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(i[o]=n(void 0,e[o])):i[o]=n(e[o],t[o])}t=t||{};var i={},s=["url","method","data"],a=["headers","auth","proxy","params"],u=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],c=["validateStatus"];r.forEach(s,function(e){r.isUndefined(t[e])||(i[e]=n(void 0,t[e]))}),r.forEach(a,o),r.forEach(u,function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(i[o]=n(void 0,e[o])):i[o]=n(void 0,t[o])}),r.forEach(c,function(r){r in t?i[r]=n(e[r],t[r]):r in e&&(i[r]=n(void 0,e[r]))});var f=s.concat(a).concat(u).concat(c),p=Object.keys(e).concat(Object.keys(t)).filter(function(e){return f.indexOf(e)===-1});return r.forEach(p,o),i}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])}); +//# sourceMappingURL=axios.min.map \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.map new file mode 100644 index 000000000..30af4a2e6 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/dist/axios.min.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///axios.min.js","webpack:///webpack/bootstrap 774a0a9053bba812be49","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createInstance","defaultConfig","context","Axios","instance","bind","prototype","request","utils","extend","mergeConfig","defaults","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","Promise","spread","default","isArray","val","toString","isUndefined","isBuffer","constructor","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isPlainObject","Object","getPrototypeOf","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","i","l","length","key","hasOwnProperty","merge","assignValue","slice","arguments","a","b","thisArg","stripBOM","content","charCodeAt","args","Array","apply","interceptors","InterceptorManager","response","buildURL","dispatchRequest","config","url","method","toLowerCase","chain","undefined","promise","resolve","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","data","encode","encodeURIComponent","serializedParams","parts","v","toISOString","JSON","stringify","join","hashmarkIndex","indexOf","handlers","use","eject","h","throwIfCancellationRequested","cancelToken","throwIfRequested","transformData","headers","transformRequest","common","adapter","transformResponse","reason","reject","fns","value","__CANCEL__","setContentTypeIfUnset","getDefaultAdapter","XMLHttpRequest","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","Accept","normalizedName","name","toUpperCase","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","type","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","send","enhanceError","message","code","error","Error","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","concat","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","originURL","userAgent","createElement","location","requestURL","config1","config2","getMergedValue","target","source","mergeDeepProperties","prop","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","axiosKeys","otherKeys","keys","filter","executor","TypeError","resolvePromise","token","callback","arr"],"mappings":"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","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar bind = __webpack_require__(3);\n\tvar Axios = __webpack_require__(4);\n\tvar mergeConfig = __webpack_require__(22);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Create an instance of Axios\n\t *\n\t * @param {Object} defaultConfig The default config for the instance\n\t * @return {Axios} A new instance of Axios\n\t */\n\tfunction createInstance(defaultConfig) {\n\t var context = new Axios(defaultConfig);\n\t var instance = bind(Axios.prototype.request, context);\n\t\n\t // Copy axios.prototype to instance\n\t utils.extend(instance, Axios.prototype, context);\n\t\n\t // Copy context to instance\n\t utils.extend(instance, context);\n\t\n\t return instance;\n\t}\n\t\n\t// Create the default instance to be exported\n\tvar axios = createInstance(defaults);\n\t\n\t// Expose Axios class to allow class inheritance\n\taxios.Axios = Axios;\n\t\n\t// Factory for creating new instances\n\taxios.create = function create(instanceConfig) {\n\t return createInstance(mergeConfig(axios.defaults, instanceConfig));\n\t};\n\t\n\t// Expose Cancel & CancelToken\n\taxios.Cancel = __webpack_require__(23);\n\taxios.CancelToken = __webpack_require__(24);\n\taxios.isCancel = __webpack_require__(9);\n\t\n\t// Expose all/spread\n\taxios.all = function all(promises) {\n\t return Promise.all(promises);\n\t};\n\taxios.spread = __webpack_require__(25);\n\t\n\tmodule.exports = axios;\n\t\n\t// Allow use of default import syntax in TypeScript\n\tmodule.exports.default = axios;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar bind = __webpack_require__(3);\n\t\n\t/*global toString:true*/\n\t\n\t// utils is a library of generic helper functions non-specific to axios\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * Determine if a value is an Array\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Array, otherwise false\n\t */\n\tfunction isArray(val) {\n\t return toString.call(val) === '[object Array]';\n\t}\n\t\n\t/**\n\t * Determine if a value is undefined\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if the value is undefined, otherwise false\n\t */\n\tfunction isUndefined(val) {\n\t return typeof val === 'undefined';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Buffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Buffer, otherwise false\n\t */\n\tfunction isBuffer(val) {\n\t return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n\t && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n\t}\n\t\n\t/**\n\t * Determine if a value is an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBuffer(val) {\n\t return toString.call(val) === '[object ArrayBuffer]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a FormData\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an FormData, otherwise false\n\t */\n\tfunction isFormData(val) {\n\t return (typeof FormData !== 'undefined') && (val instanceof FormData);\n\t}\n\t\n\t/**\n\t * Determine if a value is a view on an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBufferView(val) {\n\t var result;\n\t if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n\t result = ArrayBuffer.isView(val);\n\t } else {\n\t result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Determine if a value is a String\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a String, otherwise false\n\t */\n\tfunction isString(val) {\n\t return typeof val === 'string';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Number\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Number, otherwise false\n\t */\n\tfunction isNumber(val) {\n\t return typeof val === 'number';\n\t}\n\t\n\t/**\n\t * Determine if a value is an Object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Object, otherwise false\n\t */\n\tfunction isObject(val) {\n\t return val !== null && typeof val === 'object';\n\t}\n\t\n\t/**\n\t * Determine if a value is a plain Object\n\t *\n\t * @param {Object} val The value to test\n\t * @return {boolean} True if value is a plain Object, otherwise false\n\t */\n\tfunction isPlainObject(val) {\n\t if (toString.call(val) !== '[object Object]') {\n\t return false;\n\t }\n\t\n\t var prototype = Object.getPrototypeOf(val);\n\t return prototype === null || prototype === Object.prototype;\n\t}\n\t\n\t/**\n\t * Determine if a value is a Date\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Date, otherwise false\n\t */\n\tfunction isDate(val) {\n\t return toString.call(val) === '[object Date]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a File\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a File, otherwise false\n\t */\n\tfunction isFile(val) {\n\t return toString.call(val) === '[object File]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Blob\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Blob, otherwise false\n\t */\n\tfunction isBlob(val) {\n\t return toString.call(val) === '[object Blob]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Function\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Function, otherwise false\n\t */\n\tfunction isFunction(val) {\n\t return toString.call(val) === '[object Function]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Stream\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Stream, otherwise false\n\t */\n\tfunction isStream(val) {\n\t return isObject(val) && isFunction(val.pipe);\n\t}\n\t\n\t/**\n\t * Determine if a value is a URLSearchParams object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n\t */\n\tfunction isURLSearchParams(val) {\n\t return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n\t}\n\t\n\t/**\n\t * Trim excess whitespace off the beginning and end of a string\n\t *\n\t * @param {String} str The String to trim\n\t * @returns {String} The String freed of excess whitespace\n\t */\n\tfunction trim(str) {\n\t return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n\t}\n\t\n\t/**\n\t * Determine if we're running in a standard browser environment\n\t *\n\t * This allows axios to run in a web worker, and react-native.\n\t * Both environments support XMLHttpRequest, but not fully standard globals.\n\t *\n\t * web workers:\n\t * typeof window -> undefined\n\t * typeof document -> undefined\n\t *\n\t * react-native:\n\t * navigator.product -> 'ReactNative'\n\t * nativescript\n\t * navigator.product -> 'NativeScript' or 'NS'\n\t */\n\tfunction isStandardBrowserEnv() {\n\t if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n\t navigator.product === 'NativeScript' ||\n\t navigator.product === 'NS')) {\n\t return false;\n\t }\n\t return (\n\t typeof window !== 'undefined' &&\n\t typeof document !== 'undefined'\n\t );\n\t}\n\t\n\t/**\n\t * Iterate over an Array or an Object invoking a function for each item.\n\t *\n\t * If `obj` is an Array callback will be called passing\n\t * the value, index, and complete array for each item.\n\t *\n\t * If 'obj' is an Object callback will be called passing\n\t * the value, key, and complete object for each property.\n\t *\n\t * @param {Object|Array} obj The object to iterate\n\t * @param {Function} fn The callback to invoke for each item\n\t */\n\tfunction forEach(obj, fn) {\n\t // Don't bother if no value provided\n\t if (obj === null || typeof obj === 'undefined') {\n\t return;\n\t }\n\t\n\t // Force an array if not already something iterable\n\t if (typeof obj !== 'object') {\n\t /*eslint no-param-reassign:0*/\n\t obj = [obj];\n\t }\n\t\n\t if (isArray(obj)) {\n\t // Iterate over array values\n\t for (var i = 0, l = obj.length; i < l; i++) {\n\t fn.call(null, obj[i], i, obj);\n\t }\n\t } else {\n\t // Iterate over object keys\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t fn.call(null, obj[key], key, obj);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Accepts varargs expecting each argument to be an object, then\n\t * immutably merges the properties of each object and returns result.\n\t *\n\t * When multiple objects contain the same key the later object in\n\t * the arguments list will take precedence.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * var result = merge({foo: 123}, {foo: 456});\n\t * console.log(result.foo); // outputs 456\n\t * ```\n\t *\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction merge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (isPlainObject(result[key]) && isPlainObject(val)) {\n\t result[key] = merge(result[key], val);\n\t } else if (isPlainObject(val)) {\n\t result[key] = merge({}, val);\n\t } else if (isArray(val)) {\n\t result[key] = val.slice();\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Extends object a by mutably adding to it the properties of object b.\n\t *\n\t * @param {Object} a The object to be extended\n\t * @param {Object} b The object to copy properties from\n\t * @param {Object} thisArg The object to bind function to\n\t * @return {Object} The resulting value of object a\n\t */\n\tfunction extend(a, b, thisArg) {\n\t forEach(b, function assignValue(val, key) {\n\t if (thisArg && typeof val === 'function') {\n\t a[key] = bind(val, thisArg);\n\t } else {\n\t a[key] = val;\n\t }\n\t });\n\t return a;\n\t}\n\t\n\t/**\n\t * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n\t *\n\t * @param {string} content with BOM\n\t * @return {string} content value without BOM\n\t */\n\tfunction stripBOM(content) {\n\t if (content.charCodeAt(0) === 0xFEFF) {\n\t content = content.slice(1);\n\t }\n\t return content;\n\t}\n\t\n\tmodule.exports = {\n\t isArray: isArray,\n\t isArrayBuffer: isArrayBuffer,\n\t isBuffer: isBuffer,\n\t isFormData: isFormData,\n\t isArrayBufferView: isArrayBufferView,\n\t isString: isString,\n\t isNumber: isNumber,\n\t isObject: isObject,\n\t isPlainObject: isPlainObject,\n\t isUndefined: isUndefined,\n\t isDate: isDate,\n\t isFile: isFile,\n\t isBlob: isBlob,\n\t isFunction: isFunction,\n\t isStream: isStream,\n\t isURLSearchParams: isURLSearchParams,\n\t isStandardBrowserEnv: isStandardBrowserEnv,\n\t forEach: forEach,\n\t merge: merge,\n\t extend: extend,\n\t trim: trim,\n\t stripBOM: stripBOM\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function bind(fn, thisArg) {\n\t return function wrap() {\n\t var args = new Array(arguments.length);\n\t for (var i = 0; i < args.length; i++) {\n\t args[i] = arguments[i];\n\t }\n\t return fn.apply(thisArg, args);\n\t };\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar buildURL = __webpack_require__(5);\n\tvar InterceptorManager = __webpack_require__(6);\n\tvar dispatchRequest = __webpack_require__(7);\n\tvar mergeConfig = __webpack_require__(22);\n\t\n\t/**\n\t * Create a new instance of Axios\n\t *\n\t * @param {Object} instanceConfig The default config for the instance\n\t */\n\tfunction Axios(instanceConfig) {\n\t this.defaults = instanceConfig;\n\t this.interceptors = {\n\t request: new InterceptorManager(),\n\t response: new InterceptorManager()\n\t };\n\t}\n\t\n\t/**\n\t * Dispatch a request\n\t *\n\t * @param {Object} config The config specific for this request (merged with this.defaults)\n\t */\n\tAxios.prototype.request = function request(config) {\n\t /*eslint no-param-reassign:0*/\n\t // Allow for axios('example/url'[, config]) a la fetch API\n\t if (typeof config === 'string') {\n\t config = arguments[1] || {};\n\t config.url = arguments[0];\n\t } else {\n\t config = config || {};\n\t }\n\t\n\t config = mergeConfig(this.defaults, config);\n\t\n\t // Set config.method\n\t if (config.method) {\n\t config.method = config.method.toLowerCase();\n\t } else if (this.defaults.method) {\n\t config.method = this.defaults.method.toLowerCase();\n\t } else {\n\t config.method = 'get';\n\t }\n\t\n\t // Hook up interceptors middleware\n\t var chain = [dispatchRequest, undefined];\n\t var promise = Promise.resolve(config);\n\t\n\t this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n\t chain.unshift(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n\t chain.push(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t while (chain.length) {\n\t promise = promise.then(chain.shift(), chain.shift());\n\t }\n\t\n\t return promise;\n\t};\n\t\n\tAxios.prototype.getUri = function getUri(config) {\n\t config = mergeConfig(this.defaults, config);\n\t return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n\t};\n\t\n\t// Provide aliases for supported request methods\n\tutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url\n\t }));\n\t };\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, data, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url,\n\t data: data\n\t }));\n\t };\n\t});\n\t\n\tmodule.exports = Axios;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction encode(val) {\n\t return encodeURIComponent(val).\n\t replace(/%3A/gi, ':').\n\t replace(/%24/g, '$').\n\t replace(/%2C/gi, ',').\n\t replace(/%20/g, '+').\n\t replace(/%5B/gi, '[').\n\t replace(/%5D/gi, ']');\n\t}\n\t\n\t/**\n\t * Build a URL by appending params to the end\n\t *\n\t * @param {string} url The base of the url (e.g., http://www.google.com)\n\t * @param {object} [params] The params to be appended\n\t * @returns {string} The formatted url\n\t */\n\tmodule.exports = function buildURL(url, params, paramsSerializer) {\n\t /*eslint no-param-reassign:0*/\n\t if (!params) {\n\t return url;\n\t }\n\t\n\t var serializedParams;\n\t if (paramsSerializer) {\n\t serializedParams = paramsSerializer(params);\n\t } else if (utils.isURLSearchParams(params)) {\n\t serializedParams = params.toString();\n\t } else {\n\t var parts = [];\n\t\n\t utils.forEach(params, function serialize(val, key) {\n\t if (val === null || typeof val === 'undefined') {\n\t return;\n\t }\n\t\n\t if (utils.isArray(val)) {\n\t key = key + '[]';\n\t } else {\n\t val = [val];\n\t }\n\t\n\t utils.forEach(val, function parseValue(v) {\n\t if (utils.isDate(v)) {\n\t v = v.toISOString();\n\t } else if (utils.isObject(v)) {\n\t v = JSON.stringify(v);\n\t }\n\t parts.push(encode(key) + '=' + encode(v));\n\t });\n\t });\n\t\n\t serializedParams = parts.join('&');\n\t }\n\t\n\t if (serializedParams) {\n\t var hashmarkIndex = url.indexOf('#');\n\t if (hashmarkIndex !== -1) {\n\t url = url.slice(0, hashmarkIndex);\n\t }\n\t\n\t url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n\t }\n\t\n\t return url;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction InterceptorManager() {\n\t this.handlers = [];\n\t}\n\t\n\t/**\n\t * Add a new interceptor to the stack\n\t *\n\t * @param {Function} fulfilled The function to handle `then` for a `Promise`\n\t * @param {Function} rejected The function to handle `reject` for a `Promise`\n\t *\n\t * @return {Number} An ID used to remove interceptor later\n\t */\n\tInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n\t this.handlers.push({\n\t fulfilled: fulfilled,\n\t rejected: rejected\n\t });\n\t return this.handlers.length - 1;\n\t};\n\t\n\t/**\n\t * Remove an interceptor from the stack\n\t *\n\t * @param {Number} id The ID that was returned by `use`\n\t */\n\tInterceptorManager.prototype.eject = function eject(id) {\n\t if (this.handlers[id]) {\n\t this.handlers[id] = null;\n\t }\n\t};\n\t\n\t/**\n\t * Iterate over all the registered interceptors\n\t *\n\t * This method is particularly useful for skipping over any\n\t * interceptors that may have become `null` calling `eject`.\n\t *\n\t * @param {Function} fn The function to call for each interceptor\n\t */\n\tInterceptorManager.prototype.forEach = function forEach(fn) {\n\t utils.forEach(this.handlers, function forEachHandler(h) {\n\t if (h !== null) {\n\t fn(h);\n\t }\n\t });\n\t};\n\t\n\tmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar transformData = __webpack_require__(8);\n\tvar isCancel = __webpack_require__(9);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tfunction throwIfCancellationRequested(config) {\n\t if (config.cancelToken) {\n\t config.cancelToken.throwIfRequested();\n\t }\n\t}\n\t\n\t/**\n\t * Dispatch a request to the server using the configured adapter.\n\t *\n\t * @param {object} config The config that is to be used for the request\n\t * @returns {Promise} The Promise to be fulfilled\n\t */\n\tmodule.exports = function dispatchRequest(config) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Ensure headers exist\n\t config.headers = config.headers || {};\n\t\n\t // Transform request data\n\t config.data = transformData(\n\t config.data,\n\t config.headers,\n\t config.transformRequest\n\t );\n\t\n\t // Flatten headers\n\t config.headers = utils.merge(\n\t config.headers.common || {},\n\t config.headers[config.method] || {},\n\t config.headers\n\t );\n\t\n\t utils.forEach(\n\t ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n\t function cleanHeaderConfig(method) {\n\t delete config.headers[method];\n\t }\n\t );\n\t\n\t var adapter = config.adapter || defaults.adapter;\n\t\n\t return adapter(config).then(function onAdapterResolution(response) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t response.data = transformData(\n\t response.data,\n\t response.headers,\n\t config.transformResponse\n\t );\n\t\n\t return response;\n\t }, function onAdapterRejection(reason) {\n\t if (!isCancel(reason)) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t if (reason && reason.response) {\n\t reason.response.data = transformData(\n\t reason.response.data,\n\t reason.response.headers,\n\t config.transformResponse\n\t );\n\t }\n\t }\n\t\n\t return Promise.reject(reason);\n\t });\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Transform the data for a request or a response\n\t *\n\t * @param {Object|String} data The data to be transformed\n\t * @param {Array} headers The headers for the request or response\n\t * @param {Array|Function} fns A single function or Array of functions\n\t * @returns {*} The resulting transformed data\n\t */\n\tmodule.exports = function transformData(data, headers, fns) {\n\t /*eslint no-param-reassign:0*/\n\t utils.forEach(fns, function transform(fn) {\n\t data = fn(data, headers);\n\t });\n\t\n\t return data;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function isCancel(value) {\n\t return !!(value && value.__CANCEL__);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar normalizeHeaderName = __webpack_require__(11);\n\t\n\tvar DEFAULT_CONTENT_TYPE = {\n\t 'Content-Type': 'application/x-www-form-urlencoded'\n\t};\n\t\n\tfunction setContentTypeIfUnset(headers, value) {\n\t if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n\t headers['Content-Type'] = value;\n\t }\n\t}\n\t\n\tfunction getDefaultAdapter() {\n\t var adapter;\n\t if (typeof XMLHttpRequest !== 'undefined') {\n\t // For browsers use XHR adapter\n\t adapter = __webpack_require__(12);\n\t } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n\t // For node use HTTP adapter\n\t adapter = __webpack_require__(12);\n\t }\n\t return adapter;\n\t}\n\t\n\tvar defaults = {\n\t adapter: getDefaultAdapter(),\n\t\n\t transformRequest: [function transformRequest(data, headers) {\n\t normalizeHeaderName(headers, 'Accept');\n\t normalizeHeaderName(headers, 'Content-Type');\n\t if (utils.isFormData(data) ||\n\t utils.isArrayBuffer(data) ||\n\t utils.isBuffer(data) ||\n\t utils.isStream(data) ||\n\t utils.isFile(data) ||\n\t utils.isBlob(data)\n\t ) {\n\t return data;\n\t }\n\t if (utils.isArrayBufferView(data)) {\n\t return data.buffer;\n\t }\n\t if (utils.isURLSearchParams(data)) {\n\t setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n\t return data.toString();\n\t }\n\t if (utils.isObject(data)) {\n\t setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n\t return JSON.stringify(data);\n\t }\n\t return data;\n\t }],\n\t\n\t transformResponse: [function transformResponse(data) {\n\t /*eslint no-param-reassign:0*/\n\t if (typeof data === 'string') {\n\t try {\n\t data = JSON.parse(data);\n\t } catch (e) { /* Ignore */ }\n\t }\n\t return data;\n\t }],\n\t\n\t /**\n\t * A timeout in milliseconds to abort a request. If set to 0 (default) a\n\t * timeout is not created.\n\t */\n\t timeout: 0,\n\t\n\t xsrfCookieName: 'XSRF-TOKEN',\n\t xsrfHeaderName: 'X-XSRF-TOKEN',\n\t\n\t maxContentLength: -1,\n\t maxBodyLength: -1,\n\t\n\t validateStatus: function validateStatus(status) {\n\t return status >= 200 && status < 300;\n\t }\n\t};\n\t\n\tdefaults.headers = {\n\t common: {\n\t 'Accept': 'application/json, text/plain, */*'\n\t }\n\t};\n\t\n\tutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n\t defaults.headers[method] = {};\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n\t utils.forEach(headers, function processHeader(value, name) {\n\t if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n\t headers[normalizedName] = value;\n\t delete headers[name];\n\t }\n\t });\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar settle = __webpack_require__(13);\n\tvar cookies = __webpack_require__(16);\n\tvar buildURL = __webpack_require__(5);\n\tvar buildFullPath = __webpack_require__(17);\n\tvar parseHeaders = __webpack_require__(20);\n\tvar isURLSameOrigin = __webpack_require__(21);\n\tvar createError = __webpack_require__(14);\n\t\n\tmodule.exports = function xhrAdapter(config) {\n\t return new Promise(function dispatchXhrRequest(resolve, reject) {\n\t var requestData = config.data;\n\t var requestHeaders = config.headers;\n\t\n\t if (utils.isFormData(requestData)) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t if (\n\t (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n\t requestData.type\n\t ) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t var request = new XMLHttpRequest();\n\t\n\t // HTTP basic authentication\n\t if (config.auth) {\n\t var username = config.auth.username || '';\n\t var password = unescape(encodeURIComponent(config.auth.password)) || '';\n\t requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n\t }\n\t\n\t var fullPath = buildFullPath(config.baseURL, config.url);\n\t request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\t\n\t // Set the request timeout in MS\n\t request.timeout = config.timeout;\n\t\n\t // Listen for ready state\n\t request.onreadystatechange = function handleLoad() {\n\t if (!request || request.readyState !== 4) {\n\t return;\n\t }\n\t\n\t // The request errored out and we didn't get a response, this will be\n\t // handled by onerror instead\n\t // With one exception: request that using file: protocol, most browsers\n\t // will return status as 0 even though it's a successful request\n\t if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n\t return;\n\t }\n\t\n\t // Prepare the response\n\t var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n\t var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n\t var response = {\n\t data: responseData,\n\t status: request.status,\n\t statusText: request.statusText,\n\t headers: responseHeaders,\n\t config: config,\n\t request: request\n\t };\n\t\n\t settle(resolve, reject, response);\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle browser request cancellation (as opposed to a manual cancellation)\n\t request.onabort = function handleAbort() {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle low level network errors\n\t request.onerror = function handleError() {\n\t // Real errors are hidden from us by the browser\n\t // onerror should only fire if it's a network error\n\t reject(createError('Network Error', config, null, request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle timeout\n\t request.ontimeout = function handleTimeout() {\n\t var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\t if (config.timeoutErrorMessage) {\n\t timeoutErrorMessage = config.timeoutErrorMessage;\n\t }\n\t reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n\t request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Add xsrf header\n\t // This is only done if running in a standard browser environment.\n\t // Specifically not if we're in a web worker, or react-native.\n\t if (utils.isStandardBrowserEnv()) {\n\t // Add xsrf header\n\t var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n\t cookies.read(config.xsrfCookieName) :\n\t undefined;\n\t\n\t if (xsrfValue) {\n\t requestHeaders[config.xsrfHeaderName] = xsrfValue;\n\t }\n\t }\n\t\n\t // Add headers to the request\n\t if ('setRequestHeader' in request) {\n\t utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n\t if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n\t // Remove Content-Type if data is undefined\n\t delete requestHeaders[key];\n\t } else {\n\t // Otherwise add header to the request\n\t request.setRequestHeader(key, val);\n\t }\n\t });\n\t }\n\t\n\t // Add withCredentials to request if needed\n\t if (!utils.isUndefined(config.withCredentials)) {\n\t request.withCredentials = !!config.withCredentials;\n\t }\n\t\n\t // Add responseType to request if needed\n\t if (config.responseType) {\n\t try {\n\t request.responseType = config.responseType;\n\t } catch (e) {\n\t // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n\t // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n\t if (config.responseType !== 'json') {\n\t throw e;\n\t }\n\t }\n\t }\n\t\n\t // Handle progress if needed\n\t if (typeof config.onDownloadProgress === 'function') {\n\t request.addEventListener('progress', config.onDownloadProgress);\n\t }\n\t\n\t // Not all browsers support upload events\n\t if (typeof config.onUploadProgress === 'function' && request.upload) {\n\t request.upload.addEventListener('progress', config.onUploadProgress);\n\t }\n\t\n\t if (config.cancelToken) {\n\t // Handle cancellation\n\t config.cancelToken.promise.then(function onCanceled(cancel) {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t request.abort();\n\t reject(cancel);\n\t // Clean up request\n\t request = null;\n\t });\n\t }\n\t\n\t if (!requestData) {\n\t requestData = null;\n\t }\n\t\n\t // Send the request\n\t request.send(requestData);\n\t });\n\t};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar createError = __webpack_require__(14);\n\t\n\t/**\n\t * Resolve or reject a Promise based on response status.\n\t *\n\t * @param {Function} resolve A function that resolves the promise.\n\t * @param {Function} reject A function that rejects the promise.\n\t * @param {object} response The response.\n\t */\n\tmodule.exports = function settle(resolve, reject, response) {\n\t var validateStatus = response.config.validateStatus;\n\t if (!response.status || !validateStatus || validateStatus(response.status)) {\n\t resolve(response);\n\t } else {\n\t reject(createError(\n\t 'Request failed with status code ' + response.status,\n\t response.config,\n\t null,\n\t response.request,\n\t response\n\t ));\n\t }\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar enhanceError = __webpack_require__(15);\n\t\n\t/**\n\t * Create an Error with the specified message, config, error code, request and response.\n\t *\n\t * @param {string} message The error message.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The created error.\n\t */\n\tmodule.exports = function createError(message, config, code, request, response) {\n\t var error = new Error(message);\n\t return enhanceError(error, config, code, request, response);\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Update an Error with the specified config, error code, and response.\n\t *\n\t * @param {Error} error The error to update.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The error.\n\t */\n\tmodule.exports = function enhanceError(error, config, code, request, response) {\n\t error.config = config;\n\t if (code) {\n\t error.code = code;\n\t }\n\t\n\t error.request = request;\n\t error.response = response;\n\t error.isAxiosError = true;\n\t\n\t error.toJSON = function toJSON() {\n\t return {\n\t // Standard\n\t message: this.message,\n\t name: this.name,\n\t // Microsoft\n\t description: this.description,\n\t number: this.number,\n\t // Mozilla\n\t fileName: this.fileName,\n\t lineNumber: this.lineNumber,\n\t columnNumber: this.columnNumber,\n\t stack: this.stack,\n\t // Axios\n\t config: this.config,\n\t code: this.code\n\t };\n\t };\n\t return error;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs support document.cookie\n\t (function standardBrowserEnv() {\n\t return {\n\t write: function write(name, value, expires, path, domain, secure) {\n\t var cookie = [];\n\t cookie.push(name + '=' + encodeURIComponent(value));\n\t\n\t if (utils.isNumber(expires)) {\n\t cookie.push('expires=' + new Date(expires).toGMTString());\n\t }\n\t\n\t if (utils.isString(path)) {\n\t cookie.push('path=' + path);\n\t }\n\t\n\t if (utils.isString(domain)) {\n\t cookie.push('domain=' + domain);\n\t }\n\t\n\t if (secure === true) {\n\t cookie.push('secure');\n\t }\n\t\n\t document.cookie = cookie.join('; ');\n\t },\n\t\n\t read: function read(name) {\n\t var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n\t return (match ? decodeURIComponent(match[3]) : null);\n\t },\n\t\n\t remove: function remove(name) {\n\t this.write(name, '', Date.now() - 86400000);\n\t }\n\t };\n\t })() :\n\t\n\t // Non standard browser env (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return {\n\t write: function write() {},\n\t read: function read() { return null; },\n\t remove: function remove() {}\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar isAbsoluteURL = __webpack_require__(18);\n\tvar combineURLs = __webpack_require__(19);\n\t\n\t/**\n\t * Creates a new URL by combining the baseURL with the requestedURL,\n\t * only when the requestedURL is not already an absolute URL.\n\t * If the requestURL is absolute, this function returns the requestedURL untouched.\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} requestedURL Absolute or relative URL to combine\n\t * @returns {string} The combined full path\n\t */\n\tmodule.exports = function buildFullPath(baseURL, requestedURL) {\n\t if (baseURL && !isAbsoluteURL(requestedURL)) {\n\t return combineURLs(baseURL, requestedURL);\n\t }\n\t return requestedURL;\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the specified URL is absolute\n\t *\n\t * @param {string} url The URL to test\n\t * @returns {boolean} True if the specified URL is absolute, otherwise false\n\t */\n\tmodule.exports = function isAbsoluteURL(url) {\n\t // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n\t // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n\t // by any combination of letters, digits, plus, period, or hyphen.\n\t return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n\t};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Creates a new URL by combining the specified URLs\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} relativeURL The relative URL\n\t * @returns {string} The combined URL\n\t */\n\tmodule.exports = function combineURLs(baseURL, relativeURL) {\n\t return relativeURL\n\t ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n\t : baseURL;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t// Headers whose duplicates are ignored by node\n\t// c.f. https://nodejs.org/api/http.html#http_message_headers\n\tvar ignoreDuplicateOf = [\n\t 'age', 'authorization', 'content-length', 'content-type', 'etag',\n\t 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n\t 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n\t 'referer', 'retry-after', 'user-agent'\n\t];\n\t\n\t/**\n\t * Parse headers into an object\n\t *\n\t * ```\n\t * Date: Wed, 27 Aug 2014 08:58:49 GMT\n\t * Content-Type: application/json\n\t * Connection: keep-alive\n\t * Transfer-Encoding: chunked\n\t * ```\n\t *\n\t * @param {String} headers Headers needing to be parsed\n\t * @returns {Object} Headers parsed into an object\n\t */\n\tmodule.exports = function parseHeaders(headers) {\n\t var parsed = {};\n\t var key;\n\t var val;\n\t var i;\n\t\n\t if (!headers) { return parsed; }\n\t\n\t utils.forEach(headers.split('\\n'), function parser(line) {\n\t i = line.indexOf(':');\n\t key = utils.trim(line.substr(0, i)).toLowerCase();\n\t val = utils.trim(line.substr(i + 1));\n\t\n\t if (key) {\n\t if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n\t return;\n\t }\n\t if (key === 'set-cookie') {\n\t parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n\t } else {\n\t parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t }\n\t }\n\t });\n\t\n\t return parsed;\n\t};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs have full support of the APIs needed to test\n\t // whether the request URL is of the same origin as current location.\n\t (function standardBrowserEnv() {\n\t var msie = /(msie|trident)/i.test(navigator.userAgent);\n\t var urlParsingNode = document.createElement('a');\n\t var originURL;\n\t\n\t /**\n\t * Parse a URL to discover it's components\n\t *\n\t * @param {String} url The URL to be parsed\n\t * @returns {Object}\n\t */\n\t function resolveURL(url) {\n\t var href = url;\n\t\n\t if (msie) {\n\t // IE needs attribute set twice to normalize properties\n\t urlParsingNode.setAttribute('href', href);\n\t href = urlParsingNode.href;\n\t }\n\t\n\t urlParsingNode.setAttribute('href', href);\n\t\n\t // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\t return {\n\t href: urlParsingNode.href,\n\t protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n\t host: urlParsingNode.host,\n\t search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n\t hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n\t hostname: urlParsingNode.hostname,\n\t port: urlParsingNode.port,\n\t pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n\t urlParsingNode.pathname :\n\t '/' + urlParsingNode.pathname\n\t };\n\t }\n\t\n\t originURL = resolveURL(window.location.href);\n\t\n\t /**\n\t * Determine if a URL shares the same origin as the current location\n\t *\n\t * @param {String} requestURL The URL to test\n\t * @returns {boolean} True if URL shares the same origin, otherwise false\n\t */\n\t return function isURLSameOrigin(requestURL) {\n\t var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n\t return (parsed.protocol === originURL.protocol &&\n\t parsed.host === originURL.host);\n\t };\n\t })() :\n\t\n\t // Non standard browser envs (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return function isURLSameOrigin() {\n\t return true;\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Config-specific merge-function which creates a new config-object\n\t * by merging two configuration objects together.\n\t *\n\t * @param {Object} config1\n\t * @param {Object} config2\n\t * @returns {Object} New object resulting from merging config2 to config1\n\t */\n\tmodule.exports = function mergeConfig(config1, config2) {\n\t // eslint-disable-next-line no-param-reassign\n\t config2 = config2 || {};\n\t var config = {};\n\t\n\t var valueFromConfig2Keys = ['url', 'method', 'data'];\n\t var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n\t var defaultToConfig2Keys = [\n\t 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n\t 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n\t 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n\t 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n\t 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n\t ];\n\t var directMergeKeys = ['validateStatus'];\n\t\n\t function getMergedValue(target, source) {\n\t if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n\t return utils.merge(target, source);\n\t } else if (utils.isPlainObject(source)) {\n\t return utils.merge({}, source);\n\t } else if (utils.isArray(source)) {\n\t return source.slice();\n\t }\n\t return source;\n\t }\n\t\n\t function mergeDeepProperties(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t }\n\t\n\t utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\t\n\t utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(directMergeKeys, function merge(prop) {\n\t if (prop in config2) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (prop in config1) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t var axiosKeys = valueFromConfig2Keys\n\t .concat(mergeDeepPropertiesKeys)\n\t .concat(defaultToConfig2Keys)\n\t .concat(directMergeKeys);\n\t\n\t var otherKeys = Object\n\t .keys(config1)\n\t .concat(Object.keys(config2))\n\t .filter(function filterAxiosKeys(key) {\n\t return axiosKeys.indexOf(key) === -1;\n\t });\n\t\n\t utils.forEach(otherKeys, mergeDeepProperties);\n\t\n\t return config;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * A `Cancel` is an object that is thrown when an operation is canceled.\n\t *\n\t * @class\n\t * @param {string=} message The message.\n\t */\n\tfunction Cancel(message) {\n\t this.message = message;\n\t}\n\t\n\tCancel.prototype.toString = function toString() {\n\t return 'Cancel' + (this.message ? ': ' + this.message : '');\n\t};\n\t\n\tCancel.prototype.__CANCEL__ = true;\n\t\n\tmodule.exports = Cancel;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Cancel = __webpack_require__(23);\n\t\n\t/**\n\t * A `CancelToken` is an object that can be used to request cancellation of an operation.\n\t *\n\t * @class\n\t * @param {Function} executor The executor function.\n\t */\n\tfunction CancelToken(executor) {\n\t if (typeof executor !== 'function') {\n\t throw new TypeError('executor must be a function.');\n\t }\n\t\n\t var resolvePromise;\n\t this.promise = new Promise(function promiseExecutor(resolve) {\n\t resolvePromise = resolve;\n\t });\n\t\n\t var token = this;\n\t executor(function cancel(message) {\n\t if (token.reason) {\n\t // Cancellation has already been requested\n\t return;\n\t }\n\t\n\t token.reason = new Cancel(message);\n\t resolvePromise(token.reason);\n\t });\n\t}\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n\t if (this.reason) {\n\t throw this.reason;\n\t }\n\t};\n\t\n\t/**\n\t * Returns an object that contains a new `CancelToken` and a function that, when called,\n\t * cancels the `CancelToken`.\n\t */\n\tCancelToken.source = function source() {\n\t var cancel;\n\t var token = new CancelToken(function executor(c) {\n\t cancel = c;\n\t });\n\t return {\n\t token: token,\n\t cancel: cancel\n\t };\n\t};\n\t\n\tmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Syntactic sugar for invoking a function and expanding an array for arguments.\n\t *\n\t * Common use case would be to use `Function.prototype.apply`.\n\t *\n\t * ```js\n\t * function f(x, y, z) {}\n\t * var args = [1, 2, 3];\n\t * f.apply(null, args);\n\t * ```\n\t *\n\t * With `spread` this example can be re-written.\n\t *\n\t * ```js\n\t * spread(function(x, y, z) {})([1, 2, 3]);\n\t * ```\n\t *\n\t * @param {Function} callback\n\t * @returns {Function}\n\t */\n\tmodule.exports = function spread(callback) {\n\t return function wrap(arr) {\n\t return callback.apply(null, arr);\n\t };\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// axios.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 774a0a9053bba812be49","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = unescape(encodeURIComponent(config.auth.password)) || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.d.ts b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.d.ts new file mode 100644 index 000000000..74b2acd2c --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.d.ts @@ -0,0 +1,160 @@ +export interface AxiosTransformer { + (data: any, headers?: any): any; +} + +export interface AxiosAdapter { + (config: AxiosRequestConfig): AxiosPromise; +} + +export interface AxiosBasicCredentials { + username: string; + password: string; +} + +export interface AxiosProxyConfig { + host: string; + port: number; + auth?: { + username: string; + password:string; + }; + protocol?: string; +} + +export type Method = + | 'get' | 'GET' + | 'delete' | 'DELETE' + | 'head' | 'HEAD' + | 'options' | 'OPTIONS' + | 'post' | 'POST' + | 'put' | 'PUT' + | 'patch' | 'PATCH' + | 'purge' | 'PURGE' + | 'link' | 'LINK' + | 'unlink' | 'UNLINK' + +export type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream' + +export interface AxiosRequestConfig { + url?: string; + method?: Method; + baseURL?: string; + transformRequest?: AxiosTransformer | AxiosTransformer[]; + transformResponse?: AxiosTransformer | AxiosTransformer[]; + headers?: any; + params?: any; + paramsSerializer?: (params: any) => string; + data?: any; + timeout?: number; + timeoutErrorMessage?: string; + withCredentials?: boolean; + adapter?: AxiosAdapter; + auth?: AxiosBasicCredentials; + responseType?: ResponseType; + xsrfCookieName?: string; + xsrfHeaderName?: string; + onUploadProgress?: (progressEvent: ProgressEvent) => void; + onDownloadProgress?: (progressEvent: ProgressEvent) => void; + maxContentLength?: number; + validateStatus?: ((status: number) => boolean | null); + maxBodyLength?: number; + maxRedirects?: number; + socketPath?: string | null; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; + decompress?: boolean; +} + +export interface AxiosResponse { + data: T; + status: number; + statusText: string; + headers: any; + config: AxiosRequestConfig; + request?: any; +} + +export interface AxiosError extends Error { + config: AxiosRequestConfig; + code?: string; + request?: any; + response?: AxiosResponse; + isAxiosError: boolean; + toJSON: () => object; +} + +export interface AxiosPromise extends Promise> { +} + +export interface CancelStatic { + new (message?: string): Cancel; +} + +export interface Cancel { + message: string; +} + +export interface Canceler { + (message?: string): void; +} + +export interface CancelTokenStatic { + new (executor: (cancel: Canceler) => void): CancelToken; + source(): CancelTokenSource; +} + +export interface CancelToken { + promise: Promise; + reason?: Cancel; + throwIfRequested(): void; +} + +export interface CancelTokenSource { + token: CancelToken; + cancel: Canceler; +} + +export interface AxiosInterceptorManager { + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any): number; + eject(id: number): void; +} + +export interface AxiosInstance { + (config: AxiosRequestConfig): AxiosPromise; + (url: string, config?: AxiosRequestConfig): AxiosPromise; + defaults: AxiosRequestConfig; + interceptors: { + request: AxiosInterceptorManager; + response: AxiosInterceptorManager; + }; + getUri(config?: AxiosRequestConfig): string; + request> (config: AxiosRequestConfig): Promise; + get>(url: string, config?: AxiosRequestConfig): Promise; + delete>(url: string, config?: AxiosRequestConfig): Promise; + head>(url: string, config?: AxiosRequestConfig): Promise; + options>(url: string, config?: AxiosRequestConfig): Promise; + post>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + put>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + patch>(url: string, data?: any, config?: AxiosRequestConfig): Promise; +} + +export interface AxiosStatic extends AxiosInstance { + create(config?: AxiosRequestConfig): AxiosInstance; + Cancel: CancelStatic; + CancelToken: CancelTokenStatic; + isCancel(value: any): boolean; + all(values: (T | Promise)[]): Promise; + spread(callback: (...args: T[]) => R): (array: T[]) => R; +} + +declare const Axios: AxiosStatic; + +export default Axios; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.js new file mode 100644 index 000000000..79dfd09dd --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/axios'); \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/README.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/README.md new file mode 100644 index 000000000..68f111895 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/README.md @@ -0,0 +1,37 @@ +# axios // adapters + +The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. + +## Example + +```js +var settle = require('./../core/settle'); + +module.exports = function myAdapter(config) { + // At this point: + // - config has been merged with defaults + // - request transformers have already run + // - request interceptors have already run + + // Make the request using config provided + // Upon response settle the Promise + + return new Promise(function(resolve, reject) { + + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // From here: + // - response transformers will run + // - response interceptors will run + }); +} +``` diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/http.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/http.js new file mode 100644 index 000000000..135c93a35 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,287 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var buildFullPath = require('../core/buildFullPath'); +var buildURL = require('./../helpers/buildURL'); +var http = require('http'); +var https = require('https'); +var httpFollow = require('follow-redirects').http; +var httpsFollow = require('follow-redirects').https; +var url = require('url'); +var zlib = require('zlib'); +var pkg = require('./../../package.json'); +var createError = require('../core/createError'); +var enhanceError = require('../core/enhanceError'); + +var isHttps = /https:?/; + +/*eslint consistent-return:0*/ +module.exports = function httpAdapter(config) { + return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) { + var resolve = function resolve(value) { + resolvePromise(value); + }; + var reject = function reject(value) { + rejectPromise(value); + }; + var data = config.data; + var headers = config.headers; + + // Set User-Agent (required by some servers) + // Only set header if it hasn't been set in config + // See https://github.com/axios/axios/issues/69 + if (!headers['User-Agent'] && !headers['user-agent']) { + headers['User-Agent'] = 'axios/' + pkg.version; + } + + if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(createError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + config + )); + } + + // Add Content-Length header if data exists + headers['Content-Length'] = data.length; + } + + // HTTP basic authentication + var auth = undefined; + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + auth = username + ':' + password; + } + + // Parse url + var fullPath = buildFullPath(config.baseURL, config.url); + var parsed = url.parse(fullPath); + var protocol = parsed.protocol || 'http:'; + + if (!auth && parsed.auth) { + var urlAuth = parsed.auth.split(':'); + var urlUsername = urlAuth[0] || ''; + var urlPassword = urlAuth[1] || ''; + auth = urlUsername + ':' + urlPassword; + } + + if (auth) { + delete headers.Authorization; + } + + var isHttpsRequest = isHttps.test(protocol); + var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + + var options = { + path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''), + method: config.method.toUpperCase(), + headers: headers, + agent: agent, + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth: auth + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + } + + var proxy = config.proxy; + if (!proxy && proxy !== false) { + var proxyEnv = protocol.slice(0, -1) + '_proxy'; + var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; + if (proxyUrl) { + var parsedProxyUrl = url.parse(proxyUrl); + var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY; + var shouldProxy = true; + + if (noProxyEnv) { + var noProxy = noProxyEnv.split(',').map(function trim(s) { + return s.trim(); + }); + + shouldProxy = !noProxy.some(function proxyMatch(proxyElement) { + if (!proxyElement) { + return false; + } + if (proxyElement === '*') { + return true; + } + if (proxyElement[0] === '.' && + parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) { + return true; + } + + return parsed.hostname === proxyElement; + }); + } + + + if (shouldProxy) { + proxy = { + host: parsedProxyUrl.hostname, + port: parsedProxyUrl.port + }; + + if (parsedProxyUrl.auth) { + var proxyUrlAuth = parsedProxyUrl.auth.split(':'); + proxy.auth = { + username: proxyUrlAuth[0], + password: proxyUrlAuth[1] + }; + } + } + } + } + + if (proxy) { + options.hostname = proxy.host; + options.host = proxy.host; + options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : ''); + options.port = proxy.port; + options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path; + + // Basic proxy authorization + if (proxy.auth) { + var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + } + + var transport; + var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true); + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsProxy ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + transport = isHttpsProxy ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } + + // Create the request + var req = transport.request(options, function handleResponse(res) { + if (req.aborted) return; + + // uncompress the response body transparently if required + var stream = res; + + // return the last request in case of redirects + var lastRequest = res.req || req; + + + // if no content, is HEAD request or decompress disabled we should not decompress + if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) { + switch (res.headers['content-encoding']) { + /*eslint default-case:0*/ + case 'gzip': + case 'compress': + case 'deflate': + // add the unzipper to the body stream processing pipeline + stream = stream.pipe(zlib.createUnzip()); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + } + } + + var response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: res.headers, + config: config, + request: lastRequest + }; + + if (config.responseType === 'stream') { + response.data = stream; + settle(resolve, reject, response); + } else { + var responseBuffer = []; + stream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) { + stream.destroy(); + reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + config, null, lastRequest)); + } + }); + + stream.on('error', function handleStreamError(err) { + if (req.aborted) return; + reject(enhanceError(err, config, null, lastRequest)); + }); + + stream.on('end', function handleStreamEnd() { + var responseData = Buffer.concat(responseBuffer); + if (config.responseType !== 'arraybuffer') { + responseData = responseData.toString(config.responseEncoding); + if (!config.responseEncoding || config.responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + + response.data = responseData; + settle(resolve, reject, response); + }); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return; + reject(enhanceError(err, config, null, req)); + }); + + // Handle request timeout + if (config.timeout) { + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devoring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(config.timeout, function handleRequestTimeout() { + req.abort(); + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req)); + }); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (req.aborted) return; + + req.abort(); + reject(cancel); + }); + } + + // Send the request + if (utils.isStream(data)) { + data.on('error', function handleStreamError(err) { + reject(enhanceError(err, config, null, req)); + }).pipe(req); + } else { + req.end(data); + } + }); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/xhr.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 000000000..f83f1444b --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,186 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var cookies = require('./../helpers/cookies'); +var buildURL = require('./../helpers/buildURL'); +var buildFullPath = require('../core/buildFullPath'); +var parseHeaders = require('./../helpers/parseHeaders'); +var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var createError = require('../core/createError'); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + if ( + (utils.isBlob(requestData) || utils.isFile(requestData)) && + requestData.type + ) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = unescape(encodeURIComponent(config.auth.password)) || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/axios.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/axios.js new file mode 100644 index 000000000..814243798 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/axios.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./utils'); +var bind = require('./helpers/bind'); +var Axios = require('./core/Axios'); +var mergeConfig = require('./core/mergeConfig'); +var defaults = require('./defaults'); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = require('./cancel/Cancel'); +axios.CancelToken = require('./cancel/CancelToken'); +axios.isCancel = require('./cancel/isCancel'); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = require('./helpers/spread'); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/Cancel.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/Cancel.js new file mode 100644 index 000000000..e0de4003f --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/Cancel.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function Cancel(message) { + this.message = message; +} + +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/CancelToken.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/CancelToken.js new file mode 100644 index 000000000..6b46e6662 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,57 @@ +'use strict'; + +var Cancel = require('./Cancel'); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/isCancel.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 000000000..051f3ae4c --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/Axios.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/Axios.js new file mode 100644 index 000000000..1f65a81ec --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,94 @@ +'use strict'; + +var utils = require('./../utils'); +var buildURL = require('../helpers/buildURL'); +var InterceptorManager = require('./InterceptorManager'); +var dispatchRequest = require('./dispatchRequest'); +var mergeConfig = require('./mergeConfig'); + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/InterceptorManager.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 000000000..50d667bb4 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,52 @@ +'use strict'; + +var utils = require('./../utils'); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/README.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/README.md new file mode 100644 index 000000000..253bc4861 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/README.md @@ -0,0 +1,7 @@ +# axios // core + +The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: + +- Dispatching requests +- Managing interceptors +- Handling config diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/buildFullPath.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/buildFullPath.js new file mode 100644 index 000000000..00b2b050a --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,20 @@ +'use strict'; + +var isAbsoluteURL = require('../helpers/isAbsoluteURL'); +var combineURLs = require('../helpers/combineURLs'); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/createError.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/createError.js new file mode 100644 index 000000000..933680f69 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/createError.js @@ -0,0 +1,18 @@ +'use strict'; + +var enhanceError = require('./enhanceError'); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/dispatchRequest.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 000000000..c8267adb2 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,79 @@ +'use strict'; + +var utils = require('./../utils'); +var transformData = require('./transformData'); +var isCancel = require('../cancel/isCancel'); +var defaults = require('../defaults'); + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/enhanceError.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/enhanceError.js new file mode 100644 index 000000000..b6bc4444e --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/enhanceError.js @@ -0,0 +1,42 @@ +'use strict'; + +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/mergeConfig.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/mergeConfig.js new file mode 100644 index 000000000..5a2c10cb0 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,87 @@ +'use strict'; + +var utils = require('../utils'); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/settle.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/settle.js new file mode 100644 index 000000000..886adb0c1 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/settle.js @@ -0,0 +1,25 @@ +'use strict'; + +var createError = require('./createError'); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/transformData.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/transformData.js new file mode 100644 index 000000000..e0653620e --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,20 @@ +'use strict'; + +var utils = require('./../utils'); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/defaults.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/defaults.js new file mode 100644 index 000000000..2b2a1a7d5 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/defaults.js @@ -0,0 +1,98 @@ +'use strict'; + +var utils = require('./utils'); +var normalizeHeaderName = require('./helpers/normalizeHeaderName'); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = require('./adapters/xhr'); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = require('./adapters/http'); + } + return adapter; +} + +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; + +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/README.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/README.md new file mode 100644 index 000000000..4ae34193a --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/README.md @@ -0,0 +1,7 @@ +# axios // helpers + +The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: + +- Browser polyfills +- Managing cookies +- Parsing HTTP headers diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/bind.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/bind.js new file mode 100644 index 000000000..6147c608e --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/buildURL.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/buildURL.js new file mode 100644 index 000000000..31595c33a --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,70 @@ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/combineURLs.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 000000000..f1b58a586 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/cookies.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 000000000..5a8a66661 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/deprecatedMethod.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/deprecatedMethod.js new file mode 100644 index 000000000..ed40965ba --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/deprecatedMethod.js @@ -0,0 +1,24 @@ +'use strict'; + +/*eslint no-console:0*/ + +/** + * Supply a warning to the developer that a method they are using + * has been deprecated. + * + * @param {string} method The name of the deprecated method + * @param {string} [instead] The alternate method to use if applicable + * @param {string} [docs] The documentation URL to get further details + */ +module.exports = function deprecatedMethod(method, instead, docs) { + try { + console.warn( + 'DEPRECATED method `' + method + '`.' + + (instead ? ' Use `' + instead + '` instead.' : '') + + ' This method will be removed in a future release.'); + + if (docs) { + console.warn('For more information about usage see ' + docs); + } + } catch (e) { /* Ignore */ } +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isAbsoluteURL.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isAbsoluteURL.js new file mode 100644 index 000000000..d33e99275 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isURLSameOrigin.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isURLSameOrigin.js new file mode 100644 index 000000000..f1d89ad19 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,68 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/normalizeHeaderName.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/normalizeHeaderName.js new file mode 100644 index 000000000..738c9fe40 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/normalizeHeaderName.js @@ -0,0 +1,12 @@ +'use strict'; + +var utils = require('../utils'); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/parseHeaders.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/parseHeaders.js new file mode 100644 index 000000000..8af2cc7f1 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/spread.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/spread.js new file mode 100644 index 000000000..25e3cdd39 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,27 @@ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/utils.js b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/utils.js new file mode 100644 index 000000000..83eb1c628 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/lib/utils.js @@ -0,0 +1,351 @@ +'use strict'; + +var bind = require('./helpers/bind'); + +/*global toString:true*/ + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} + +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); +} + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} + +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; +} + +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM +}; diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/package.json b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/package.json new file mode 100644 index 000000000..ef36ab36a --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/axios/package.json @@ -0,0 +1,114 @@ +{ + "_from": "axios", + "_id": "axios@0.20.0", + "_inBundle": false, + "_integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==", + "_location": "/axios", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "axios", + "name": "axios", + "escapedName": "axios", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz", + "_shasum": "057ba30f04884694993a8cd07fa394cff11c50bd", + "_spec": "axios", + "_where": "C:\\Users\\mondi\\dev\\workspace-casestudy\\REACT-SPRINGBOOT_CRUD", + "author": { + "name": "Matt Zabriskie" + }, + "browser": { + "./lib/adapters/http.js": "./lib/adapters/xhr.js" + }, + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "bundleDependencies": false, + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ], + "dependencies": { + "follow-redirects": "^1.10.0" + }, + "deprecated": false, + "description": "Promise based HTTP client for the browser and node.js", + "devDependencies": { + "bundlesize": "^0.17.0", + "coveralls": "^3.0.0", + "es6-promise": "^4.2.4", + "grunt": "^1.0.2", + "grunt-banner": "^0.6.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-clean": "^1.1.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-eslint": "^20.1.0", + "grunt-karma": "^2.0.0", + "grunt-mocha-test": "^0.13.3", + "grunt-ts": "^6.0.0-beta.19", + "grunt-webpack": "^1.0.18", + "istanbul-instrumenter-loader": "^1.0.0", + "jasmine-core": "^2.4.1", + "karma": "^1.3.0", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.1", + "karma-firefox-launcher": "^1.1.0", + "karma-jasmine": "^1.1.1", + "karma-jasmine-ajax": "^0.1.13", + "karma-opera-launcher": "^1.0.0", + "karma-safari-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.2.0", + "karma-sinon": "^1.0.5", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^1.7.0", + "load-grunt-tasks": "^3.5.2", + "minimist": "^1.2.0", + "mocha": "^5.2.0", + "sinon": "^4.5.0", + "typescript": "^2.8.1", + "url-search-params": "^0.10.0", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.14.1" + }, + "homepage": "https://github.com/axios/axios", + "jsdelivr": "dist/axios.min.js", + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "license": "MIT", + "main": "index.js", + "name": "axios", + "repository": { + "type": "git", + "url": "git+https://github.com/axios/axios.git" + }, + "scripts": { + "build": "NODE_ENV=production grunt build", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "examples": "node ./examples/server.js", + "fix": "eslint --fix lib/**/*.js", + "postversion": "git push && git push --tags", + "preversion": "npm test", + "start": "node ./sandbox/server.js", + "test": "grunt test && bundlesize", + "version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json" + }, + "typings": "./index.d.ts", + "unpkg": "dist/axios.min.js", + "version": "0.20.0" +} diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/LICENSE b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/LICENSE new file mode 100644 index 000000000..173a9ebbb --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2011-2020 Twitter, Inc. +Copyright (c) 2011-2020 The Bootstrap Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/README.md b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/README.md new file mode 100644 index 000000000..349796311 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/README.md @@ -0,0 +1,209 @@ +

      + +

      Bootstrap

      + +

      + Sleek, intuitive, and powerful front-end framework for faster and easier web development. +
      + Explore Bootstrap docs » +
      +
      + Report bug + · + Request feature + · + Themes + · + Blog +

      + + +## Table of contents + +- [Quick start](#quick-start) +- [Status](#status) +- [What's included](#whats-included) +- [Bugs and feature requests](#bugs-and-feature-requests) +- [Documentation](#documentation) +- [Contributing](#contributing) +- [Community](#community) +- [Versioning](#versioning) +- [Creators](#creators) +- [Thanks](#thanks) +- [Copyright and license](#copyright-and-license) + + +## Quick start + +Several quick start options are available: + +- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.5.2.zip) +- Clone the repo: `git clone https://github.com/twbs/bootstrap.git` +- Install with [npm](https://www.npmjs.com/): `npm install bootstrap` +- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.5.2` +- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.5.2` +- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` + +Read the [Getting started page](https://getbootstrap.com/docs/4.5/getting-started/introduction/) for information on the framework contents, templates and examples, and more. + + +## Status + +[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com/) +[![Build Status](https://github.com/twbs/bootstrap/workflows/JS%20Tests/badge.svg?branch=v4-dev)](https://github.com/twbs/bootstrap/actions?query=workflow%3AJS+Tests+branch%3Av4-dev) +[![npm version](https://img.shields.io/npm/v/bootstrap)](https://www.npmjs.com/package/bootstrap) +[![Gem version](https://img.shields.io/gem/v/bootstrap)](https://rubygems.org/gems/bootstrap) +[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue)](https://atmospherejs.com/twbs/bootstrap) +[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap)](https://packagist.org/packages/twbs/bootstrap) +[![NuGet](https://img.shields.io/nuget/vpre/bootstrap)](https://www.nuget.org/packages/bootstrap/absoluteLatest) +[![peerDependencies Status](https://img.shields.io/david/peer/twbs/bootstrap)](https://david-dm.org/twbs/bootstrap?type=peer) +[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap)](https://david-dm.org/twbs/bootstrap?type=dev) +[![Coverage Status](https://img.shields.io/coveralls/github/twbs/bootstrap/v4-dev)](https://coveralls.io/github/twbs/bootstrap?branch=v4-dev) +[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/css/bootstrap.min.css?compression=gzip&label=CSS%20gzip%20size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/css/bootstrap.min.css) +[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/v4-dev/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/tree/v4-dev/dist/js/bootstrap.min.js) +[![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229)](https://www.browserstack.com/automate/public-build/SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229) +[![Backers on Open Collective](https://img.shields.io/opencollective/backers/bootstrap)](#backers) +[![Sponsors on Open Collective](https://img.shields.io/opencollective/sponsors/bootstrap)](#sponsors) + + +## What's included + +Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: + +```text +bootstrap/ +└── dist/ + ├── css/ + │ ├── bootstrap-grid.css + │ ├── bootstrap-grid.css.map + │ ├── bootstrap-grid.min.css + │ ├── bootstrap-grid.min.css.map + │ ├── bootstrap-reboot.css + │ ├── bootstrap-reboot.css.map + │ ├── bootstrap-reboot.min.css + │ ├── bootstrap-reboot.min.css.map + │ ├── bootstrap.css + │ ├── bootstrap.css.map + │ ├── bootstrap.min.css + │ └── bootstrap.min.css.map + └── js/ + ├── bootstrap.bundle.js + ├── bootstrap.bundle.js.map + ├── bootstrap.bundle.min.js + ├── bootstrap.bundle.min.js.map + ├── bootstrap.js + ├── bootstrap.js.map + ├── bootstrap.min.js + └── bootstrap.min.js.map +``` + +We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/), but not [jQuery](https://jquery.com/). + + +## Bugs and feature requests + +Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/v4-dev/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new). + + +## Documentation + +Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](https://jekyllrb.com/) and publicly hosted on GitHub Pages at . The docs may also be run locally. + +Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). Working on our search? Be sure to set `debug: true` in `site/docs/4.5/assets/js/src/search.js` file. + +### Running documentation locally + +1. Run through the [tooling setup](https://getbootstrap.com/docs/4.5/getting-started/build-tools/#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`. +2. Run `npm install` to install Node.js dependencies. +3. Run `npm start` to compile CSS and JavaScript files, generate our docs, and watch for changes. +4. Open `http://localhost:9001` in your browser, and voilà. + +Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/). + +### Documentation for previous releases + +You can find all our previous releases docs on . + +[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. + + +## Contributing + +Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/v4-dev/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. + +Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/v4-dev/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). + +Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/v4-dev/.editorconfig) for easy use in common text editors. Read more and download plugins at . + + +## Community + +Get updates on Bootstrap's development and chat with the project maintainers and community members. + +- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). +- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/). +- Join [the official Slack room](https://bootstrap-slack.herokuapp.com/). +- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. +- Implementation help may be found at Stack Overflow (tagged [`bootstrap-4`](https://stackoverflow.com/questions/tagged/bootstrap-4)). +- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. + + +## Versioning + +For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](https://semver.org/). Sometimes we screw up, but we adhere to those rules whenever possible. + +See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com/) contain summaries of the most noteworthy changes made in each release. + + +## Creators + +**Mark Otto** + +- +- + +**Jacob Thornton** + +- +- + + +## Thanks + + + BrowserStack Logo + + +Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers! + + +## Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bootstrap#sponsor)] + +[![](https://opencollective.com/bootstrap/sponsor/0/avatar.svg)](https://opencollective.com/bootstrap/sponsor/0/website) +[![](https://opencollective.com/bootstrap/sponsor/1/avatar.svg)](https://opencollective.com/bootstrap/sponsor/1/website) +[![](https://opencollective.com/bootstrap/sponsor/2/avatar.svg)](https://opencollective.com/bootstrap/sponsor/2/website) +[![](https://opencollective.com/bootstrap/sponsor/3/avatar.svg)](https://opencollective.com/bootstrap/sponsor/3/website) +[![](https://opencollective.com/bootstrap/sponsor/4/avatar.svg)](https://opencollective.com/bootstrap/sponsor/4/website) +[![](https://opencollective.com/bootstrap/sponsor/5/avatar.svg)](https://opencollective.com/bootstrap/sponsor/5/website) +[![](https://opencollective.com/bootstrap/sponsor/6/avatar.svg)](https://opencollective.com/bootstrap/sponsor/6/website) +[![](https://opencollective.com/bootstrap/sponsor/7/avatar.svg)](https://opencollective.com/bootstrap/sponsor/7/website) +[![](https://opencollective.com/bootstrap/sponsor/8/avatar.svg)](https://opencollective.com/bootstrap/sponsor/8/website) +[![](https://opencollective.com/bootstrap/sponsor/9/avatar.svg)](https://opencollective.com/bootstrap/sponsor/9/website) + + +## Backers + +Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bootstrap#backer)] + +[![Backers](https://opencollective.com/bootstrap/backers.svg?width=890)](https://opencollective.com/bootstrap#backers) + + +## Copyright and license + +Code and documentation copyright 2011-2020 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/). diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css new file mode 100644 index 000000000..a8c7d0746 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css @@ -0,0 +1,3872 @@ +/*! + * Bootstrap Grid v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +html { + box-sizing: border-box; + -ms-overflow-style: scrollbar; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +.container, +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + -ms-flex-order: -1; + order: -1; +} + +.order-last { + -ms-flex-order: 13; + order: 13; +} + +.order-0 { + -ms-flex-order: 0; + order: 0; +} + +.order-1 { + -ms-flex-order: 1; + order: 1; +} + +.order-2 { + -ms-flex-order: 2; + order: 2; +} + +.order-3 { + -ms-flex-order: 3; + order: 3; +} + +.order-4 { + -ms-flex-order: 4; + order: 4; +} + +.order-5 { + -ms-flex-order: 5; + order: 5; +} + +.order-6 { + -ms-flex-order: 6; + order: 6; +} + +.order-7 { + -ms-flex-order: 7; + order: 7; +} + +.order-8 { + -ms-flex-order: 8; + order: 8; +} + +.order-9 { + -ms-flex-order: 9; + order: 9; +} + +.order-10 { + -ms-flex-order: 10; + order: 10; +} + +.order-11 { + -ms-flex-order: 11; + order: 11; +} + +.order-12 { + -ms-flex-order: 12; + order: 12; +} + +.offset-1 { + margin-left: 8.333333%; +} + +.offset-2 { + margin-left: 16.666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.333333%; +} + +.offset-5 { + margin-left: 41.666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.333333%; +} + +.offset-8 { + margin-left: 66.666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.333333%; +} + +.offset-11 { + margin-left: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + -ms-flex-order: -1; + order: -1; + } + .order-sm-last { + -ms-flex-order: 13; + order: 13; + } + .order-sm-0 { + -ms-flex-order: 0; + order: 0; + } + .order-sm-1 { + -ms-flex-order: 1; + order: 1; + } + .order-sm-2 { + -ms-flex-order: 2; + order: 2; + } + .order-sm-3 { + -ms-flex-order: 3; + order: 3; + } + .order-sm-4 { + -ms-flex-order: 4; + order: 4; + } + .order-sm-5 { + -ms-flex-order: 5; + order: 5; + } + .order-sm-6 { + -ms-flex-order: 6; + order: 6; + } + .order-sm-7 { + -ms-flex-order: 7; + order: 7; + } + .order-sm-8 { + -ms-flex-order: 8; + order: 8; + } + .order-sm-9 { + -ms-flex-order: 9; + order: 9; + } + .order-sm-10 { + -ms-flex-order: 10; + order: 10; + } + .order-sm-11 { + -ms-flex-order: 11; + order: 11; + } + .order-sm-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.333333%; + } + .offset-sm-2 { + margin-left: 16.666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.333333%; + } + .offset-sm-5 { + margin-left: 41.666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.333333%; + } + .offset-sm-8 { + margin-left: 66.666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.333333%; + } + .offset-sm-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + -ms-flex-order: -1; + order: -1; + } + .order-md-last { + -ms-flex-order: 13; + order: 13; + } + .order-md-0 { + -ms-flex-order: 0; + order: 0; + } + .order-md-1 { + -ms-flex-order: 1; + order: 1; + } + .order-md-2 { + -ms-flex-order: 2; + order: 2; + } + .order-md-3 { + -ms-flex-order: 3; + order: 3; + } + .order-md-4 { + -ms-flex-order: 4; + order: 4; + } + .order-md-5 { + -ms-flex-order: 5; + order: 5; + } + .order-md-6 { + -ms-flex-order: 6; + order: 6; + } + .order-md-7 { + -ms-flex-order: 7; + order: 7; + } + .order-md-8 { + -ms-flex-order: 8; + order: 8; + } + .order-md-9 { + -ms-flex-order: 9; + order: 9; + } + .order-md-10 { + -ms-flex-order: 10; + order: 10; + } + .order-md-11 { + -ms-flex-order: 11; + order: 11; + } + .order-md-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.333333%; + } + .offset-md-2 { + margin-left: 16.666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.333333%; + } + .offset-md-5 { + margin-left: 41.666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.333333%; + } + .offset-md-8 { + margin-left: 66.666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.333333%; + } + .offset-md-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + -ms-flex-order: -1; + order: -1; + } + .order-lg-last { + -ms-flex-order: 13; + order: 13; + } + .order-lg-0 { + -ms-flex-order: 0; + order: 0; + } + .order-lg-1 { + -ms-flex-order: 1; + order: 1; + } + .order-lg-2 { + -ms-flex-order: 2; + order: 2; + } + .order-lg-3 { + -ms-flex-order: 3; + order: 3; + } + .order-lg-4 { + -ms-flex-order: 4; + order: 4; + } + .order-lg-5 { + -ms-flex-order: 5; + order: 5; + } + .order-lg-6 { + -ms-flex-order: 6; + order: 6; + } + .order-lg-7 { + -ms-flex-order: 7; + order: 7; + } + .order-lg-8 { + -ms-flex-order: 8; + order: 8; + } + .order-lg-9 { + -ms-flex-order: 9; + order: 9; + } + .order-lg-10 { + -ms-flex-order: 10; + order: 10; + } + .order-lg-11 { + -ms-flex-order: 11; + order: 11; + } + .order-lg-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.333333%; + } + .offset-lg-2 { + margin-left: 16.666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.333333%; + } + .offset-lg-5 { + margin-left: 41.666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.333333%; + } + .offset-lg-8 { + margin-left: 66.666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.333333%; + } + .offset-lg-11 { + margin-left: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + -ms-flex-order: -1; + order: -1; + } + .order-xl-last { + -ms-flex-order: 13; + order: 13; + } + .order-xl-0 { + -ms-flex-order: 0; + order: 0; + } + .order-xl-1 { + -ms-flex-order: 1; + order: 1; + } + .order-xl-2 { + -ms-flex-order: 2; + order: 2; + } + .order-xl-3 { + -ms-flex-order: 3; + order: 3; + } + .order-xl-4 { + -ms-flex-order: 4; + order: 4; + } + .order-xl-5 { + -ms-flex-order: 5; + order: 5; + } + .order-xl-6 { + -ms-flex-order: 6; + order: 6; + } + .order-xl-7 { + -ms-flex-order: 7; + order: 7; + } + .order-xl-8 { + -ms-flex-order: 8; + order: 8; + } + .order-xl-9 { + -ms-flex-order: 9; + order: 9; + } + .order-xl-10 { + -ms-flex-order: 10; + order: 10; + } + .order-xl-11 { + -ms-flex-order: 11; + order: 11; + } + .order-xl-12 { + -ms-flex-order: 12; + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.333333%; + } + .offset-xl-2 { + margin-left: 16.666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.333333%; + } + .offset-xl-5 { + margin-left: 41.666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.333333%; + } + .offset-xl-8 { + margin-left: 66.666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.333333%; + } + .offset-xl-11 { + margin-left: 91.666667%; + } +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: -ms-flexbox !important; + display: flex !important; +} + +.d-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-sm-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-md-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-lg-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-xl-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: -ms-flexbox !important; + display: flex !important; + } + .d-print-inline-flex { + display: -ms-inline-flexbox !important; + display: inline-flex !important; + } +} + +.flex-row { + -ms-flex-direction: row !important; + flex-direction: row !important; +} + +.flex-column { + -ms-flex-direction: column !important; + flex-direction: column !important; +} + +.flex-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; +} + +.flex-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; +} + +.flex-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; +} + +.justify-content-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; +} + +.justify-content-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; +} + +.justify-content-center { + -ms-flex-pack: center !important; + justify-content: center !important; +} + +.justify-content-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; +} + +.align-items-start { + -ms-flex-align: start !important; + align-items: flex-start !important; +} + +.align-items-end { + -ms-flex-align: end !important; + align-items: flex-end !important; +} + +.align-items-center { + -ms-flex-align: center !important; + align-items: center !important; +} + +.align-items-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; +} + +.align-items-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important; +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important; +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; +} + +@media (min-width: 576px) { + .flex-sm-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-sm-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-sm-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-sm-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-sm-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-sm-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-sm-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-sm-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-sm-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-sm-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-sm-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-sm-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 768px) { + .flex-md-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-md-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-md-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-md-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-md-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-md-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-md-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-md-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-md-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-md-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-md-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-md-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-md-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-lg-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-lg-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-lg-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-lg-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-lg-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-lg-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-lg-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-lg-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-lg-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-lg-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-lg-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -ms-flex-direction: row !important; + flex-direction: row !important; + } + .flex-xl-column { + -ms-flex-direction: column !important; + flex-direction: column !important; + } + .flex-xl-row-reverse { + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; + } + .justify-content-xl-start { + -ms-flex-pack: start !important; + justify-content: flex-start !important; + } + .justify-content-xl-end { + -ms-flex-pack: end !important; + justify-content: flex-end !important; + } + .justify-content-xl-center { + -ms-flex-pack: center !important; + justify-content: center !important; + } + .justify-content-xl-between { + -ms-flex-pack: justify !important; + justify-content: space-between !important; + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; + } + .align-items-xl-start { + -ms-flex-align: start !important; + align-items: flex-start !important; + } + .align-items-xl-end { + -ms-flex-align: end !important; + align-items: flex-end !important; + } + .align-items-xl-center { + -ms-flex-align: center !important; + align-items: center !important; + } + .align-items-xl-baseline { + -ms-flex-align: baseline !important; + align-items: baseline !important; + } + .align-items-xl-stretch { + -ms-flex-align: stretch !important; + align-items: stretch !important; + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important; + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; + } +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css.map new file mode 100644 index 000000000..df1bed72d --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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EKp0BM;IAAwB,iBADZ;IACY,QADZ;ELw0BlB;EKv0BM;IAAwB,iBADZ;IACY,QADZ;EL20BlB;EK10BM;IAAwB,kBADZ;IACY,SADZ;EL80BlB;EK70BM;IAAwB,kBADZ;IACY,SADZ;ELi1BlB;EKh1BM;IAAwB,kBADZ;IACY,SADZ;ELo1BlB;EK50BU;IHhBV,cAA4B;EF+1B5B;EK/0BU;IHhBV,sBAA8C;EFk2B9C;EKl1BU;IHhBV,uBAA8C;EFq2B9C;EKr1BU;IHhBV,gBAA8C;EFw2B9C;EKx1BU;IHhBV,uBAA8C;EF22B9C;EK31BU;IHhBV,uBAA8C;EF82B9C;EK91BU;IHhBV,gBAA8C;EFi3B9C;EKj2BU;IHhBV,uBAA8C;EFo3B9C;EKp2BU;IHhBV,uBAA8C;EFu3B9C;EKv2BU;IHhBV,gBAA8C;EF03B9C;EK12BU;IHhBV,uBAA8C;EF63B9C;EK72BU;IHhBV,uBAA8C;EFg4B9C;AACF;;AM76BM;EAAwB,wBAA0B;ANi7BxD;;AMj7BM;EAAwB,0BAA0B;ANq7BxD;;AMr7BM;EAAwB,gCAA0B;ANy7BxD;;AMz7BM;EAAwB,yBAA0B;AN67BxD;;AM77BM;EAAwB,yBAA0B;ANi8BxD;;AMj8BM;EAAwB,6BAA0B;ANq8BxD;;AMr8BM;EAAwB,8BAA0B;ANy8BxD;;AMz8BM;EAAwB,+BAA0B;EAA1B,wBAA0B;AN68BxD;;AM78BM;EAAwB,sCAA0B;EAA1B,+BAA0B;ANi9BxD;;AGh6BI;EGjDE;IAAwB,wBAA0B;ENs9BtD;EMt9BI;IAAwB,0BAA0B;ENy9BtD;EMz9BI;IAAwB,gCAA0B;EN49BtD;EM59BI;IAAwB,yBAA0B;EN+9BtD;EM/9BI;IAAwB,yBAA0B;ENk+BtD;EMl+BI;IAAwB,6BAA0B;ENq+BtD;EMr+BI;IAAwB,8BAA0B;ENw+BtD;EMx+BI;IAAwB,+BAA0B;IAA1B,wBAA0B;EN2+BtD;EM3+BI;IAAwB,sCAA0B;IAA1B,+BAA0B;EN8+BtD;AACF;;AG97BI;EGjDE;IAAwB,wBAA0B;ENo/BtD;EMp/BI;IAAwB,0BAA0B;ENu/BtD;EMv/BI;IAAwB,gCAA0B;EN0/BtD;EM1/BI;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hD;;AQpsDQ;EAAgC,yBAA4B;ARwsDpE;;AQvsDQ;;EAEE,6BAAoC;AR0sD9C;;AQxsDQ;;EAEE,+BAAwC;AR2sDlD;;AQzsDQ;;EAEE,gCAA0C;AR4sDpD;;AQ1sDQ;;EAEE,8BAAsC;AR6sDhD;;AQ5tDQ;EAAgC,uBAA4B;ARguDpE;;AQ/tDQ;;EAEE,2BAAoC;ARkuD9C;;AQhuDQ;;EAEE,6BAAwC;ARmuDlD;;AQjuDQ;;EAEE,8BAA0C;ARouDpD;;AQluDQ;;EAEE,4BAAsC;ARquDhD;;AQpvDQ;EAAgC,yBAA4B;ARwvDpE;;AQvvDQ;;EAEE,6BAAoC;AR0vD9C;;AQxvDQ;;EAEE,+BAAwC;AR2vDlD;;AQzvDQ;;EAEE,gCAA0C;AR4vDpD;;AQ1vDQ;;EAEE,8BAAsC;AR6vDhD;;AQ5wDQ;EAAgC,uBAA4B;ARgxDpE;;AQ/wDQ;;EAEE,2BAAoC;ARkxD9C;;AQhxDQ;;EAEE,6BAAwC;ARmxDlD;;AQjxDQ;;EAEE,8BAA0C;ARoxDpD;;AQlxDQ;;EAEE,4BAAsC;ARqxDhD;;AQpyDQ;EAAgC,qBAA4B;ARwyDpE;;AQvyDQ;;EAEE,yBAAoC;AR0yD9C;;AQxyDQ;;EAEE,2BAAwC;AR2yDlD;;AQzyDQ;;EAEE,4BAA0C;AR4yDpD;;AQ1yDQ;;EAEE,0BAAsC;AR6yDhD;;AQ5zDQ;EAAgC,2BAA4B;ARg0DpE;;AQ/zDQ;;EAEE,+BAAoC;ARk0D9C;;AQh0DQ;;EAEE,iCAAwC;ARm0DlD;;AQj0DQ;;EAEE,kCAA0C;ARo0DpD;;AQl0DQ;;EAEE,gCAAsC;ARq0DhD;;AQp1DQ;EAAgC,0BAA4B;ARw1DpE;;AQv1DQ;;EAEE,8BAAoC;AR01D9C;;AQx1DQ;;EAEE,gCAAwC;AR21DlD;;AQz1DQ;;EAEE,iCAA0C;AR41DpD;;AQ11DQ;;EAEE,+BAAsC;AR61DhD;;AQ52DQ;EAAgC,wBAA4B;ARg3DpE;;AQ/2DQ;;EAEE,4BAAoC;ARk3D9C;;AQh3DQ;;EAEE,8BAAwC;ARm3DlD;;AQj3DQ;;EAEE,+BAA0C;ARo3DpD;;AQl3DQ;;EAEE,6BAAsC;ARq3DhD;;AQp4DQ;EAAgC,0BAA4B;ARw4DpE;;AQv4DQ;;EAEE,8BAAoC;AR04D9C;;AQx4DQ;;EAEE,gCAAwC;AR24DlD;;AQz4DQ;;EAEE,iCAA0C;AR44DpD;;AQ14DQ;;EAEE,+BAAsC;AR64DhD;;AQ55DQ;EAAgC,wBAA4B;ARg6DpE;;AQ/5DQ;;EAEE,4BAAoC;ARk6D9C;;AQh6DQ;;EAEE,8BAAwC;ARm6DlD;;AQj6DQ;;EAEE,+BAA0C;ARo6DpD;;AQl6DQ;;EAEE,6BAAsC;ARq6DhD;;AQ75DQ;EAAwB,2BAA2B;ARi6D3D;;AQh6DQ;;EAEE,+BAA+B;ARm6DzC;;AQj6DQ;;EAEE,iCAAiC;ARo6D3C;;AQl6DQ;;EAEE,kCAAkC;ARq6D5C;;AQn6DQ;;EAEE,gCAAgC;ARs6D1C;;AQr7DQ;EAAwB,0BAA2B;ARy7D3D;;AQx7DQ;;EAEE,8BAA+B;AR27DzC;;AQz7DQ;;EAEE,gCAAiC;AR47D3C;;AQ17DQ;;EAEE,iCAAkC;AR67D5C;;AQ37DQ;;EAEE,+BAAgC;AR87D1C;;AQ78DQ;EAAwB,wBAA2B;ARi9D3D;;AQh9DQ;;EAEE,4BAA+B;ARm9DzC;;AQj9DQ;;EAEE,8BAAiC;ARo9D3C;;AQl9DQ;;EAEE,+BAAkC;ARq9D5C;;AQn9DQ;;EAEE,6BAAgC;ARs9D1C;;AQr+DQ;EAAwB,0BAA2B;ARy+D3D;;AQx+DQ;;EAEE,8BAA+B;AR2+DzC;;AQz+DQ;;EAEE,gCAAiC;AR4+D3C;;AQ1+DQ;;EAEE,iCAAkC;AR6+D5C;;AQ3+DQ;;EAEE,+BAAgC;AR8+D1C;;AQ7/DQ;EAAwB,wBAA2B;ARigE3D;;AQhgEQ;;EAEE,4BAA+B;ARmgEzC;;AQjgEQ;;EAEE,8BAAiC;ARogE3C;;AQlgEQ;;EAEE,+BAAkC;ARqgE5C;;AQngEQ;;EAEE,6BAAgC;ARsgE1C;;AQhgEI;EAAmB,uBAAuB;ARogE9C;;AQngEI;;EAEE,2BAA2B;ARsgEjC;;AQpgEI;;EAEE,6BAA6B;ARugEnC;;AQrgEI;;EAEE,8BAA8B;ARwgEpC;;AQtgEI;;EAEE,4BAA4B;ARygElC;;AGlhEI;EKlDI;IAAgC,oBAA4B;ERykElE;EQxkEM;;IAEE,wBAAoC;ER0kE5C;EQxkEM;;IAEE,0BAAwC;ER0kEhD;EQxkEM;;IAEE,2BAA0C;ER0kElD;EQxkEM;;IAEE,yBAAsC;ER0kE9C;EQzlEM;IAAgC,0BAA4B;ER4lElE;EQ3lEM;;IAEE,8BAAoC;ER6lE5C;EQ3lEM;;IAEE,gCAAwC;ER6lEhD;EQ3lEM;;IAEE,iCAA0C;ER6lElD;EQ3lEM;;IAEE,+BAAsC;ER6lE9C;EQ5mEM;IAAgC,yBAA4B;ER+mElE;EQ9mEM;;IAEE,6BAAoC;ERgnE5C;EQ9mEM;;IAEE,+BAAwC;ERgnEhD;EQ9mEM;;IAEE,gCAA0C;ERgnElD;EQ9mEM;;IAEE,8BAAsC;ERgnE9C;EQ/nEM;IAAgC,uBAA4B;ERkoElE;EQjoEM;;IAEE,2BAAoC;ERmoE5C;EQjoEM;;IAEE,6BAAwC;ERmoEhD;EQjoEM;;IAEE,8BAA0C;ERmoElD;EQjoEM;;IAEE,4BAAsC;ERmoE9C;EQlpEM;IAAgC,yBAA4B;ERqpElE;EQppEM;;IAEE,6BAAoC;ERspE5C;EQppEM;;IAEE,+BAAwC;ERspEhD;EQppEM;;IAEE,gCAA0C;ERspElD;EQppEM;;IAEE,8BAAsC;ERspE9C;EQrqEM;IAAgC,uBAA4B;ERwqElE;EQvqEM;;IAEE,2BAAoC;ERyqE5C;EQvqEM;;IAEE,6BAAwC;ERyqEhD;EQvqEM;;IAEE,8BAA0C;ERyqElD;EQvqEM;;IAEE,4BAAsC;ERyqE9C;EQxrEM;IAAgC,qBAA4B;ER2rElE;EQ1rEM;;IAEE,yBAAoC;ER4rE5C;EQ1rEM;;IAEE,2BAAwC;ER4rEhD;EQ1rEM;;IAEE,4BAA0C;ER4rElD;EQ1rEM;;IAEE,0BAAsC;ER4rE9C;EQ3sEM;IAAgC,2BAA4B;ER8sElE;EQ7sEM;;IAEE,+BAAoC;ER+sE5C;EQ7sEM;;IAEE,iCAAwC;ER+sEhD;EQ7sEM;;IAEE,kCAA0C;ER+sElD;EQ7sEM;;IAEE,gCAAsC;ER+sE9C;EQ9tEM;IAAgC,0BAA4B;ERiuElE;EQhuEM;;IAEE,8BAAoC;ERkuE5C;EQhuEM;;IAEE,gCAAwC;ERkuEhD;EQhuEM;;IAEE,iCAA0C;ERkuElD;EQhuEM;;IAEE,+BAAsC;ERkuE9C;EQjvEM;IAAgC,wBAA4B;ERovElE;EQnvEM;;IAEE,4BAAoC;ERqvE5C;EQnvEM;;IAEE,8BAAwC;ERqvEhD;EQnvEM;;IAEE,+BAA0C;ERqvElD;EQnvEM;;IAEE,6BAAsC;ERqvE9C;EQpwEM;IAAgC,0BAA4B;ERuwElE;EQtwEM;;IAEE,8BAAoC;ERwwE5C;EQtwEM;;IAEE,gCAAwC;ERwwEhD;EQtwEM;;IAEE,iCAA0C;ERwwElD;EQtwEM;;IAEE,+BAAsC;ERwwE9C;EQvxEM;IAAgC,wBAA4B;ER0xElE;EQzxEM;;IAEE,4BAAoC;ER2xE5C;EQzxEM;;IAEE,8BAAwC;ER2xEhD;EQzxEM;;IAEE,+BAA0C;ER2xElD;EQzxEM;;IAEE,6BAAsC;ER2xE9C;EQnxEM;IAAwB,2BAA2B;ERsxEzD;EQrxEM;;IAEE,+BAA+B;ERuxEvC;EQrxEM;;IAEE,iCAAiC;ERuxEzC;EQrxEM;;IAEE,kCAAkC;ERuxE1C;EQrxEM;;IAEE,gCAAgC;ERuxExC;EQtyEM;IAAwB,0BAA2B;ERyyEzD;EQxyEM;;IAEE,8BAA+B;ER0yEvC;EQxyEM;;IAEE,gCAAiC;ER0yEzC;EQxyEM;;IAEE,iCAAkC;ER0yE1C;EQxyEM;;IAEE,+BAAgC;ER0yExC;EQzzEM;IAAwB,wBAA2B;ER4zEzD;EQ3zEM;;IAEE,4BAA+B;ER6zEvC;EQ3zEM;;IAEE,8BAAiC;ER6zEzC;EQ3zEM;;IAEE,+BAAkC;ER6zE1C;EQ3zEM;;IAEE,6BAAgC;ER6zExC;EQ50EM;IAAwB,0BAA2B;ER+0EzD;EQ90EM;;IAEE,8BAA+B;ERg1EvC;EQ90EM;;IAEE,gCAAiC;ERg1EzC;EQ90EM;;IAEE,iCAAkC;ERg1E1C;EQ90EM;;IAEE,+BAAgC;ERg1ExC;EQ/1EM;IAAwB,wBAA2B;ERk2EzD;EQj2EM;;IAEE,4BAA+B;ERm2EvC;EQj2EM;;IAEE,8BAAiC;ERm2EzC;EQj2EM;;IAEE,+BAAkC;ERm2E1C;EQj2EM;;IAEE,6BAAgC;ERm2ExC;EQ71EE;IAAmB,uBAAuB;ERg2E5C;EQ/1EE;;IAEE,2BAA2B;ERi2E/B;EQ/1EE;;IAEE,6BAA6B;ERi2EjC;EQ/1EE;;IAEE,8BAA8B;ERi2ElC;EQ/1EE;;IAEE,4BAA4B;ERi2EhC;AACF;;AG32EI;EKlDI;IAAgC,oBAA4B;ERk6ElE;EQj6EM;;IAEE,wBAAoC;ERm6E5C;EQj6EM;;IAEE,0BAAwC;ERm6EhD;EQj6EM;;IAEE,2BAA0C;ERm6ElD;EQj6EM;;IAEE,yBAAsC;ERm6E9C;EQl7EM;IAAgC,0BAA4B;ERq7ElE;EQp7EM;;IAEE,8BAAoC;ERs7E5C;EQp7EM;;IAEE,gCAAwC;ERs7EhD;EQp7EM;;IAEE,iCAA0C;ERs7ElD;EQp7EM;;IAEE,+BAAsC;ERs7E9C;EQr8EM;IAAgC,yBAA4B;ERw8ElE;EQv8EM;;IAEE,6BAAoC;ERy8E5C;EQv8EM;;IAEE,+BAAwC;ERy8EhD;EQv8EM;;IAEE,gCAA0C;ERy8ElD;EQv8EM;;IAEE,8BAAsC;ERy8E9C;EQx9EM;IAAgC,uBAA4B;ER29ElE;EQ19EM;;IAEE,2BAAoC;ER49E5C;EQ19EM;;IAEE,6BAAwC;ER49EhD;EQ19EM;;IAEE,8BAA0C;ER49ElD;EQ19EM;;IAEE,4BAAsC;ER49E9C;EQ3+EM;IAAgC,yBAA4B;ER8+ElE;EQ7+EM;;IAEE,6BAAoC;ER++E5C;EQ7+EM;;IAEE,+BAAwC;ER++EhD;EQ7+EM;;IAEE,gCAA0C;ER++ElD;EQ7+EM;;IAEE,8BAAsC;ER++E9C;EQ9/EM;IAAgC,uBAA4B;ERigFlE;EQhgFM;;IAEE,2BAAoC;ERkgF5C;EQhgFM;;IAEE,6BAAwC;ERkgFhD;EQhgFM;;IAEE,8BAA0C;ERkgFlD;EQhgFM;;IAEE,4BAAsC;ERkgF9C;EQjhFM;IAAgC,qBAA4B;ERohFlE;EQnhFM;;IAEE,yBAAoC;ERqhF5C;EQnhFM;;IAEE,2BAAwC;ERqhFhD;EQnhFM;;IAEE,4BAA0C;ERqhFlD;EQnhFM;;IAEE,0BAAsC;ERqhF9C;EQpiFM;IAAgC,2BAA4B;ERuiFlE;EQtiFM;;IAEE,+BAAoC;ERwiF5C;EQtiFM;;IAEE,iCAAwC;ERwiFhD;EQtiFM;;IAEE,kCAA0C;ERwiFlD;EQtiFM;;IAEE,gCAAsC;ERwiF9C;EQvjFM;IAAgC,0BAA4B;ER0jFlE;EQzjFM;;IAEE,8BAAoC;ER2jF5C;EQzjFM;;IAEE,gCAAwC;ER2jFhD;EQzjFM;;IAEE,iCAA0C;ER2jFlD;EQzjFM;;IAEE,+BAAsC;ER2jF9C;EQ1kFM;IAAgC,wBAA4B;ER6kFlE;EQ5kFM;;IAEE,4BAAoC;ER8kF5C;EQ5kFM;;IAEE,8BAAwC;ER8kFhD;EQ5kFM;;IAEE,+BAA0C;ER8kFlD;EQ5kFM;;IAEE,6BAAsC;ER8kF9C;EQ7lFM;IAAgC,0BAA4B;ERgmFlE;EQ/lFM;;IAEE,8BAAoC;ERimF5C;EQ/lFM;;IAEE,gCAAwC;ERimFhD;EQ/lFM;;IAEE,iCAA0C;ERimFlD;EQ/lFM;;IAEE,+BAAsC;ERimF9C;EQhnFM;IAAgC,wBAA4B;ERmnFlE;EQlnFM;;IAEE,4BAAoC;ERonF5C;EQlnFM;;IAEE,8BAAwC;ERonFhD;EQlnFM;;IAEE,+BAA0C;ERonFlD;EQlnFM;;IAEE,6BAAsC;ERonF9C;EQ5mFM;IAAwB,2BAA2B;ER+mFzD;EQ9mFM;;IAEE,+BAA+B;ERgnFvC;EQ9mFM;;IAEE,iCAAiC;ERgnFzC;EQ9mFM;;IAEE,kCAAkC;ERgnF1C;EQ9mFM;;IAEE,gCAAgC;ERgnFxC;EQ/nFM;IAAwB,0BAA2B;ERkoFzD;EQjoFM;;IAEE,8BAA+B;ERmoFvC;EQjoFM;;IAEE,gCAAiC;ERmoFzC;EQjoFM;;IAEE,iCAAkC;ERmoF1C;EQjoFM;;IAEE,+BAAgC;ERmoFxC;EQlpFM;IAAwB,wBAA2B;ERqpFzD;EQppFM;;IAEE,4BAA+B;ERspFvC;EQppFM;;IAEE,8BAAiC;ERspFzC;EQppFM;;IAEE,+BAAkC;ERspF1C;EQppFM;;IAEE,6BAAgC;ERspFxC;EQrqFM;IAAwB,0BAA2B;ERwqFzD;EQvqFM;;IAEE,8BAA+B;ERyqFvC;EQvqFM;;IAEE,gCAAiC;ERyqFzC;EQvqFM;;IAEE,iCAAkC;ERyqF1C;EQvqFM;;IAEE,+BAAgC;ERyqFxC;EQxrFM;IAAwB,wBAA2B;ER2rFzD;EQ1rFM;;IAEE,4BAA+B;ER4rFvC;EQ1rFM;;IAEE,8BAAiC;ER4rFzC;EQ1rFM;;IAEE,+BAAkC;ER4rF1C;EQ1rFM;;IAEE,6BAAgC;ER4rFxC;EQtrFE;IAAmB,uBAAuB;ERyrF5C;EQxrFE;;IAEE,2BAA2B;ER0rF/B;EQxrFE;;IAEE,6BAA6B;ER0rFjC;EQxrFE;;IAEE,8BAA8B;ER0rFlC;EQxrFE;;IAEE,4BAA4B;ER0rFhC;AACF;;AGpsFI;EKlDI;IAAgC,oBAA4B;ER2vFlE;EQ1vFM;;IAEE,wBAAoC;ER4vF5C;EQ1vFM;;IAEE,0BAAwC;ER4vFhD;EQ1vFM;;IAEE,2BAA0C;ER4vFlD;EQ1vFM;;IAEE,yBAAsC;ER4vF9C;EQ3wFM;IAAgC,0BAA4B;ER8wFlE;EQ7wFM;;IAEE,8BAAoC;ER+wF5C;EQ7wFM;;IAEE,gCAAwC;ER+wFhD;EQ7wFM;;IAEE,iCAA0C;ER+wFlD;EQ7wFM;;IAEE,+BAAsC;ER+wF9C;EQ9xFM;IAAgC,yBAA4B;ERiyFlE;EQhyFM;;IAEE,6BAAoC;ERkyF5C;EQhyFM;;IAEE,+BAAwC;ERkyFhD;EQhyFM;;IAEE,gCAA0C;ERkyFlD;EQhyFM;;IAEE,8BAAsC;ERkyF9C;EQjzFM;IAAgC,uBAA4B;ERozFlE;EQnzFM;;IAEE,2BAAoC;ERqzF5C;EQnzFM;;IAEE,6BAAwC;ERqzFhD;EQnzFM;;IAEE,8BAA0C;ERqzFlD;EQnzFM;;IAEE,4BAAsC;ERqzF9C;EQp0FM;IAAgC,yBAA4B;ERu0FlE;EQt0FM;;IAEE,6BAAoC;ERw0F5C;EQt0FM;;IAEE,+BAAwC;ERw0FhD;EQt0FM;;IAEE,gCAA0C;ERw0FlD;EQt0FM;;IAEE,8BAAsC;ERw0F9C;EQv1FM;IAAgC,uBAA4B;ER01FlE;EQz1FM;;IAEE,2BAAoC;ER21F5C;EQz1FM;;IAEE,6BAAwC;ER21FhD;EQz1FM;;IAEE,8BAA0C;ER21FlD;EQz1FM;;IAEE,4BAAsC;ER21F9C;EQ12FM;IAAgC,qBAA4B;ER62FlE;EQ52FM;;IAEE,yBAAoC;ER82F5C;EQ52FM;;IAEE,2BAAwC;ER82FhD;EQ52FM;;IAEE,4BAA0C;ER82FlD;EQ52FM;;IAEE,0BAAsC;ER82F9C;EQ73FM;IAAgC,2BAA4B;ERg4FlE;EQ/3FM;;IAEE,+BAAoC;ERi4F5C;EQ/3FM;;IAEE,iCAAwC;ERi4FhD;EQ/3FM;;IAEE,kCAA0C;ERi4FlD;EQ/3FM;;IAEE,gCAAsC;ERi4F9C;EQh5FM;IAAgC,0BAA4B;ERm5FlE;EQl5FM;;IAEE,8BAAoC;ERo5F5C;EQl5FM;;IAEE,gCAAwC;ERo5FhD;EQl5FM;;IAEE,iCAA0C;ERo5FlD;EQl5FM;;IAEE,+BAAsC;ERo5F9C;EQn6FM;IAAgC,wBAA4B;ERs6FlE;EQr6FM;;IAEE,4BAAoC;ERu6F5C;EQr6FM;;IAEE,8BAAwC;ERu6FhD;EQr6FM;;IAEE,+BAA0C;ERu6FlD;EQr6FM;;IAEE,6BAAsC;ERu6F9C;EQt7FM;IAAgC,0BAA4B;ERy7FlE;EQx7FM;;IAEE,8BAAoC;ER07F5C;EQx7FM;;IAEE,gCAAwC;ER07FhD;EQx7FM;;IAEE,iCAA0C;ER07FlD;EQx7FM;;IAEE,+BAAsC;ER07F9C;EQz8FM;IAAgC,wBAA4B;ER48FlE;EQ38FM;;IAEE,4BAAoC;ER68F5C;EQ38FM;;IAEE,8BAAwC;ER68FhD;EQ38FM;;IAEE,+BAA0C;ER68FlD;EQ38FM;;IAEE,6BAAsC;ER68F9C;EQr8FM;IAAwB,2BAA2B;ERw8FzD;EQv8FM;;IAEE,+BAA+B;ERy8FvC;EQv8FM;;IAEE,iCAAiC;ERy8FzC;EQv8FM;;IAEE,kCAAkC;ERy8F1C;EQv8FM;;IAEE,gCAAgC;ERy8FxC;EQx9FM;IAAwB,0BAA2B;ER29FzD;EQ19FM;;IAEE,8BAA+B;ER49FvC;EQ19FM;;IAEE,gCAAiC;ER49FzC;EQ19FM;;IAEE,iCAAkC;ER49F1C;EQ19FM;;IAEE,+BAAgC;ER49FxC;EQ3+FM;IAAwB,wBAA2B;ER8+FzD;EQ7+FM;;IAEE,4BAA+B;ER++FvC;EQ7+FM;;IAEE,8BAAiC;ER++FzC;EQ7+FM;;IAEE,+BAAkC;ER++F1C;EQ7+FM;;IAEE,6BAAgC;ER++FxC;EQ9/FM;IAAwB,0BAA2B;ERigGzD;EQhgGM;;IAEE,8BAA+B;ERkgGvC;EQhgGM;;IAEE,gCAAiC;ERkgGzC;EQhgGM;;IAEE,iCAAkC;ERkgG1C;EQhgGM;;IAEE,+BAAgC;ERkgGxC;EQjhGM;IAAwB,wBAA2B;ERohGzD;EQnhGM;;IAEE,4BAA+B;ERqhGvC;EQnhGM;;IAEE,8BAAiC;ERqhGzC;EQnhGM;;IAEE,+BAAkC;ERqhG1C;EQnhGM;;IAEE,6BAAgC;ERqhGxC;EQ/gGE;IAAmB,uBAAuB;ERkhG5C;EQjhGE;;IAEE,2BAA2B;ERmhG/B;EQjhGE;;IAEE,6BAA6B;ERmhGjC;EQjhGE;;IAEE,8BAA8B;ERmhGlC;EQjhGE;;IAEE,4BAA4B;ERmhGhC;AACF;;AG7hGI;EKlDI;IAAgC,oBAA4B;ERolGlE;EQnlGM;;IAEE,wBAAoC;ERqlG5C;EQnlGM;;IAEE,0BAAwC;ERqlGhD;EQnlGM;;IAEE,2BAA0C;ERqlGlD;EQnlGM;;IAEE,yBAAsC;ERqlG9C;EQpmGM;IAAgC,0BAA4B;ERumGlE;EQtmGM;;IAEE,8BAAoC;ERwmG5C;EQtmGM;;IAEE,gCAAwC;ERwmGhD;EQtmGM;;IAEE,iCAA0C;ERwmGlD;EQtmGM;;IAEE,+BAAsC;ERwmG9C;EQvnGM;IAAgC,yBAA4B;ER0nGlE;EQznGM;;IAEE,6BAAoC;ER2nG5C;EQznGM;;IAEE,+BAAwC;ER2nGhD;EQznGM;;IAEE,gCAA0C;ER2nGlD;EQznGM;;IAEE,8BAAsC;ER2nG9C;EQ1oGM;IAAgC,uBAA4B;ER6oGlE;EQ5oGM;;IAEE,2BAAoC;ER8oG5C;EQ5oGM;;IAEE,6BAAwC;ER8oGhD;EQ5oGM;;IAEE,8BAA0C;ER8oGlD;EQ5oGM;;IAEE,4BAAsC;ER8oG9C;EQ7pGM;IAAgC,yBAA4B;ERgqGlE;EQ/pGM;;IAEE,6BAAoC;ERiqG5C;EQ/pGM;;IAEE,+BAAwC;ERiqGhD;EQ/pGM;;IAEE,gCAA0C;ERiqGlD;EQ/pGM;;IAEE,8BAAsC;ERiqG9C;EQhrGM;IAAgC,uBAA4B;ERmrGlE;EQlrGM;;IAEE,2BAAoC;ERorG5C;EQlrGM;;IAEE,6BAAwC;ERorGhD;EQlrGM;;IAEE,8BAA0C;ERorGlD;EQlrGM;;IAEE,4BAAsC;ERorG9C;EQnsGM;IAAgC,qBAA4B;ERssGlE;EQrsGM;;IAEE,yBAAoC;ERusG5C;EQrsGM;;IAEE,2BAAwC;ERusGhD;EQrsGM;;IAEE,4BAA0C;ERusGlD;EQrsGM;;IAEE,0BAAsC;ERusG9C;EQttGM;IAAgC,2BAA4B;ERytGlE;EQxtGM;;IAEE,+BAAoC;ER0tG5C;EQxtGM;;IAEE,iCAAwC;ER0tGhD;EQxtGM;;IAEE,kCAA0C;ER0tGlD;EQxtGM;;IAEE,gCAAsC;ER0tG9C;EQzuGM;IAAgC,0BAA4B;ER4uGlE;EQ3uGM;;IAEE,8BAAoC;ER6uG5C;EQ3uGM;;IAEE,gCAAwC;ER6uGhD;EQ3uGM;;IAEE,iCAA0C;ER6uGlD;EQ3uGM;;IAEE,+BAAsC;ER6uG9C;EQ5vGM;IAAgC,wBAA4B;ER+vGlE;EQ9vGM;;IAEE,4BAAoC;ERgwG5C;EQ9vGM;;IAEE,8BAAwC;ERgwGhD;EQ9vGM;;IAEE,+BAA0C;ERgwGlD;EQ9vGM;;IAEE,6BAAsC;ERgwG9C;EQ/wGM;IAAgC,0BAA4B;ERkxGlE;EQjxGM;;IAEE,8BAAoC;ERmxG5C;EQjxGM;;IAEE,gCAAwC;ERmxGhD;EQjxGM;;IAEE,iCAA0C;ERmxGlD;EQjxGM;;IAEE,+BAAsC;ERmxG9C;EQlyGM;IAAgC,wBAA4B;ERqyGlE;EQpyGM;;IAEE,4BAAoC;ERsyG5C;EQpyGM;;IAEE,8BAAwC;ERsyGhD;EQpyGM;;IAEE,+BAA0C;ERsyGlD;EQpyGM;;IAEE,6BAAsC;ERsyG9C;EQ9xGM;IAAwB,2BAA2B;ERiyGzD;EQhyGM;;IAEE,+BAA+B;ERkyGvC;EQhyGM;;IAEE,iCAAiC;ERkyGzC;EQhyGM;;IAEE,kCAAkC;ERkyG1C;EQhyGM;;IAEE,gCAAgC;ERkyGxC;EQjzGM;IAAwB,0BAA2B;ERozGzD;EQnzGM;;IAEE,8BAA+B;ERqzGvC;EQnzGM;;IAEE,gCAAiC;ERqzGzC;EQnzGM;;IAEE,iCAAkC;ERqzG1C;EQnzGM;;IAEE,+BAAgC;ERqzGxC;EQp0GM;IAAwB,wBAA2B;ERu0GzD;EQt0GM;;IAEE,4BAA+B;ERw0GvC;EQt0GM;;IAEE,8BAAiC;ERw0GzC;EQt0GM;;IAEE,+BAAkC;ERw0G1C;EQt0GM;;IAEE,6BAAgC;ERw0GxC;EQv1GM;IAAwB,0BAA2B;ER01GzD;EQz1GM;;IAEE,8BAA+B;ER21GvC;EQz1GM;;IAEE,gCAAiC;ER21GzC;EQz1GM;;IAEE,iCAAkC;ER21G1C;EQz1GM;;IAEE,+BAAgC;ER21GxC;EQ12GM;IAAwB,wBAA2B;ER62GzD;EQ52GM;;IAEE,4BAA+B;ER82GvC;EQ52GM;;IAEE,8BAAiC;ER82GzC;EQ52GM;;IAEE,+BAAkC;ER82G1C;EQ52GM;;IAEE,6BAAgC;ER82GxC;EQx2GE;IAAmB,uBAAuB;ER22G5C;EQ12GE;;IAEE,2BAA2B;ER42G/B;EQ12GE;;IAEE,6BAA6B;ER42GjC;EQ12GE;;IAEE,8BAA8B;ER42GlC;EQ12GE;;IAEE,4BAA4B;ER42GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: null !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: null !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: null !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n$user-selects: all, auto, none !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css new file mode 100644 index 000000000..3686ebe7c --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap Grid v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map new file mode 100644 index 000000000..005ef96df --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container,\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n // Extend each breakpoint which is smaller or equal to the current breakpoint\n $extend-breakpoint: true;\n\n @each $name, $width in $grid-breakpoints {\n @if ($extend-breakpoint) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n\n // Once the current breakpoint is reached, stop extending\n @if ($breakpoint == $name) {\n $extend-breakpoint: false;\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n @include deprecate(\"The `make-container-max-widths` mixin\", \"v4.5.2\", \"v5\");\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n @if $columns > 0 {\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n }\n\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @if $grid-row-columns > 0 {\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @if $columns > 0 {\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n @if $columns > 0 {\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css new file mode 100644 index 000000000..0ec67df53 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css @@ -0,0 +1,325 @@ +/*! + * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]):not([class]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +[role="button"] { + cursor: pointer; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} +/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map new file mode 100644 index 000000000..a0ba66ed0 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

      `-`

      ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

      `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`

      + + Bootstrap logo + +

O2u!yVA}4)?iDlDp$x%ZPFRB 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

',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Bt,popperConfig:null},$t={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Jt=function(){function t(t,e){if("undefined"==typeof kt)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var i=s.findShadowRoot(this.element),o=e.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!o)return;var r=this.getTipElement(),a=s.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e(r).addClass("fade");var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(l);this.addAttachmentClass(c);var h=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(h),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new kt(this.element,r,this._getPopperConfig(c)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var u=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=s.getTransitionDurationFromElement(this.tip);e(this.tip).one(s.TRANSITION_END,u).emulateTransitionEnd(f)}else u()}},n.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),r=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var a=s.getTransitionDurationFromElement(i);e(i).one(s.TRANSITION_END,r).emulateTransitionEnd(a)}else r();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},n.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},n.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Wt(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getPopperConfig=function(t){var e=this;return o({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:s.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},n._getAttachment=function(t){return Kt[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},n._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==zt.indexOf(t)&&delete n[t]})),"number"==typeof(t=o({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),s.typeCheckConfig(Ut,t,this.constructor.DefaultType),t.sanitize&&(t.template=Wt(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(Yt);null!==n&&n.length&&t.removeClass(n.join(""))},n._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return Gt}},{key:"NAME",get:function(){return Ut}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Xt}}]),t}();e.fn[Ut]=Jt._jQueryInterface,e.fn[Ut].Constructor=Jt,e.fn[Ut].noConflict=function(){return e.fn[Ut]=Vt,Jt._jQueryInterface};var Zt="popover",te=e.fn[Zt],ee=new RegExp("(^|\\s)bs-popover\\S+","g"),ne=o({},Jt.Default,{placement:"right",trigger:"click",content:"",template:''}),ie=o({},Jt.DefaultType,{content:"(string|element|function)"}),oe={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},re=function(t){var n,o;function r(){return t.apply(this,arguments)||this}o=t,(n=r).prototype=Object.create(o.prototype),n.prototype.constructor=n,n.__proto__=o;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},s.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},s.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(ee);null!==n&&n.length>0&&t.removeClass(n.join(""))},r._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new r(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},i(r,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return ne}},{key:"NAME",get:function(){return Zt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return oe}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return ie}}]),r}(Jt);e.fn[Zt]=re._jQueryInterface,e.fn[Zt].Constructor=re,e.fn[Zt].noConflict=function(){return e.fn[Zt]=te,re._jQueryInterface};var se="scrollspy",ae=e.fn[se],le={offset:10,method:"auto",target:""},ce={offset:"number",method:"string",target:"(string|element)"},he=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,r=s.getSelectorFromElement(t);if(r&&(n=document.querySelector(r)),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=o({},le,"object"==typeof t&&t?t:{})).target&&s.isElement(t.target)){var n=e(t.target).attr("id");n||(n=s.getUID(se),e(t.target).attr("id",n)),t.target="#"+n}return s.typeCheckConfig(se,t,ce),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(a)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){r&&(n=document.querySelector(r)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,r=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],a=i&&r&&e(r).hasClass("fade"),l=function(){return o._transitionComplete(t,r,i)};if(r&&a){var c=s.getTransitionDurationFromElement(r);e(r).removeClass("show").one(s.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),s.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var r=e(t).closest(".dropdown")[0];if(r){var a=[].slice.call(r.querySelectorAll(".dropdown-toggle"));e(a).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),fe._jQueryInterface.call(e(this),"show")})),e.fn.tab=fe._jQueryInterface,e.fn.tab.Constructor=fe,e.fn.tab.noConflict=function(){return e.fn.tab=ue,fe._jQueryInterface};var de=e.fn.toast,pe={animation:"boolean",autohide:"boolean",delay:"number"},me={animation:!0,autohide:!0,delay:500},ge=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),s.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=o({},me,e(this._element).data(),"object"==typeof t&&t?t:{}),s.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return pe}},{key:"Default",get:function(){return me}}]),t}();e.fn.toast=ge._jQueryInterface,e.fn.toast.Constructor=ge,e.fn.toast.noConflict=function(){return e.fn.toast=de,ge._jQueryInterface},t.Alert=c,t.Button=u,t.Carousel=v,t.Collapse=T,t.Dropdown=Lt,t.Modal=Ht,t.Popover=re,t.Scrollspy=he,t.Tab=fe,t.Toast=ge,t.Tooltip=Jt,t.Util=s,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map new file mode 100644 index 000000000..6fd7db178 --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","assign","source","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
' +\n '
' +\n '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:L,popperConfig:null},K={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},X=function(){function t(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var i=t.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var o=a.findShadowRoot(this.element),s=e.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),l=a.getUID(this.constructor.NAME);r.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(r).addClass("fade");var c="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(c);this.addAttachmentClass(h);var u=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,this._getPopperConfig(h)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=a.getTransitionDurationFromElement(this.tip);e(this.tip).one(a.TRANSITION_END,d).emulateTransitionEnd(f)}else d()}},i.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),s=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var r=a.getTransitionDurationFromElement(i);e(i).one(a.TRANSITION_END,s).emulateTransitionEnd(r)}else s();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},i.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},i.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Q(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:a.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},i._getAttachment=function(t){return V[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},i._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==M.indexOf(t)&&delete n[t]})),"number"==typeof(t=s({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a.typeCheckConfig(B,t,this.constructor.DefaultType),t.sanitize&&(t.template=Q(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(U);null!==n&&n.length&&t.removeClass(n.join(""))},i._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return z}},{key:"NAME",get:function(){return B}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return K}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return W}}]),t}();e.fn[B]=X._jQueryInterface,e.fn[B].Constructor=X,e.fn[B].noConflict=function(){return e.fn[B]=H,X._jQueryInterface};var Y="popover",$=e.fn[Y],J=new RegExp("(^|\\s)bs-popover\\S+","g"),G=s({},X.Default,{placement:"right",trigger:"click",content:"",template:''}),Z=s({},X.DefaultType,{content:"(string|element|function)"}),tt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},et=function(t){var n,i;function s(){return t.apply(this,arguments)||this}i=t,(n=s).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=s.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},r.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},r.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(J);null!==n&&n.length>0&&t.removeClass(n.join(""))},s._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new s(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(s,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return G}},{key:"NAME",get:function(){return Y}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return tt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Z}}]),s}(X);e.fn[Y]=et._jQueryInterface,e.fn[Y].Constructor=et,e.fn[Y].noConflict=function(){return e.fn[Y]=$,et._jQueryInterface};var nt="scrollspy",it=e.fn[nt],ot={offset:10,method:"auto",target:""},st={offset:"number",method:"string",target:"(string|element)"},rt=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,s=a.getSelectorFromElement(t);if(s&&(n=document.querySelector(s)),n){var r=n.getBoundingClientRect();if(r.width||r.height)return[e(n)[i]().top+o,s]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},ot,"object"==typeof t&&t?t:{})).target&&a.isElement(t.target)){var n=e(t.target).attr("id");n||(n=a.getUID(nt),e(t.target).attr("id",n)),t.target="#"+n}return a.typeCheckConfig(nt,t,st),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(r)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){s&&(n=document.querySelector(s)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,s=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],r=i&&s&&e(s).hasClass("fade"),l=function(){return o._transitionComplete(t,s,i)};if(s&&r){var c=a.getTransitionDurationFromElement(s);e(s).removeClass("show").one(a.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),a.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var s=e(t).closest(".dropdown")[0];if(s){var r=[].slice.call(s.querySelectorAll(".dropdown-toggle"));e(r).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),lt._jQueryInterface.call(e(this),"show")})),e.fn.tab=lt._jQueryInterface,e.fn.tab.Constructor=lt,e.fn.tab.noConflict=function(){return e.fn.tab=at,lt._jQueryInterface};var ct=e.fn.toast,ht={animation:"boolean",autohide:"boolean",delay:"number"},ut={animation:!0,autohide:!0,delay:500},dt=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),a.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=s({},ut,e(this._element).data(),"object"==typeof t&&t?t:{}),a.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=a.getTransitionDurationFromElement(this._element);e(this._element).one(a.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return ht}},{key:"Default",get:function(){return ut}}]),t}();e.fn.toast=dt._jQueryInterface,e.fn.toast.Constructor=dt,e.fn.toast.noConflict=function(){return e.fn.toast=ct,dt._jQueryInterface},t.Alert=h,t.Button=d,t.Carousel=b,t.Collapse=C,t.Dropdown=I,t.Modal=P,t.Popover=et,t.Scrollspy=rt,t.Tab=lt,t.Toast=dt,t.Tooltip=X,t.Util=a,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.min.js.map b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.min.js.map new file mode 100644 index 000000000..a3e04b24c --- /dev/null +++ b/healthyliving-casestudy/member-service/REACT-SPRINGBOOT_CRUD/node_modules/bootstrap/dist/js/bootstrap.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","rect","round","left","right","innerWidth","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this11","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","keys","_loop","el","elName","nodeName","attributeList","attributes","whitelistedAttributes","concat","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","find","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","instance","popper","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","node","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
' +\n '
' +\n '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both